Function at 0x413e70
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 0x414b67
sub esp, 0xd4
mov eax, dword [esp + 0xd8]
mov dword [esp], eax
call fcn.00412ce0
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 0x4141c8
cmp edi, 0xc
je 0x4140bc
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.00427240
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x88]
cmp eax, ecx
je 0x413f24
mov edx, dword [esp + 0xd8]
mov ebx, edx
xor ebp, ebp
jmp 0x413f39
mov ebx, dword [esp + 0xd8]
mov edx, dword [esp + 0xcc]
mov ebp, dword [esp + 0xd0]
mov dword [esp + 0x80], eax
mov dword [esp + 0xbc], edx
mov esi, dword [esp + 0xe4]
movzx edi, byte [esi + 0xf]
xchg edi, eax
test al, 0x40
xchg edi, eax
jne 0x41402b
mov ebp, dword [esp + 0xe0]
cmp dword [esi], ebp
jae 0x413ffd
mov edi, dword [esi + 4]
shr edi, 2
cmp edi, 0x19
ja 0x413fb6
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 0x414aaa
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.004127a0
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 0x4149f5
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 0x414524
mov dword [esp + 0xb4], ebp
mov eax, dword [esi + 0x14]
mov dword [esp], eax
mov dword [esp + 4], 4
call fcn.004127a0
mov eax, dword [esp + 0xe4]
mov ecx, dword [eax + 4]
mov eax, dword [eax]
mov edx, dword [esp + 8]
mov ebx, dword [esp + 0xbc]
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 + 0xb4]
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.00414b80
mov eax, dword [esp + 0x80]
mov ecx, dword [esp + 0x88]
cmp eax, ecx
jmp 0x414287
movzx ecx, byte [ecx]
cmp dword [eax], 4
jne 0x4140c9
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 0x414110
test ebx, ebx
jne 0x4140ff
movzx ecx, byte [edx]
and ecx, 0xffffff88
or ecx, eax
or ecx, 0x10
mov byte [edx], cl
jmp 0x4141c1
movzx eax, byte [edx]
and eax, 0x11
shl ecx, 1
or ecx, eax
mov byte [edx], cl
jmp 0x4141c1
mov byte [esp + 0x29], cl
cmp ebx, 2
je 0x414160
cmp ebx, 3
jne 0x4141c1
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.00413110
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 0x4141c1
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.00413110
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.00413110
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 0x414225
mov eax, dword [esp + 0xe0]
cmp eax, 4
jne 0x414205
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 0x41421e
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 0x414390
mov eax, dword [esp + 0xd8]
mov dword [esp], eax
call fcn.00412ce0
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 0x414461
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.00413110
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.00413110
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.004127a0
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 0x414461
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.00413330
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 + 0xb8]
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.00464a30
mov eax, dword [esp + 0xa4]
mov dword [esp], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 4], eax
call fcn.004127a0
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 + 0xb8], ebp
cmp eax, 4
jae 0x414397
cmp eax, 2
jne 0x41450f
mov dword [esp + 0x54], esi
mov dword [esp + 0x4c], ebx
mov dword [esp + 0xb0], 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.004127a0
mov eax, dword [esp + 8]
mov dword [esp + 0xa4], eax
mov ecx, dword [esp + 0xb8]
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 + 0xb0]
mov dword [esp + 0xc], ecx
call fcn.00413110
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.00413110
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.00464860
jmp 0x414390
test edi, edi
jne 0x414540
mov dword [esp + 0x9c], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x9c]
jmp 0x414595
movzx eax, byte [edi]
mov dword [esp + 0x7c], eax
mov dword [esp], edi
call fcn.004127c0
mov edi, dword [esp + 4]
mov eax, dword [esp + 0x80]
mov ecx, dword [esp + 0x88]
mov edx, dword [esp + 0xbc]
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 0x4145aa
mov ebp, dword [esi + 4]
shr ebp, 2
jmp 0x4145d2
test edi, edi
je 0x4149f0
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 + 0xbc]
test ebp, ebp
je 0x414983
mov dword [esp + 0x38], ebp
mov esi, dword [esp + 0x84]
test esi, esi
jne 0x414633
mov esi, dword [esp + 0x60]
and esi, 0xf
or esi, 0xf0
cmp ebp, 4
ja 0x414605
mov edi, 4
jmp 0x4148a3
xchg esi, eax
mov byte [edx], al
xchg esi, eax
mov dword [esp], edx
call fcn.004127c0
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 0x4146b5
cmp esi, 2
jne 0x41496d
mov esi, dword [esp + 0x60]
and esi, 3
shl esi, 2
mov dword [esp + 0x50], esi
or esi, 0x40
cmp ebp, 1
jbe 0x41465c
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.004127c0
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x38]
cmp ecx, 2
ja 0x4146a2
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 0x4148a3
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 0x414700
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.004127c0
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 0x414880
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.004127c0
mov eax, dword [esp + 4]
mov dword [esp + 0xc0], eax
mov ecx, dword [esp + 0x7c]
shr ecx, 4
mov edx, dword [esp + 0xac]
mov ebx, dword [esp + 0xc4]
cmp edx, ebx
je 0x4147af
mov ebp, dword [esp + 0x3c]
cmp ebp, 8
jb 0x414765
add ebp, 0xfffffff8
jmp 0x4147a0
mov dword [esp + 0x78], ecx
movzx eax, byte [edx]
mov dword [esp + 0x7c], eax
mov dword [esp], edx
call fcn.004127c0
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 + 0xc0]
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 0x414860
test edx, edx
je 0x41482e
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 0x4147e2
lea esi, [ecx + edx - 8]
mov ecx, dword [esp + 0xa8]
jmp 0x414860
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.004127c0
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 + 0xc0]
jmp 0x414860
mov ebp, dword [esp + 0x3c]
cmp ebp, 8
jae 0x41484c
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 0x414852
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 0x4146c1
jmp 0x414886
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 0x4148e2
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 0x41494c
mov dword [esp + 0x38], ebp
xchg esi, eax
mov byte [edx], al
xchg esi, eax
mov dword [esp], edx
call fcn.004127c0
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x30]
add ecx, 4
jmp 0x414927
mov dword [esp + 0x6c], ecx
mov byte [eax], 0
mov dword [esp], eax
call fcn.004127c0
mov eax, dword [esp + 0x6c]
lea ecx, [eax + 4]
mov eax, dword [esp + 4]
mov edx, dword [esp + 0x38]
cmp ecx, edx
jbe 0x41490d
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 0x414966
movzx ebp, byte [edx]
and ebp, 0xffffffcc
or esi, ebp
xchg esi, eax
mov byte [edx], al
xchg esi, eax
cmp eax, ecx
jmp 0x414287
cmp eax, ecx
jmp 0x414287
lea eax, [0x5db6af]
mov dword [esp], eax
mov dword [esp + 4], 0x21
call fcn.004376f0
mov dword [esp], esi
call fcn.0045cbf0
mov eax, dword [esp + 4]
mov dword [esp + 0xd0], eax
mov ecx, dword [esp + 8]
mov dword [esp + 0x68], ecx
call fcn.00438cf0
lea eax, [0x5d7108]
mov dword [esp], eax
mov dword [esp + 4], 0x17
call fcn.00439880
mov eax, dword [esp + 0xd0]
mov dword [esp], eax
mov eax, dword [esp + 0x68]
mov dword [esp + 4], eax
call fcn.00439880
call fcn.00438ee0
call fcn.00438d50
lea eax, [0x5de352]
mov dword [esp], eax
mov dword [esp + 4], 0x2d
call fcn.004376f0
call fcn.00435d60
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 + 0xbc]
mov ebx, dword [esp + 0xd8]
mov ebp, dword [esp + 0xe0]
mov esi, dword [esp + 0xe4]
jmp 0x414524
mov eax, dword [esp + 0xac]
movzx ecx, byte [eax]
mov dword [esp + 0x64], ecx
mov dword [esp], eax
call fcn.004127c0
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 + 0xbc]
mov ebx, dword [esp + 0x48]
cmp ebx, edi
jb 0x414a39
mov ebx, dword [esi]
shr ebx, 2
lea edi, [ebx + ebx]
cmp edi, 0x19
ja 0x414ac9
mov dword [esp + 0x3c], ebx
mov edi, dword [esp + 0x60]
jmp 0x414b01
mov edi, dword [esp + 0x60]
mov ecx, esi
mov ebp, ebx
xor eax, eax
mov esi, edi
mov edx, ebp
xor ebx, ebx
jmp 0x4149f5
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 0x414ade
mov ebx, dword [esp + 0x3c]
test bl, bl
je 0x414b61
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 + 0xbc]
mov ebx, ecx
mov ecx, dword [esp + 0x88]
jmp 0x414acd
call fcn.00435d60
nop
call fcn.00462e70
jmp fcn.00413e70