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

Disassembly:
push 0xffffffffffffffff
mov eax, dword fs:[0]
push 0x43bab8
push eax
mov eax, 0x107c
mov dword fs:[0], esp
call fcn.0042c510
mov eax, dword [0x447648]
push ebp
mov dword [esp + 0x107c], eax
mov ebp, ecx
call fcn.004128a0
mov dword [ebp + 0x7200], eax
mov al, byte [ebp + 0x7210]
test al, al
mov dword [ebp + 0x7204], edx
je 0x414b25
mov ecx, ebp
call fcn.00414800
jmp 0x41577f
push esi
push edi
push ebp
lea ecx, [esp + 0x14]
call fcn.00424180
mov al, byte [ebp + 0x7218]
test al, al
mov dword [esp + 0x1090], 0
je 0x414c6a
mov eax, dword [ebp + 0x721c]
mov edx, dword [ebp + 0x7204]
xor ecx, ecx
add eax, 0x14
cmp edx, ecx
jl 0x414c6a
jg 0x414b73
mov ecx, dword [ebp + 0x7200]
cmp ecx, eax
jb 0x414c6a
push 8
lea edi, [ebp + 0xe60]
push edi
mov ecx, ebp
mov byte [esp + 0x17], 1
call fcn.004132c0
cmp eax, 8
jne 0x414c52
mov eax, dword [ebp + 0x1390]
mov dl, byte [eax + 0x1c10]
test dl, dl
lea ecx, [eax + 0x1c10]
jne 0x414bdd
mov edx, dword [eax + 0x36a8]
test edx, edx
je 0x414bc7
mov eax, dword [eax + 0x36a4]
push 0x80
push ecx
push eax
push 2
call edx
cmp eax, 0xffffffff
jne 0x414bdd
mov ecx, ebp
call fcn.00412730
push 0xff
mov ecx, 0x44e1d8
call fcn.0041bc70
mov ecx, dword [ebp + 0x1390]
push 0
push 0
add ecx, 0x1c10
push edi
lea esi, [ebp + 0xc20]
push ecx
mov ecx, esi
call fcn.00424c60
mov dword [esp + 0x28], esi
push 7
lea ecx, [esp + 0x14]
call fcn.00423ef0
mov eax, dword [esp + 0x20]
test eax, eax
jne 0x414c71
mov ecx, ebp
call fcn.00412a80
mov ecx, dword [ebp + 0x7204]
cmp ecx, edx
jg 0x414c46
jl 0x414c30
mov ecx, dword [ebp + 0x7200]
cmp ecx, eax
ja 0x414c46
mov ecx, dword [ebp + 0x720c]
cmp ecx, edx
jl 0x414c52
jg 0x414c46
mov edx, dword [ebp + 0x7208]
cmp edx, eax
jbe 0x414c52
push 1
mov ecx, 0x44e1d8
call fcn.0041b9b0
mov eax, dword [esp + 0x10]
test eax, eax
je 0x414c63
push eax
call fcn.0042c9a8
add esp, 4
xor eax, eax
jmp 0x41577d
mov byte [esp + 0xf], 0
jmp 0x414c00
push ebx
lea esi, [ebp + 0x4aac]
push esi
lea ecx, [esp + 0x18]
call fcn.00424000
lea eax, [esp + 0x33]
push eax
lea ecx, [esp + 0x18]
call fcn.00423fe0
movzx ecx, byte [esp + 0x33]
mov dword [ebp + 0x4ab0], ecx
lea ebx, [ebp + 0x4ab4]
push ebx
lea ecx, [esp + 0x18]
call fcn.00424000
lea edi, [ebp + 0x4ab6]
push edi
lea ecx, [esp + 0x18]
call fcn.00424000
mov ax, word [edi]
cmp ax, 7
jb 0x41571f
mov ecx, dword [ebp + 0x4ab0]
cmp ecx, 0x75
jne 0x414cd7
push 6
jmp 0x414cec
cmp ecx, 0x73
jne 0x414ce5
test byte [ebx], 2
je 0x414ce5
push 6
jmp 0x414cec
movzx edx, ax
sub edx, 7
push edx
lea ecx, [esp + 0x18]
call fcn.00423ef0
movzx eax, word [edi]
mov ecx, dword [ebp + 0x7200]
mov edi, dword [ebp + 0x7204]
cdq
add eax, ecx
mov dword [ebp + 0x7208], eax
mov eax, dword [ebp + 0x4ab0]
adc edx, edi
lea ecx, [eax - 0x73]
cmp ecx, 8
mov dword [ebp + 0x720c], edx
ja case.default.0x414d27
jmp dword [ecx*4 + 0x4157a4]
mov ecx, dword [esi]
mov edx, dword [esi + 4]
lea eax, [ebp + 0x4ab8]
mov dword [eax], ecx
mov ecx, dword [esi + 8]
mov dword [eax + 4], edx
lea edx, [ebp + 0x4ac8]
mov dword [eax + 8], ecx
push edx
lea ecx, [esp + 0x18]
call fcn.00424000
lea eax, [ebp + 0x4acc]
push eax
lea ecx, [esp + 0x18]
call fcn.00424030
jmp case.default.0x415431
mov edx, dword [esi]
mov eax, dword [esi + 4]
lea ecx, [ebp + 0x57e8]
mov dword [ecx], edx
mov edx, dword [esi + 8]
mov dword [ecx + 4], eax
mov dword [ecx + 8], edx
test byte [ebp + 0x57f0], 2
je 0x414d98
lea eax, [ebp + 0x57f4]
push eax
lea ecx, [esp + 0x18]
call fcn.00424030
test byte [ebp + 0x57f0], 8
je case.default.0x415431
lea ecx, [ebp + 0x57f8]
push ecx
lea ecx, [esp + 0x18]
call fcn.00424000
jmp case.default.0x415431
cmp eax, 0x74
lea ebx, [ebp + 0x4ad0]
je 0x414dcb
lea ebx, [ebp + 0x5810]
mov eax, dword [esi]
mov edx, ebx
mov dword [edx], eax
mov ecx, dword [esi + 4]
mov dword [edx + 4], ecx
mov eax, dword [esi + 8]
mov dword [edx + 8], eax
lea eax, [ebx + 0xc]
push eax
lea ecx, [esp + 0x18]
call fcn.00424030
lea eax, [ebx + 0x10]
push eax
lea ecx, [esp + 0x18]
call fcn.00424030
lea ecx, [ebx + 0x14]
push ecx
lea ecx, [esp + 0x18]
call fcn.00423fe0
lea edx, [ebx + 0x18]
push edx
lea ecx, [esp + 0x18]
call fcn.00424030
lea eax, [ebx + 0x1c]
push eax
lea ecx, [esp + 0x18]
call fcn.00424030
lea eax, [ebx + 0x20]
push eax
lea ecx, [esp + 0x18]
call fcn.00423fe0
lea ecx, [ebx + 0x21]
push ecx
lea ecx, [esp + 0x18]
call fcn.00423fe0
lea eax, [ebx + 0x22]
push eax
lea ecx, [esp + 0x18]
call fcn.00424000
lea edx, [ebx + 0x24]
push edx
lea ecx, [esp + 0x18]
call fcn.00424030
test byte [ebx + 9], 1
lea esi, [ebx + 0x28]
je 0x414e74
push esi
lea ecx, [esp + 0x18]
call fcn.00424030
lea edi, [ebx + 0x2c]
push edi
lea ecx, [esp + 0x18]
call fcn.00424030
jmp 0x414e96
cmp dword [ebx + 0x10], 0xffffffff
lea edi, [ebx + 0x2c]
mov dword [edi], 0
mov dword [esi], 0
jne 0x414e96
mov dword [ebx + 0x10], 0
mov dword [edi], SysReAllocString
mov eax, dword [esi]
push 1
push 0
push 0
push eax
call fcn.0042d7b0
mov ecx, dword [ebx + 0xc]
xor esi, esi
add eax, ecx
push 1
adc edx, esi
push esi
mov dword [ebx + 0xd0c], edx
mov edx, dword [edi]
push esi
push edx
mov dword [ebx + 0xd08], eax
call fcn.0042d7b0
mov ecx, dword [ebx + 0x10]
add eax, ecx
mov dword [ebx + 0xd10], eax
mov ax, word [ebx + 0x22]
adc edx, esi
cmp ax, 0xfff
mov dword [ebx + 0xd14], edx
movzx edi, ax
jb 0x414eea
mov edi, 0xfff
push edi
lea edx, [esp + 0x8c]
push edx
lea ecx, [esp + 0x1c]
call fcn.004240f0
push 0x400
lea eax, [esp + 0x8c]
lea esi, [ebx + 0x30]
push eax
push esi
mov byte [esp + edi + 0x94], 0
mov dword [esp + 0x48], esi
call fcn.0042d650
mov eax, dword [ebx + 4]
add esp, 0xc
cmp eax, 0x7a
mov byte [ebx + 0x42f], 0
jne 0x415198
movzx edi, word [ebx + 0xa]
movzx ecx, word [ebx + 0x22]
sub edi, ecx
sub edi, 0x20
test byte [ebx + 9], 4
je 0x414f4a
sub edi, 8
test edi, edi
jle 0x414fa6
lea esi, [ebx + 0xc30]
push edi
mov ecx, esi
call fcn.00414550
mov edx, dword [esi]
push edi
push edx
lea ecx, [esp + 0x1c]
call fcn.004240f0
push 0x4410a4
mov ecx, ebx
call fcn.004135b0
test al, al
je 0x414fa2
mov eax, dword [esi]
movzx ecx, byte [eax + 0xb]
movzx edx, byte [eax + 0xa]
add eax, 8
shl ecx, 8
add ecx, edx
movzx edx, byte [eax + 1]
movzx eax, byte [eax]
shl ecx, 8
add ecx, edx
shl ecx, 8
add ecx, eax
mov dword [ebp + 0x4a60], ecx
mov esi, dword [esp + 0x3c]
test byte [ebx + 9], 4
je 0x414fbe
push 8
lea ecx, [ebx + 0xc3c]
push ecx
lea ecx, [esp + 0x1c]
call fcn.004240f0
mov edx, dword [ebx + 0x1c]
push edx
lea ecx, [ebx + 0xc48]
call fcn.0041cc00
xor eax, eax
test byte [ebx + 9], 0x10
mov dword [ebx + 0xc78], eax
mov dword [ebx + 0xca8], eax
mov dword [ebx + 0xcd8], eax
je 0x415100
lea eax, [esp + 0x44]
push eax
lea ecx, [esp + 0x18]
call fcn.00424000
lea edx, [ebp + 0x5748]
lea ecx, [ebp + 0x5718]
mov dword [esp + 0x50], edx
lea edx, [esp + 0x4c]
mov dword [esp + 0x4c], ecx
lea eax, [ebp + 0x5778]
lea ecx, [ebp + 0x57a8]
mov dword [esp + 0x40], 0xc
mov dword [esp + 0x34], edx
mov edx, dword [esp + 0x40]
mov dword [esp + 0x54], eax
mov dword [esp + 0x58], ecx
mov eax, dword [esp + 0x34]
mov esi, dword [eax]
movzx eax, word [esp + 0x44]
mov cl, dl
shr eax, cl
test al, 8
mov dword [esp + 0x38], eax
je 0x4150e1
cmp edx, 0xc
je 0x415073
lea ecx, [esp + 0x48]
push ecx
lea ecx, [esp + 0x18]
call fcn.00424030
mov edx, dword [esp + 0x48]
push edx
mov ecx, esi
call fcn.0041cc00
mov eax, dword [esp + 0x38]
test al, 4
mov edx, dword [esp + 0x34]
mov esi, dword [edx]
mov ecx, 9
lea edi, [esp + 0x64]
rep movsd dword es:[edi], dword [esi]
je 0x41508c
inc dword [esp + 0x78]
and eax, 3
mov dword [esp + 0x7c], 0
jle 0x4150cc
mov esi, 3
sub esi, eax
shl esi, 3
mov edi, eax
lea eax, [esp + 0x32]
push eax
lea ecx, [esp + 0x18]
call fcn.00423fe0
movzx edx, byte [esp + 0x32]
mov eax, dword [esp + 0x7c]
mov ecx, esi
shl edx, cl
add esi, 8
or eax, edx
dec edi
mov dword [esp + 0x7c], eax
jne 0x4150a5
mov eax, dword [esp + 0x34]
mov edi, dword [eax]
mov edx, dword [esp + 0x40]
mov ecx, 9
lea esi, [esp + 0x64]
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x34]
sub edx, 4
add esi, 4
cmp edx, 0xfffffffc
mov dword [esp + 0x34], esi
mov dword [esp + 0x40], edx
jg 0x415035
mov esi, dword [esp + 0x3c]
mov ecx, dword [ebx + 0xd08]
mov eax, dword [ebp + 0x7208]
mov edi, dword [ebp + 0x720c]
add eax, ecx
mov dword [ebp + 0x7208], eax
mov edx, dword [ebx + 0xd0c]
adc edi, edx
mov dword [ebp + 0x720c], edi
mov al, byte [ebx + 8]
shr al, 3
and al, 1
mov byte [esp + 0x38], al
mov ecx, dword [esp + 0x38]
push ecx
lea ecx, [esp + 0x18]
call fcn.00424150
not eax
mov word [ebp + 0x7222], ax
cmp word [ebx], ax
je case.default.0x415431
cmp dword [ebx + 4], 0x7a
jne 0x41517a
mov edi, esi
dec edi
lea ecx, [ecx]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x415160
mov edx, dword [0x4410a8]
mov dword [edi], edx
mov ax, word [0x4410ac]
mov word [edi + 4], ax
push 1
mov ecx, 0x44e1d8
mov byte [ebp + 0x7220], 1
call fcn.0041b9b0
push esi
call fcn.00418fc0
jmp case.default.0x415431
cmp eax, 0x74
jne 0x414fa6
test byte [ebx + 9], 2
je 0x415202
lea ecx, [esp + 0x4c]
call fcn.004241a0
lea eax, [esp + 0x88]
lea edx, [eax + 1]
lea ebx, [ebx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4151c0
movzx ecx, word [ebx + 0x22]
sub eax, edx
push 0x400
inc eax
sub ecx, eax
lea edi, [ebx + 0x430]
push edi
push ecx
lea edx, [esp + eax + 0x94]
push edx
lea eax, [esp + 0x98]
push eax
lea ecx, [esp + 0x60]
call fcn.004241c0
cmp word [edi], 0
jne 0x41520d
and byte [ebx + 9], 0xfd
jmp 0x41520d
lea edi, [ebx + 0x430]
mov word [edi], 0
push esi
mov ecx, ebp
call fcn.00414610
push edi
mov ecx, ebp
call fcn.00414670
mov ecx, ebp
call fcn.00414750
jmp 0x414fa6
mov edx, dword [esi]
mov eax, dword [esi + 4]
lea ecx, [ebp + 0x6528]
mov dword [ecx], edx
mov edx, dword [esi + 8]
mov dword [ecx + 4], eax
lea eax, [ebp + 0x6534]
mov dword [ecx + 8], edx
push eax
lea ecx, [esp + 0x18]
call fcn.00424000
lea ecx, [ebp + 0x6536]
push ecx
lea ecx, [esp + 0x18]
call fcn.00423fe0
lea edx, [ebp + 0x6537]
push edx
lea ecx, [esp + 0x18]
call fcn.00423fe0
lea eax, [ebp + 0x6538]
push eax
lea ecx, [esp + 0x18]
call fcn.00424000
jmp case.default.0x415431
mov edx, dword [esi]
mov eax, dword [esi + 4]
lea ecx, [ebp + 0x6570]
mov dword [ecx], edx
mov edx, dword [esi + 8]
mov dword [ecx + 4], eax
lea eax, [ebp + 0x657c]
mov dword [ecx + 8], edx
push eax
lea ecx, [esp + 0x18]
call fcn.00424030
lea ecx, [ebp + 0x6580]
push ecx
lea ecx, [esp + 0x18]
call fcn.00424000
lea edx, [ebp + 0x6582]
push edx
lea ecx, [esp + 0x18]
call fcn.00424000
jmp case.default.0x415431
mov ecx, dword [esi]
mov edx, dword [esi + 4]
lea eax, [ebp + 0x655c]
mov dword [eax], ecx
mov ecx, dword [esi + 8]
mov dword [eax + 4], edx
lea edx, [ebp + 0x6568]
mov dword [eax + 8], ecx
push edx
lea ecx, [esp + 0x18]
call fcn.00423fe0
lea eax, [ebp + 0x6569]
push eax
lea ecx, [esp + 0x18]
call fcn.00423fe0
lea ecx, [ebp + 0x656a]
push ecx
lea ecx, [esp + 0x18]
call fcn.00423fe0
lea edx, [ebp + 0x656c]
push edx
lea ecx, [esp + 0x18]
call fcn.00424030
jmp case.default.0x415431
mov ecx, dword [esi]
mov edx, dword [esi + 4]
lea eax, [ebp + 0x653c]
mov dword [eax], ecx
mov ecx, dword [esi + 8]
mov dword [eax + 4], edx
mov dword [eax + 8], ecx
lea esi, [ebp + 0x6548]
push esi
lea ecx, [esp + 0x18]
call fcn.00424030
lea edx, [ebp + 0x654c]
push edx
lea ecx, [esp + 0x18]
call fcn.00423fe0
lea edi, [ebp + 0x654e]
push edi
lea ecx, [esp + 0x18]
call fcn.00424000
lea eax, [ebp + 0x6550]
push eax
lea ecx, [esp + 0x18]
call fcn.00424030
push 8
lea ecx, [ebp + 0x6554]
push ecx
lea ecx, [esp + 0x1c]
call fcn.004240f0
mov edx, dword [esi]
mov ecx, dword [ebp + 0x7208]
mov eax, dword [ebp + 0x720c]
add ecx, edx
adc eax, 0
mov dword [ebp + 0x720c], eax
movzx eax, word [edi]
mov dword [ebp + 0x4a60], eax
jmp 0x415649
mov edx, dword [esi]
mov eax, dword [esi + 4]
lea edi, [ebp + 0x57fc]
mov ecx, edi
mov dword [ecx], edx
mov edx, dword [esi + 8]
mov dword [ecx + 4], eax
mov dword [ecx + 8], edx
lea esi, [ebp + 0x5808]
push esi
lea ecx, [esp + 0x18]
call fcn.00424030
mov eax, dword [esi]
mov ecx, dword [ebp + 0x7208]
add ecx, eax
mov eax, dword [ebp + 0x720c]
mov dword [ebp + 0x7208], ecx
adc eax, 0
lea esi, [ebp + 0x580c]
push esi
lea ecx, [esp + 0x18]
mov dword [ebp + 0x720c], eax
call fcn.00424000
lea ecx, [ebp + 0x580e]
push ecx
lea ecx, [esp + 0x18]
call fcn.00423fe0
movzx eax, word [esi]
add eax, 0xffffff00
cmp eax, 5
ja case.default.0x415431
jmp dword [eax*4 + 0x4157c8]
mov eax, dword [edi]
mov ecx, dword [edi + 4]
lea edx, [ebp + 0x6584]
mov dword [edx], eax
mov eax, dword [edi + 8]
mov dword [edx + 4], ecx
mov ecx, dword [edi + 0xc]
mov dword [edx + 8], eax
mov eax, dword [edi + 0x10]
mov dword [edx + 0xc], ecx
lea esi, [ebp + 0x6598]
push esi
lea ecx, [esp + 0x18]
mov dword [edx + 0x10], eax
call fcn.00424000
lea edi, [ebp + 0x659a]
push edi
lea ecx, [esp + 0x18]
call fcn.00424000
cmp word [esi], 0x3ff
jbe 0x415486
mov word [esi], 0x3ff
cmp word [edi], 0x3ff
jbe 0x415492
mov word [edi], 0x3ff
movzx ecx, word [esi]
push ecx
lea edx, [ebp + 0x659c]
push edx
lea ecx, [esp + 0x1c]
call fcn.004240f0
movzx eax, word [edi]
push eax
lea ecx, [ebp + 0x699c]
push ecx
lea ecx, [esp + 0x1c]
call fcn.004240f0
movzx edx, word [esi]
mov byte [edx + ebp + 0x659c], 0
movzx eax, word [edi]
mov byte [eax + ebp + 0x699c], 0
jmp case.default.0x415431
mov edx, dword [edi]
mov eax, dword [edi + 4]
lea ecx, [ebp + 0x6d9c]
mov dword [ecx], edx
mov edx, dword [edi + 8]
mov dword [ecx + 4], eax
mov eax, dword [edi + 0xc]
mov dword [ecx + 8], edx
mov edx, dword [edi + 0x10]
mov dword [ecx + 0xc], eax
lea eax, [ebp + 0x6db0]
mov dword [ecx + 0x10], edx
push eax
lea ecx, [esp + 0x18]
call fcn.00424030
lea ecx, [ebp + 0x6db4]
push ecx
lea ecx, [esp + 0x18]
call fcn.00424030
jmp case.default.0x415431
mov eax, dword [edi]
mov ecx, dword [edi + 4]
lea edx, [ebp + 0x6db8]
mov dword [edx], eax
mov eax, dword [edi + 8]
mov dword [edx + 4], ecx
mov ecx, dword [edi + 0xc]
mov dword [edx + 8], eax
mov eax, dword [edi + 0x10]
mov dword [edx + 0xc], ecx
lea ecx, [ebp + 0x6dcc]
push ecx
lea ecx, [esp + 0x18]
mov dword [edx + 0x10], eax
call fcn.00424030
lea edx, [ebp + 0x6dd0]
push edx
lea ecx, [esp + 0x18]
call fcn.00423fe0
lea eax, [ebp + 0x6dd1]
push eax
lea ecx, [esp + 0x18]
call fcn.00423fe0
lea ecx, [ebp + 0x6dd4]
push ecx
lea ecx, [esp + 0x18]
call fcn.00424030
jmp case.default.0x415431
mov eax, dword [edi]
mov ecx, dword [edi + 4]
lea edx, [ebp + 0x6dd8]
mov dword [edx], eax
mov eax, dword [edi + 8]
mov dword [edx + 4], ecx
mov ecx, dword [edi + 0xc]
mov dword [edx + 8], eax
mov eax, dword [edi + 0x10]
mov dword [edx + 0xc], ecx
lea ecx, [ebp + 0x6dec]
push ecx
lea ecx, [esp + 0x18]
mov dword [edx + 0x10], eax
call fcn.00424030
lea edx, [ebp + 0x6df0]
push edx
lea ecx, [esp + 0x18]
call fcn.00423fe0
lea eax, [ebp + 0x6df1]
push eax
lea ecx, [esp + 0x18]
call fcn.00423fe0
lea ecx, [ebp + 0x6df4]
push ecx
lea ecx, [esp + 0x18]
call fcn.00424030
lea esi, [ebp + 0x6df8]
push esi
lea ecx, [esp + 0x18]
call fcn.00424000
cmp word [esi], 0x3ff
jbe 0x415601
mov word [esi], 0x3ff
movzx edx, word [esi]
push edx
lea eax, [ebp + 0x6dfa]
push eax
lea ecx, [esp + 0x1c]
call fcn.004240f0
movzx ecx, word [esi]
mov byte [ecx + ebp + 0x6dfa], 0
jmp case.default.0x415431
test byte [ebx + 1], 0x80
je case.default.0x415431
lea edx, [esp + 0x38]
push edx
lea ecx, [esp + 0x18]
call fcn.00424030
mov eax, dword [esp + 0x38]
mov ecx, dword [ebp + 0x7208]
add ecx, eax
adc dword [ebp + 0x720c], 0
mov dword [ebp + 0x7208], ecx
push 0
lea ecx, [esp + 0x18]
call fcn.00424150
mov esi, dword [ebp + 0x4ab0]
mov ecx, eax
mov al, byte [esp + 0x13]
test al, al
not ecx
mov word [ebp + 0x7222], cx
mov dword [ebp + 0x4aa4], esi
je 0x415747
mov edi, dword [esp + 0x24]
mov eax, dword [esp + 0x18]
mov ebx, dword [ebp + 0x7208]
sub eax, edi
mov edi, dword [ebp + 0x720c]
add eax, 8
cdq
add ebx, eax
adc edi, edx
cmp word [ebp + 0x4aac], cx
mov dword [ebp + 0x7208], ebx
mov dword [ebp + 0x720c], edi
je 0x415747
cmp esi, 0x7b
jne 0x415718
test byte [ebp + 0x57f0], 4
je 0x415718
push ebp
lea ecx, [esp + 0x50]
call fcn.0041d060
mov ecx, ebp
mov byte [esp + 0x1094], 1
call fcn.004128a0
sub eax, 7
push 0
sbb edx, 0
push edx
push eax
mov ecx, ebp
call fcn.00413070
mov bl, 1
mov esi, 7
mov ecx, ebp
call fcn.004133c0
test al, al
je 0x415700
xor bl, bl
dec esi
jne 0x4156f3
lea ecx, [esp + 0x4c]
mov byte [esp + 0x1094], 0
call fcn.0041d090
test bl, bl
jne 0x415747
mov ecx, ebp
call fcn.00412730
push 3
mov ecx, 0x44e1d8
mov byte [ebp + 0x7220], 1
call fcn.0041b9b0
mov eax, dword [esp + 0x14]
test eax, eax
je 0x415743
push eax
call fcn.0042c9a8
add esp, 4
xor eax, eax
jmp 0x41577c
mov ecx, dword [ebp + 0x720c]
cmp ecx, dword [ebp + 0x7204]
jg 0x415765
jl 0x41571f
mov edx, dword [ebp + 0x7208]
cmp edx, dword [ebp + 0x7200]
jbe 0x41571f
mov eax, dword [esp + 0x14]
test eax, eax
mov esi, dword [esp + 0x24]
je 0x41577a
push eax
call fcn.0042c9a8
add esp, 4
mov eax, esi
pop ebx
pop edi
pop esi
mov ecx, dword [esp + 0x1080]
mov dword fs:[0], ecx
mov ecx, dword [esp + 0x107c]
pop ebp
call fcn.0042b7bd
add esp, 0x1088
ret