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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x54]
cmp eax, dword [ecx + 8]
jbe 0x4125b7
sub esp, 0xd4
mov eax, dword [esp + 0xd8]
mov dword [esp], eax
call fcn.00410670
mov eax, dword [esp + 0xe4]
mov ecx, dword [eax + 0x14]
mov edx, dword [esp + 4]
mov ebx, dword [esp + 8]
mov ebp, dword [esp + 0xc]
mov esi, dword [esp + 0x10]
mov edi, dword [esp + 0xdc]
cmp edi, 8
je 0x411c18
cmp edi, 0xc
je 0x411b0c
mov dword [esp + 0xa8], ecx
mov dword [esp + 0xd0], esi
mov dword [esp + 0x88], ebp
mov dword [esp + 0x84], ebx
mov dword [esp + 0xcc], edx
mov eax, dword [esp + 0xd8]
lea ecx, [edi + eax - 1]
mov dword [esp], ecx
call fcn.00423150
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x88]
cmp eax, ecx
je 0x411974
mov edx, dword [esp + 0xd8]
mov ebx, edx
xor ebp, ebp
jmp 0x411989
mov ebx, dword [esp + 0xd8]
mov edx, dword [esp + 0xcc]
mov ebp, dword [esp + 0xd0]
mov dword [esp + 0x80], eax
mov dword [esp + 0xc0], edx
mov esi, dword [esp + 0xe4]
movzx edi, byte [esi + 0xf]
xchg edi, eax
test al, 0x40
xchg edi, eax
jne 0x411a7b
mov ebp, dword [esp + 0xe0]
cmp dword [esi], ebp
jae 0x411a4d
mov edi, dword [esi + 4]
shr edi, 2
cmp edi, 0x19
ja 0x411a06
mov dword [esp + 0x7c], edi
mov dword [esp + 0x94], eax
xor eax, eax
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0xa8]
mov dword [esp + 0xac], eax
mov dword [esp + 0x8c], ecx
xor ecx, ecx
mov dword [esp + 0x60], ecx
mov eax, dword [esp + 0x94]
mov ecx, dword [esp + 0x8c]
jmp 0x4124fa
mov eax, dword [esp + 0xa8]
mov dword [esp], eax
lea ecx, [edi + 7]
shr ecx, 3
dec ecx
mov dword [esp + 0x44], ecx
mov dword [esp + 4], ecx
call fcn.00410130
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xe4]
mov edx, dword [ecx]
shr edx, 2
mov ebx, dword [esp + 0x44]
shl ebx, 3
sub edx, ebx
mov ebx, dword [esp + 0xa8]
xor ebp, ebp
xor esi, esi
jmp 0x412445
mov edi, dword [esp + 0xa8]
xor edi, edi
mov dword [esp + 0x3c], edi
xor edi, edi
mov dword [esp + 0xc4], edi
xor edi, edi
mov dword [esp + 0x34], edi
xor edi, edi
mov dword [esp + 0x58], edi
mov edi, dword [esp + 0xa8]
jmp 0x411f74
mov dword [esp + 0xb0], ebp
mov eax, dword [esi + 0x14]
mov dword [esp], eax
mov dword [esp + 4], 4
call fcn.00410130
mov eax, dword [esp + 0xe4]
mov ecx, dword [eax + 4]
mov eax, dword [eax]
mov edx, dword [esp + 8]
mov ebx, dword [esp + 0xc0]
mov dword [esp], ebx
mov ebx, dword [esp + 0x84]
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0x88]
mov dword [esp + 8], ebx
mov ebp, dword [esp + 0xb0]
mov dword [esp + 0xc], ebp
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0xe0]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0xdc]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], edx
call fcn.004125d0
mov eax, dword [esp + 0x80]
mov ecx, dword [esp + 0x88]
cmp eax, ecx
jmp 0x411cd7
movzx ecx, byte [ecx]
cmp dword [eax], 4
jne 0x411b19
mov ecx, 7
and ecx, 7
mov eax, ecx
shl ecx, 4
or ecx, eax
mov eax, ecx
or ecx, 0x10
and ecx, 0x40
shr cl, 1
or ecx, eax
mov eax, ecx
or ecx, 0x10
cmp ebx, 1
ja 0x411b60
test ebx, ebx
jne 0x411b4f
movzx ecx, byte [edx]
and ecx, 0xffffff88
or ecx, eax
or ecx, 0x10
mov byte [edx], cl
jmp 0x411c11
movzx eax, byte [edx]
and eax, 0x11
shl ecx, 1
or ecx, eax
mov byte [edx], cl
jmp 0x411c11
mov byte [esp + 0x29], cl
cmp ebx, 2
je 0x411bb0
cmp ebx, 3
jne 0x411c11
movzx eax, byte [edx]
and eax, 0x77
and ecx, 0x11
shl ecx, 3
or ecx, eax
mov byte [edx], cl
mov dword [esp], edx
mov dword [esp + 4], ebx
mov dword [esp + 8], ebp
mov dword [esp + 0xc], esi
call fcn.00410ad0
mov eax, dword [esp + 0x10]
movzx ecx, byte [eax]
and ecx, 0xffffffcc
movzx edx, byte [esp + 0x29]
shr dl, 1
and edx, 0x33
or edx, ecx
mov byte [eax], dl
jmp 0x411c11
movzx eax, byte [edx]
and eax, 0x33
and ecx, 0x33
shl ecx, 2
or ecx, eax
mov byte [edx], cl
mov dword [esp], edx
mov dword [esp + 4], ebx
mov dword [esp + 8], ebp
mov dword [esp + 0xc], esi
call fcn.00410ad0
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov dword [esp + 0xc], ebx
call fcn.00410ad0
mov eax, dword [esp + 0x10]
movzx ecx, byte [eax]
and ecx, 0xffffffee
movzx edx, byte [esp + 0x29]
shr dl, 2
and edx, 0x11
or edx, ecx
mov byte [eax], dl
add esp, 0xd4
ret
cmp dword [eax], 4
jne 0x411c75
mov eax, dword [esp + 0xe0]
cmp eax, 4
jne 0x411c55
cmp ebx, 0x20
sbb eax, eax
movzx ebp, byte [edx]
mov ecx, ebx
mov esi, 0x33
shl esi, cl
and esi, eax
xchg esi, ebx
not ebx
xchg esi, ebx
and esi, ebp
mov ebp, 0x11
shl ebp, cl
and ebp, eax
or ebp, esi
xchg ebp, eax
mov byte [edx], al
xchg ebp, eax
jmp 0x411c6e
cmp ebx, 0x20
sbb eax, eax
movzx ebp, byte [edx]
mov ecx, ebx
mov ebx, 0x33
shl ebx, cl
and eax, ebx
or ebp, eax
xchg ebp, eax
mov byte [edx], al
xchg ebp, eax
add esp, 0xd4
ret
mov eax, dword [eax + 4]
shr eax, 2
cmp eax, 0x20
sbb ebp, ebp
cmp ebx, 0x20
sbb esi, esi
sbb edi, edi
mov dword [esp + 0x88], edi
movzx edi, byte [ecx]
and edi, 3
mov ecx, eax
mov eax, 0x10
shl eax, cl
and ebp, eax
lea eax, [ebp - 1]
and eax, 0xf0
or edi, eax
movzx eax, byte [edx]
mov ecx, ebx
mov ebp, 0x33
shl ebp, cl
and esi, ebp
xchg esi, ebx
not ebx
xchg esi, ebx
and esi, eax
shl edi, cl
mov eax, dword [esp + 0x88]
and edi, eax
or edi, esi
xchg edi, eax
mov byte [edx], al
xchg edi, eax
add esp, 0xd4
ret
je 0x411de0
mov eax, dword [esp + 0xd8]
mov dword [esp], eax
call fcn.00410670
mov eax, dword [esp + 0xdc]
shr eax, 2
mov ecx, dword [esp + 0xd8]
mov edx, ecx
mov ebx, dword [esp + 8]
mov ebp, dword [esp + 4]
mov esi, dword [esp + 0xc]
mov edi, dword [esp + 0x10]
cmp ebx, 2
jne 0x411eb1
mov dword [esp + 0x5c], eax
mov dword [esp + 0xc8], ecx
movzx eax, byte [ebp]
and eax, 0x33
movzx edx, byte [ecx]
or edx, eax
mov byte [ebp], dl
mov dword [esp], ebp
mov dword [esp + 4], ebx
mov dword [esp + 8], esi
mov dword [esp + 0xc], edi
call fcn.00410ad0
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov dword [esp + 0xc], ebx
call fcn.00410ad0
mov eax, dword [esp + 0x10]
mov dword [esp + 0xd0], eax
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x88], ecx
mov edx, dword [esp + 0x18]
mov dword [esp + 0x84], edx
mov ebx, dword [esp + 0x1c]
mov dword [esp + 0xcc], ebx
mov ebp, dword [esp + 0xc8]
mov dword [esp], ebp
mov dword [esp + 4], 1
call fcn.00410130
mov eax, dword [esp + 0x5c]
add eax, 0xfffffffe
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0xd8]
mov ebx, dword [esp + 0x88]
mov esi, dword [esp + 0x84]
mov edi, dword [esp + 0xcc]
mov ebp, dword [esp + 0xd0]
jmp 0x411eb1
add esp, 0xd4
ret
mov dword [esp + 0x5c], eax
mov dword [esp + 0xa4], ecx
mov dword [esp], ebp
mov dword [esp + 4], ebx
mov dword [esp + 8], esi
mov dword [esp + 0xc], edi
shr eax, 2
shl eax, 2
mov dword [esp + 0x10], eax
call fcn.00410d80
mov eax, dword [esp + 0x24]
mov dword [esp + 0x2c], eax
mov ecx, dword [esp + 0x14]
mov dword [esp + 0xd0], ecx
mov edx, dword [esp + 0x18]
mov dword [esp + 0x88], edx
mov ebx, dword [esp + 0x1c]
mov dword [esp + 0x84], ebx
mov ebp, dword [esp + 0x20]
mov dword [esp + 0xcc], ebp
mov esi, dword [esp + 0xbc]
mov dword [esp], esi
mov esi, dword [esp + 0xa4]
mov dword [esp + 4], esi
shr eax, 2
mov dword [esp + 0x40], eax
mov dword [esp + 8], eax
call fcn.0045e1c0
mov eax, dword [esp + 0xa4]
mov dword [esp], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 4], eax
call fcn.00410130
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x2c]
sub eax, ecx
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0xd8]
mov ebp, dword [esp + 0xd0]
mov esi, dword [esp + 0x84]
mov ebx, dword [esp + 0x88]
mov edi, dword [esp + 0xcc]
mov dword [esp + 0xbc], ebp
cmp eax, 4
jae 0x411de7
cmp eax, 2
jne 0x411f5f
mov dword [esp + 0x54], esi
mov dword [esp + 0x4c], ebx
mov dword [esp + 0xb4], edi
movzx eax, byte [ebp]
and eax, 0xffffffcc
movzx edx, byte [ecx]
or edx, eax
mov byte [ebp], dl
mov dword [esp], ecx
mov dword [esp + 4], 1
call fcn.00410130
mov eax, dword [esp + 8]
mov dword [esp + 0xa4], eax
mov ecx, dword [esp + 0xbc]
mov dword [esp], ecx
mov ecx, dword [esp + 0x4c]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x54]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0xb4]
mov dword [esp + 0xc], ecx
call fcn.00410ad0
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov dword [esp + 0xc], ebx
call fcn.00410ad0
mov edx, dword [esp + 0xd8]
mov ecx, dword [esp + 0xa4]
mov eax, edx
mov dword [esp], edx
sub ecx, eax
mov dword [esp + 4], ecx
call fcn.0045dfe0
jmp 0x411de0
test edi, edi
jne 0x411f90
mov dword [esp + 0x9c], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x9c]
jmp 0x411fe5
movzx eax, byte [edi]
mov dword [esp + 0x7c], eax
mov dword [esp], edi
call fcn.00410150
mov edi, dword [esp + 4]
mov eax, dword [esp + 0x80]
mov ecx, dword [esp + 0x88]
mov edx, dword [esp + 0xc0]
mov ebx, dword [esp + 0xd8]
mov ebp, dword [esp + 0xe0]
mov esi, dword [esp + 0xe4]
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x60], eax
mov eax, 8
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x80]
mov dword [esp + 0xac], edi
mov edi, dword [esi]
cmp ebp, edi
jne 0x411ffa
mov ebp, dword [esi + 4]
shr ebp, 2
jmp 0x412022
test edi, edi
je 0x412440
mov eax, ebp
xor edx, edx
div edi
lea ebp, [eax - 1]
imul ebp, edi
add ebp, dword [esi + 4]
shr ebp, 2
mov eax, dword [esp + 0x80]
mov edx, dword [esp + 0xc0]
test ebp, ebp
je 0x4123d3
mov dword [esp + 0x38], ebp
mov esi, dword [esp + 0x84]
test esi, esi
jne 0x412083
mov esi, dword [esp + 0x60]
and esi, 0xf
or esi, 0xf0
cmp ebp, 4
ja 0x412055
mov edi, 4
jmp 0x4122f3
xchg esi, eax
mov byte [edx], al
xchg esi, eax
mov dword [esp], edx
call fcn.00410150
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x60]
shr ecx, 4
mov edx, dword [esp + 0x3c]
add edx, 0xfffffffc
mov ebx, ecx
mov ebp, 4
mov ecx, dword [esp + 0x38]
jmp 0x412105
cmp esi, 2
jne 0x4123bd
mov esi, dword [esp + 0x60]
and esi, 3
shl esi, 2
mov dword [esp + 0x50], esi
or esi, 0x40
cmp ebp, 1
jbe 0x4120ac
mov esi, dword [esp + 0x50]
or esi, 0xc0
movzx eax, byte [edx]
and eax, 0x33
or esi, eax
xchg esi, eax
mov byte [edx], al
xchg esi, eax
mov dword [esp], edx
call fcn.00410150
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x38]
cmp ecx, 2
ja 0x4120f2
mov ebx, dword [esp + 0xd8]
mov ebp, ecx
mov edi, 6
mov edx, eax
xor esi, esi
mov eax, dword [esp + 0x80]
mov ecx, dword [esp + 0x88]
jmp 0x4122f3
mov ebx, dword [esp + 0x60]
shr ebx, 2
mov ebp, dword [esp + 0x3c]
lea edx, [ebp - 2]
mov ebp, 2
add edx, 0xfffffffc
mov esi, dword [esp + 0xac]
jmp 0x412150
mov dword [esp + 0x7c], ebp
mov dword [esp + 0x70], edx
mov dword [esp + 0x3c], esi
mov dword [esp + 0xac], ecx
xchg edi, ebx
mov byte [eax], bl
xchg edi, ebx
mov dword [esp], eax
call fcn.00410150
mov eax, dword [esp + 4]
mov ebx, dword [esp + 0x7c]
shr ebx, 4
mov ecx, dword [esp + 0x38]
mov ebp, dword [esp + 0x70]
mov esi, dword [esp + 0xac]
mov edx, dword [esp + 0x3c]
mov dword [esp + 0x30], ebp
mov edi, ebx
and ebx, 0xf
or ebx, 0xf0
add ebp, 4
cmp ecx, ebp
jbe 0x4122d0
mov dword [esp + 0x3c], edx
mov dword [esp + 0xac], esi
mov dword [esp + 0x7c], edi
mov byte [eax], bl
mov dword [esp], eax
call fcn.00410150
mov eax, dword [esp + 4]
mov dword [esp + 0xb8], eax
mov ecx, dword [esp + 0x7c]
shr ecx, 4
mov edx, dword [esp + 0xac]
mov ebx, dword [esp + 0xc4]
cmp edx, ebx
je 0x4121ff
mov ebp, dword [esp + 0x3c]
cmp ebp, 8
jb 0x4121b5
add ebp, 0xfffffff8
jmp 0x4121f0
mov dword [esp + 0x78], ecx
movzx eax, byte [edx]
mov dword [esp + 0x7c], eax
mov dword [esp], edx
call fcn.00410150
mov ecx, dword [esp + 0x3c]
mov eax, dword [esp + 0x7c]
shl eax, cl
mov edx, dword [esp + 0x78]
or edx, eax
mov esi, dword [esp + 4]
mov eax, dword [esp + 0xb8]
mov ebx, dword [esp + 0xc4]
mov ebp, ecx
mov ecx, edx
mov edx, esi
mov esi, ebp
mov edi, ecx
mov ecx, edx
mov edx, dword [esp + 0x58]
jmp 0x4122b0
test edx, edx
je 0x41227e
mov ebp, dword [esp + 0x3c]
cmp ebp, 0x20
sbb esi, esi
movzx edx, byte [edx]
mov edi, ecx
mov ecx, ebp
shl edx, cl
and esi, edx
or edi, esi
mov edx, dword [esp + 0x58]
lea esi, [ecx + edx]
cmp esi, 8
jb 0x412232
lea esi, [ecx + edx - 8]
mov ecx, dword [esp + 0xa8]
jmp 0x4122b0
mov dword [esp + 0x74], edi
mov dword [esp + 0x3c], esi
mov eax, dword [esp + 0xa8]
movzx ecx, byte [eax]
mov dword [esp + 0x7c], ecx
mov dword [esp], eax
call fcn.00410150
mov ecx, dword [esp + 0x3c]
mov edi, dword [esp + 0x7c]
shl edi, cl
mov eax, dword [esp + 0x74]
or edi, eax
mov eax, dword [esp + 4]
mov edx, dword [esp + 0x58]
mov ebx, dword [esp + 0xc4]
mov ecx, eax
mov esi, dword [esp + 0x3c]
mov eax, dword [esp + 0xb8]
jmp 0x4122b0
mov ebp, dword [esp + 0x3c]
cmp ebp, 8
jae 0x41229c
mov esi, ecx
mov ecx, ebp
mov edi, dword [esp + 0x34]
shl edi, cl
or edi, esi
mov esi, dword [esp + 0x58]
lea ebp, [ecx + esi]
jmp 0x4122a2
mov esi, dword [esp + 0x58]
mov edi, ecx
add ebp, 0xfffffff8
mov edx, esi
mov ecx, dword [esp + 0xac]
mov esi, ebp
mov ebp, edi
and edi, 0xf
or edi, 0xf0
mov edx, dword [esp + 0x30]
add edx, 8
mov ebx, dword [esp + 0x38]
cmp ebx, edx
ja 0x412111
jmp 0x4122d6
mov edx, ebp
mov edi, ebx
mov ebx, ecx
mov ecx, dword [esp + 0x88]
mov ebp, ebx
mov esi, edi
mov ebx, dword [esp + 0xd8]
mov edi, edx
mov edx, eax
mov eax, dword [esp + 0x80]
mov dword [esp + 0x30], edi
cmp edi, ebp
jbe 0x412332
sub edi, ebp
lea ebp, [edi - 4]
xchg ebp, ebx
neg ebx
xchg ebp, ebx
cmp ebp, 0x20
sbb edi, edi
mov ecx, ebp
mov ebx, 1
shl ebx, cl
and ebx, edi
dec ebx
mov ebp, ebx
shl ebx, 4
or ebx, ebp
and esi, ebx
mov ecx, dword [esp + 0x88]
mov ebx, dword [esp + 0xd8]
mov edi, dword [esp + 0x30]
mov ebp, dword [esp + 0xdc]
shr ebp, 2
cmp edi, ebp
ja 0x41239c
mov dword [esp + 0x38], ebp
xchg esi, eax
mov byte [edx], al
xchg esi, eax
mov dword [esp], edx
call fcn.00410150
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x30]
add ecx, 4
jmp 0x412377
mov dword [esp + 0x6c], ecx
mov byte [eax], 0
mov dword [esp], eax
call fcn.00410150
mov eax, dword [esp + 0x6c]
lea ecx, [eax + 4]
mov eax, dword [esp + 4]
mov edx, dword [esp + 0x38]
cmp ecx, edx
jbe 0x41235d
mov ebx, dword [esp + 0xd8]
mov ebp, edx
mov edi, ecx
mov edx, eax
xor esi, esi
mov eax, dword [esp + 0x80]
mov ecx, dword [esp + 0x88]
add ebp, 2
cmp edi, ebp
jne 0x4123b6
movzx ebp, byte [edx]
and ebp, 0xffffffcc
or esi, ebp
xchg esi, eax
mov byte [edx], al
xchg esi, eax
cmp eax, ecx
jmp 0x411cd7
cmp eax, ecx
jmp 0x411cd7
lea eax, [0x4b7156]
mov dword [esp], eax
mov dword [esp + 4], 0x21
call fcn.00434a60
mov dword [esp], esi
call fcn.004568d0
mov eax, dword [esp + 4]
mov dword [esp + 0xd0], eax
mov ecx, dword [esp + 8]
mov dword [esp + 0x68], ecx
call fcn.004360d0
lea eax, [0x4b4fd8]
mov dword [esp], eax
mov dword [esp + 4], 0x17
call fcn.004369a0
mov eax, dword [esp + 0xd0]
mov dword [esp], eax
mov eax, dword [esp + 0x68]
mov dword [esp + 4], eax
call fcn.004369a0
call fcn.004362e0
call fcn.00436130
lea eax, [0x4b868f]
mov dword [esp], eax
mov dword [esp + 4], 0x2d
call fcn.00434a60
call fcn.00432990
mov ecx, dword [esp + 0x88]
mov edi, ebx
mov dword [esp + 0x3c], ebp
mov dword [esp + 0xc4], eax
mov dword [esp + 0x34], esi
mov dword [esp + 0x58], edx
mov eax, dword [esp + 0x80]
mov edx, dword [esp + 0xc0]
mov ebx, dword [esp + 0xd8]
mov ebp, dword [esp + 0xe0]
mov esi, dword [esp + 0xe4]
jmp 0x411f74
mov eax, dword [esp + 0xac]
movzx ecx, byte [eax]
mov dword [esp + 0x64], ecx
mov dword [esp], eax
call fcn.00410150
mov ecx, dword [esp + 0x48]
cmp ecx, 0x20
sbb eax, eax
lea edx, [ecx + 8]
mov ebx, dword [esp + 0x64]
shl ebx, cl
and ebx, eax
mov eax, dword [esp + 0x60]
or eax, ebx
mov ecx, dword [esp + 4]
mov ebx, dword [esp + 0xd8]
mov ebp, dword [esp + 0xe0]
mov esi, dword [esp + 0xe4]
mov edi, dword [esp + 0x7c]
mov dword [esp + 0x48], edx
mov dword [esp + 0xac], ecx
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x80]
mov ecx, dword [esp + 0x88]
mov edx, dword [esp + 0xc0]
mov ebx, dword [esp + 0x48]
cmp ebx, edi
jb 0x412489
mov ebx, dword [esi]
shr ebx, 2
lea edi, [ebx + ebx]
cmp edi, 0x19
ja 0x412519
mov dword [esp + 0x3c], ebx
mov edi, dword [esp + 0x60]
jmp 0x412551
mov edi, dword [esp + 0x60]
mov ecx, esi
mov ebp, ebx
xor eax, eax
mov esi, edi
mov edx, ebp
xor ebx, ebx
jmp 0x412445
mov dword [esp + 0x34], edi
sbb eax, eax
mov ecx, ebx
shl edi, cl
and edi, eax
mov eax, dword [esp + 0x34]
or edi, eax
lea ebx, [ecx + ecx]
mov eax, dword [esp + 0x80]
mov ecx, dword [esp + 0x88]
cmp ebx, 0x20
jbe 0x41252e
mov ebx, dword [esp + 0x3c]
test bl, bl
je 0x4125b1
movzx edx, bl
mov word [esp + 0x2a], dx
mov edx, 0x19
movzx edx, dl
mov eax, edx
movzx ecx, word [esp + 0x2a]
xor edx, edx
div cx
movzx ecx, al
imul ecx, ebx
cmp ecx, 0x20
sbb edx, edx
mov eax, edx
mov edx, 1
shl edx, cl
and eax, edx
lea edx, [eax - 1]
and edi, edx
mov eax, dword [esp + 0x80]
mov edx, dword [esp + 0xc0]
mov ebx, ecx
mov ecx, dword [esp + 0x88]
jmp 0x41251d
call fcn.00432990
nop
call fcn.0045c4a0
jmp fcn.004118c0