Function at 0x412320
Capabilities:
Resolve function by parsing pe exports

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x412a34
add esp, 0xffffff80
xor eax, eax
mov ecx, dword [esp + 0x84]
mov edx, dword [esp + 0x88]
mov ebx, dword [esp + 0x8c]
xor ebp, ebp
jmp 0x41235c
mov esi, ecx
mov ecx, edx
mov edx, ebx
mov ebx, esi
mov esi, dword [esp + 0x90]
jmp 0x412589
mov dword [esp + 0x70], edx
movzx edi, byte [ecx]
mov dword [esp + 0x30], edi
nop
and edi, 0x7f
lea esi, [ecx + 1]
mov ecx, ebx
mov ebx, dword [esp + 0x30]
test ebx, 0x80
jne 0x4123b2
test edi, edi
jne 0x412398
test edx, edx
je 0x4125cd
xor ebx, ebx
jmp 0x412354
shr edi, 3
mov dword [esp + 8], edi
mov dword [esp + 0x34], eax
xor eax, eax
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x34]
jmp 0x412965
mov dword [esp + 0x24], ebp
mov dword [esp + 0x7c], ecx
test edi, edi
jne 0x4123c5
xor ebx, ebx
jmp 0x41291b
mov dword [esp + 0x10], edi
xor ebx, ebx
xor ebx, ebx
mov dword [esp + 4], ebx
xor ebx, ebx
jmp 0x41262a
mov dword [esp + 0x78], ebp
mov edx, dword [esp + 0x10]
imul ebx, edx
cmp edx, 0x19
ja 0x412434
mov dword [esp + 0xc], eax
mov esi, dword [esp + 0x90]
cmp esi, 1
jne 0x412416
nop
mov edi, dword [esp + 0x7c]
mov ecx, esi
lea esi, [edi - 1]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x24]
mov dword [esp], eax
mov eax, dword [esp + 0x3c]
jmp 0x4128fe
nop
mov edi, dword [esp + 0x7c]
mov ecx, esi
lea esi, [edi - 1]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x24]
mov dword [esp], eax
mov eax, dword [esp + 0x4c]
jmp 0x412734
sub edx, eax
mov esi, dword [esp + 0x90]
cmp esi, 1
jne 0x4124c6
lea edi, [edx + 7]
shr edi, 3
and edx, 7
mov ecx, esi
mov esi, dword [esp + 0x7c]
sub esi, edi
mov edi, esi
test edx, edx
je 0x4124a0
mov dword [esp + 0x30], edi
mov dword [esp + 0x1c], edx
lea edi, [edx - 8]
xchg edi, ebx
neg ebx
xchg edi, ebx
cmp edi, 0x20
sbb edx, edx
mov dword [esp + 0x2c], edx
movzx edx, byte [esi]
mov esi, ecx
mov ecx, edi
shr edx, cl
mov edi, dword [esp + 0x2c]
and edx, edi
mov ecx, eax
shl edx, cl
mov edi, dword [esp + 0x24]
or edi, edx
nop
mov edx, dword [esp + 0x1c]
add eax, edx
sub ebx, edx
mov edx, dword [esp + 0x30]
inc edx
jmp 0x4124a8
mov edx, esi
mov edi, dword [esp + 0x24]
mov esi, ecx
mov dword [esp + 0x20], ebx
mov ecx, ebx
shr ebx, 3
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x54]
jmp 0x4126da
lea edi, [edx + 3]
shr edi, 2
and edx, 3
mov ecx, esi
mov esi, dword [esp + 0x7c]
sub esi, edi
mov edi, esi
test edx, edx
je 0x412523
mov dword [esp + 0x30], edi
mov dword [esp + 0x18], edx
lea edi, [edx - 4]
xchg edi, ebx
neg ebx
xchg edi, ebx
cmp edi, 0x20
sbb edx, edx
mov dword [esp + 0x2c], edx
movzx edx, byte [esi]
and edx, 0xf
mov esi, ecx
mov ecx, edi
shr edx, cl
mov edi, dword [esp + 0x2c]
and edx, edi
mov ecx, eax
shl edx, cl
mov edi, dword [esp + 0x24]
or edi, edx
nop
mov edx, dword [esp + 0x18]
add eax, edx
sub ebx, edx
mov edx, dword [esp + 0x30]
inc edx
jmp 0x41252b
mov edx, esi
mov edi, dword [esp + 0x24]
mov esi, ecx
mov dword [esp + 0x20], ebx
mov ecx, ebx
shr ebx, 2
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x5c]
jmp 0x41269d
and ecx, 3
test ecx, ecx
jbe 0x412575
cmp eax, 0x20
sbb ebx, ebx
movzx edx, byte [edx]
mov esi, 1
shl esi, cl
dec esi
and esi, edx
mov edx, ecx
mov ecx, eax
shl esi, cl
and esi, ebx
or edi, esi
add eax, edx
mov esi, dword [esp + 0x90]
mov ecx, dword [esp + 0x64]
mov edx, ebp
mov ebx, dword [esp + 0x70]
mov ebp, edi
jmp 0x412354
add eax, 0xfffffff8
cmp eax, 8
jb 0x412368
cmp esi, 1
jne 0x4125a2
xchg ebp, eax
mov byte [ebx], al
xchg ebp, eax
nop
shr ebp, 8
inc ebx
jmp 0x412586
mov edi, ebp
and ebp, 0xf
or ebp, 0xf0
xchg ebp, eax
mov byte [ebx], al
xchg ebp, eax
mov ebp, edi
shr edi, 4
and edi, 0xf
or edi, 0xf0
xchg edi, eax
mov byte [ebx + 1], al
xchg edi, eax
nop
shr ebp, 8
add ebx, 2
jmp 0x412586
mov edx, dword [esp + 0x90]
cmp edx, 1
jne 0x4125f5
mov ebx, ecx
mov edx, dword [esp + 0x8c]
sub ecx, edx
lea ecx, [eax + ecx*8]
mov edx, eax
neg eax
and eax, 7
add eax, edx
jmp 0x412a2e
mov ebx, ecx
mov edx, dword [esp + 0x8c]
sub ecx, edx
lea ecx, [eax + ecx*4]
mov edx, eax
neg eax
and eax, 3
add eax, edx
jmp 0x412a13
add ecx, 7
mov edx, dword [esp + 0x70]
mov edi, dword [esp + 0x10]
mov esi, ebp
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x7c]
mov ebp, dword [esp + 0x24]
mov edx, dword [esp + 4]
cmp edx, 0x20
sbb ebp, ebp
movzx edi, byte [esi]
mov dword [esp + 0x30], edi
nop
and edi, 0x7f
mov ecx, edx
shl edi, cl
and edi, ebp
or ebx, edi
lea ebp, [esi + 1]
mov esi, dword [esp + 0x30]
test esi, 0x80
jne 0x412611
jmp 0x4123d8
cmp eax, 0x20
sbb esi, esi
movzx ebp, byte [edx]
and ebp, 0xf
mov ecx, eax
shl ebp, cl
and ebp, esi
or edi, ebp
nop
mov ebp, edi
and edi, 0xf
or edi, 0xf0
mov esi, dword [esp + 0x64]
xchg edi, eax
mov byte [esi], al
xchg edi, eax
dec ebx
nop
shr ebp, 4
inc edx
inc esi
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x64], esi
mov edi, ebp
mov ebp, dword [esp + 0x78]
mov esi, dword [esp + 0x90]
test ebx, ebx
ja 0x41265a
jmp 0x412549
cmp eax, 0x20
sbb esi, esi
movzx ebp, byte [edx]
mov ecx, eax
shl ebp, cl
and ebp, esi
or edi, ebp
nop
mov ebp, dword [esp + 0x68]
xchg edi, eax
mov byte [ebp], al
xchg edi, eax
dec ebx
nop
shr edi, 8
inc edx
inc ebp
mov ecx, dword [esp + 0x20]
mov esi, dword [esp + 0x90]
mov dword [esp + 0x68], ebp
mov ebp, dword [esp + 0x78]
test ebx, ebx
ja 0x4126a6
and ecx, 7
test ecx, ecx
jbe 0x41270a
cmp eax, 0x20
sbb ebx, ebx
movzx edx, byte [edx]
mov esi, 1
shl esi, cl
dec esi
and esi, edx
mov edx, ecx
mov ecx, eax
shl esi, cl
and esi, ebx
or edi, esi
add eax, edx
mov esi, dword [esp + 0x90]
mov ecx, dword [esp + 0x68]
jmp 0x412579
mov ebp, dword [esp]
shl ebp, 4
movzx ecx, byte [esi]
and ecx, 0xf
or ebp, ecx
nop
add eax, 4
dec esi
mov ecx, dword [esp + 0x90]
mov dword [esp], ebp
mov ebp, dword [esp + 0x78]
cmp eax, edx
jb 0x412713
mov esi, dword [esp]
cmp eax, edx
jbe 0x412759
sub eax, edx
cmp eax, 0x20
sbb ebp, ebp
mov ecx, eax
shr esi, cl
and esi, ebp
mov ecx, dword [esp + 0x90]
mov ebp, dword [esp + 0x78]
mov eax, edx
cmp eax, 1
jne 0x412773
cmp esi, 1
jne 0x41276f
mov eax, 0x19
mov esi, 0x1ffffff
jmp 0x412782
mov eax, ebx
jmp 0x412782
lea edx, [eax + eax]
cmp edx, 0x19
ja 0x412782
mov edx, eax
jmp 0x412899
mov dword [esp], esi
mov edx, dword [esp + 0x24]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0xc]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x44]
jmp 0x4127b5
mov ecx, dword [esp + 0x20]
sub ecx, eax
mov esi, dword [esp]
mov ebp, dword [esp + 0x78]
mov dword [esp + 0x30], ebx
mov ebx, ecx
mov ecx, dword [esp + 0x90]
cmp eax, ebx
ja 0x4127e3
mov dword [esp + 0x20], ebx
mov ebp, dword [esp + 0x30]
cmp ebp, 0x20
sbb ebx, ebx
mov ecx, ebp
shl esi, cl
and esi, ebx
or edx, esi
lea ebx, [eax + ecx]
mov ebp, dword [esp + 0x90]
cmp ebp, 1
je 0x412870
jmp 0x41285c
test ebx, ebx
jbe 0x41282e
mov dword [esp + 0x74], edi
cmp ebx, 0x20
mov eax, ebp
sbb ebp, ebp
mov edi, dword [esp + 0x30]
cmp edi, 0x20
sbb edi, edi
mov dword [esp + 0x2c], edi
mov ecx, ebx
mov edi, 1
shl edi, cl
and edi, ebp
lea ebp, [edi - 1]
and esi, ebp
mov ecx, dword [esp + 0x30]
shl esi, cl
mov ebp, dword [esp + 0x2c]
and esi, ebp
or edx, esi
add ebx, ecx
mov ecx, dword [esp + 0x90]
mov ebp, eax
mov edi, dword [esp + 0x74]
jmp 0x412832
mov ebx, dword [esp + 0x30]
mov eax, ebx
mov ebx, dword [esp + 0x70]
mov ecx, edi
mov ebp, edx
mov edx, dword [esp + 0x78]
jmp 0x412354
mov esi, edx
and edx, 0xf
or edx, 0xf0
mov byte [edi], dl
nop
shr esi, 4
add ebx, 0xfffffffc
inc edi
mov edx, esi
cmp ebx, 4
jae 0x412845
jmp 0x41279b
mov byte [edi], dl
nop
shr edx, 8
add ebx, 0xfffffff8
inc edi
cmp ebx, 8
jae 0x412866
jmp 0x41279b
mov dword [esp + 0x28], esi
sbb ebp, ebp
mov ecx, eax
shl esi, cl
and esi, ebp
mov ebp, dword [esp + 0x28]
or esi, ebp
add eax, eax
mov ecx, dword [esp + 0x90]
mov ebp, dword [esp + 0x78]
cmp eax, 0x20
jbe 0x41287a
test edx, edx
je 0x4128db
mov eax, 0x19
mov ebp, edx
xor edx, edx
div ebp
imul eax, ebp
cmp eax, 0x20
sbb edx, edx
mov dword [esp + 0x30], edx
mov ecx, eax
mov edx, 1
shl edx, cl
mov ebp, dword [esp + 0x30]
and edx, ebp
dec edx
and esi, edx
mov ecx, dword [esp + 0x90]
mov ebp, dword [esp + 0x78]
jmp 0x412782
call fcn.004325d0
mov ebp, dword [esp]
shl ebp, 8
movzx ecx, byte [esi]
or ebp, ecx
nop
add eax, 8
dec esi
mov ecx, dword [esp + 0x90]
mov dword [esp], ebp
mov ebp, dword [esp + 0x78]
cmp eax, edx
jb 0x4128e0
mov esi, dword [esp]
jmp 0x41273b
lea ebx, [ecx + 7]
mov ecx, dword [esp + 0x7c]
mov ebp, dword [esp + 0x24]
mov esi, edx
mov edx, dword [esp + 0x70]
cmp ebx, 0x20
sbb edx, edx
movzx ebp, byte [esi]
mov dword [esp + 0x30], ebp
nop
and ebp, 0x7f
mov ecx, ebx
shl ebp, cl
and edx, ebp
or edi, edx
lea edx, [esi + 1]
mov ebp, dword [esp + 0x30]
test ebp, 0x80
jne 0x41290a
mov ecx, dword [esp + 0x7c]
mov ebp, dword [esp + 0x24]
mov esi, edx
mov edx, dword [esp + 0x70]
jmp 0x4123c5
inc edx
inc esi
mov dword [esp + 0x14], edx
mov ecx, ebx
mov edx, dword [esp + 0x70]
mov ebx, dword [esp + 0x30]
mov edx, dword [esp + 0x14]
cmp edx, edi
jae 0x4129d3
mov dword [esp + 0x6c], ecx
movzx ebx, byte [esi]
mov ecx, eax
shl ebx, cl
or ebp, ebx
nop
mov ebx, dword [esp + 0x90]
cmp ebx, 1
jne 0x412996
mov ebx, dword [esp + 0x6c]
xchg ebp, eax
mov byte [ebx], al
xchg ebp, eax
nop
shr ebp, 8
inc ebx
jmp 0x412955
mov dword [esp + 0x2c], ebp
and ebp, 0xf
or ebp, 0xf0
mov edi, dword [esp + 0x6c]
xchg ebp, eax
mov byte [edi], al
xchg ebp, eax
mov ebp, dword [esp + 0x2c]
shr ebp, 4
and ebp, 0xf
or ebp, 0xf0
xchg ebp, eax
mov byte [edi + 1], al
xchg ebp, eax
nop
mov ebp, dword [esp + 0x2c]
shr ebp, 8
add edi, 2
mov ebx, edi
mov edi, dword [esp + 8]
jmp 0x412955
and ebx, 7
test ebx, ebx
jbe 0x4129eb
movzx edx, byte [esi]
mov edi, ecx
mov ecx, eax
shl edx, cl
or ebp, edx
nop
add eax, ebx
inc esi
jmp 0x4129ed
mov edi, ecx
mov edx, esi
mov ebx, dword [esp + 0x70]
mov ecx, edi
jmp 0x412354
mov edx, ebp
and ebp, 0xf
or ebp, 0xf0
xchg ebp, eax
mov byte [ebx], al
xchg ebp, eax
add eax, 0xfffffffc
nop
shr edx, 4
inc ebx
mov ebp, edx
test eax, eax
ja 0x4129fa
mov dword [esp + 0x94], ecx
sub esp, 0xffffff80
ret
xchg ebp, eax
mov byte [ebx], al
xchg ebp, eax
add eax, 0xfffffff8
nop
shr ebp, 8
inc ebx
test eax, eax
ja 0x412a22
jmp 0x412a17
call fcn.0045d540
jmp fcn.00412320