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

Disassembly:
push 0xffffffffffffffff
push 0x4178e8
mov eax, dword fs:[0]
push eax
sub esp, 0x74
mov eax, dword [0x41f0ec]
xor eax, esp
mov dword [esp + 0x70], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x41f0ec]
xor eax, esp
push eax
lea eax, [esp + 0x88]
mov dword fs:[0], eax
cmp dword [0x4214ac], 0
mov eax, dword [esp + 0x98]
mov dword [esp + 0x1c], eax
jne 0x401ae7
mov dword [esp + 0x18], 0x420438
mov edx, dword [esp + 0x18]
push 4
lea ecx, [esp + 0x78]
push ecx
push 4
push edx
xor edi, edi
push edi
push edi
call dword [0x4180f4]
xor eax, eax
mov word [esp + 0x40], ax
lea eax, [esp + 0x74]
mov dword [esp + 0x54], 7
mov dword [esp + 0x50], edi
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, di
jne 0x4017f7
sub eax, edx
sar eax, 1
push eax
lea eax, [esp + 0x78]
lea esi, [esp + 0x40]
call fcn.00402c90
mov dword [esp + 0x90], edi
mov edx, dword [esp + 0x54]
mov ecx, dword [esp + 0x40]
cmp edx, 8
jb 0x401b35
mov ebp, ecx
cmp ecx, edi
je 0x401857
mov eax, ecx
cmp edx, 8
jae 0x40183d
lea eax, [esp + 0x40]
cmp eax, ebp
ja 0x401857
mov eax, ecx
cmp edx, 8
jae 0x40184c
lea eax, [esp + 0x40]
mov ebx, dword [esp + 0x50]
lea eax, [eax + ebx*2]
cmp ebp, eax
jbe 0x401868
call fcn.0040c232
mov edx, dword [esp + 0x54]
mov ebx, dword [esp + 0x50]
mov ecx, dword [esp + 0x40]
mov eax, ecx
cmp edx, 8
jae 0x401873
lea eax, [esp + 0x40]
lea edi, [eax + ebx*2]
test edi, edi
je 0x40189b
mov eax, ecx
cmp edx, 8
jae 0x401885
lea eax, [esp + 0x40]
cmp eax, edi
ja 0x40189b
mov eax, ecx
cmp edx, 8
jae 0x401894
lea eax, [esp + 0x40]
lea eax, [eax + ebx*2]
cmp edi, eax
jbe 0x4018ac
call fcn.0040c232
mov edx, dword [esp + 0x54]
mov ebx, dword [esp + 0x50]
mov ecx, dword [esp + 0x40]
cmp edx, 8
jb 0x401b3e
mov esi, ecx
test ecx, ecx
je 0x4018dc
mov eax, ecx
cmp edx, 8
jae 0x4018c6
lea eax, [esp + 0x40]
cmp eax, esi
ja 0x4018dc
mov eax, ecx
cmp edx, 8
jae 0x4018d5
lea eax, [esp + 0x40]
lea ecx, [eax + ebx*2]
cmp esi, ecx
jbe 0x4018e1
call fcn.0040c232
push ebp
lea eax, [esp + 0x40]
push eax
mov eax, dword [esp + 0x24]
mov byte [esp + 0x28], 0
mov edx, dword [esp + 0x28]
push edx
push eax
lea ecx, [esp + 0x44]
push edi
push ecx
mov ebx, esi
call fcn.00403c70
add esp, 0x18
lea edx, [esp + 0x3c]
push edx
lea eax, [esp + 0x28]
push eax
call fcn.004024f0
mov dword [esp + 0x90], 0xffffffff
cmp dword [esp + 0x54], 8
jb 0x401934
mov ecx, dword [esp + 0x40]
push ecx
call fcn.0040c242
add esp, 4
mov eax, dword [esp + 0x18]
add eax, 4
cmp eax, 0x42057c
mov dword [esp + 0x18], eax
jl 0x4017c5
mov dword [esp + 0x18], 0x420580
mov eax, dword [esp + 0x18]
push 6
lea edx, [esp + 0x78]
push edx
push 6
push eax
push 0
push 0
call dword [0x4180f4]
xor ecx, ecx
lea eax, [esp + 0x74]
mov dword [esp + 0x54], 7
mov dword [esp + 0x50], 0
mov word [esp + 0x40], cx
lea edx, [eax + 2]
jmp 0x401990
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x401990
sub eax, edx
sar eax, 1
push eax
lea eax, [esp + 0x78]
lea esi, [esp + 0x40]
call fcn.00402c90
mov dword [esp + 0x90], 1
mov edx, dword [esp + 0x54]
mov ecx, dword [esp + 0x40]
cmp edx, 8
jb 0x401b47
mov ebp, ecx
test ecx, ecx
je 0x4019f4
mov eax, ecx
cmp edx, 8
jae 0x4019da
lea eax, [esp + 0x40]
cmp eax, ebp
ja 0x4019f4
mov eax, ecx
cmp edx, 8
jae 0x4019e9
lea eax, [esp + 0x40]
mov ebx, dword [esp + 0x50]
lea eax, [eax + ebx*2]
cmp ebp, eax
jbe 0x401a05
call fcn.0040c232
mov edx, dword [esp + 0x54]
mov ebx, dword [esp + 0x50]
mov ecx, dword [esp + 0x40]
mov eax, ecx
cmp edx, 8
jae 0x401a10
lea eax, [esp + 0x40]
lea edi, [eax + ebx*2]
test edi, edi
je 0x401a38
mov eax, ecx
cmp edx, 8
jae 0x401a22
lea eax, [esp + 0x40]
cmp eax, edi
ja 0x401a38
mov eax, ecx
cmp edx, 8
jae 0x401a31
lea eax, [esp + 0x40]
lea eax, [eax + ebx*2]
cmp edi, eax
jbe 0x401a49
call fcn.0040c232
mov edx, dword [esp + 0x54]
mov ebx, dword [esp + 0x50]
mov ecx, dword [esp + 0x40]
cmp edx, 8
jb 0x401b50
mov esi, ecx
test ecx, ecx
je 0x401a79
mov eax, ecx
cmp edx, 8
jae 0x401a63
lea eax, [esp + 0x40]
cmp eax, esi
ja 0x401a79
mov eax, ecx
cmp edx, 8
jae 0x401a72
lea eax, [esp + 0x40]
lea ecx, [eax + ebx*2]
cmp esi, ecx
jbe 0x401a7e
call fcn.0040c232
push ebp
lea eax, [esp + 0x40]
push eax
mov eax, dword [esp + 0x24]
mov byte [esp + 0x28], 0
mov edx, dword [esp + 0x28]
push edx
push eax
lea ecx, [esp + 0x44]
push edi
push ecx
mov ebx, esi
call fcn.00403c70
add esp, 0x18
lea edx, [esp + 0x3c]
push edx
lea eax, [esp + 0x28]
push eax
call fcn.004024f0
mov dword [esp + 0x90], 0xffffffff
cmp dword [esp + 0x54], 8
jb 0x401ad1
mov ecx, dword [esp + 0x40]
push ecx
call fcn.0040c242
add esp, 4
mov eax, dword [esp + 0x18]
add eax, 6
cmp eax, 0x4205d4
mov dword [esp + 0x18], eax
jl 0x401952
mov edx, dword [esp + 0x9c]
mov eax, 1
cmp edx, eax
jb 0x401b0e
mov esi, dword [esp + 0x1c]
lea ecx, [esi + edx*2 - 2]
nop
cmp word [ecx], 0x2e
je 0x401b59
inc eax
sub ecx, 2
cmp eax, edx
jbe 0x401b00
xor eax, eax
mov ecx, dword [esp + 0x88]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x70]
xor ecx, esp
call fcn.0040bd36
add esp, 0x80
ret
lea ebp, [esp + 0x40]
jmp 0x401832
lea esi, [esp + 0x40]
jmp 0x4018bb
lea ebp, [esp + 0x40]
jmp 0x4019cf
lea esi, [esp + 0x40]
jmp 0x401a58
cmp eax, edx
ja 0x401b0e
sub edx, eax
lea eax, [esi + edx*2 + 2]
xor edx, edx
mov ecx, eax
mov dword [esp + 0x70], 7
mov dword [esp + 0x6c], 0
mov word [esp + 0x5c], dx
lea esi, [ecx + 2]
nop
mov dx, word [ecx]
add ecx, 2
test dx, dx
jne 0x401b80
sub ecx, esi
sar ecx, 1
push ecx
lea esi, [esp + 0x5c]
call fcn.00402c90
mov dword [esp + 0x90], 2
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x5c]
cmp ecx, 8
jb 0x401cf2
mov esi, edx
mov dword [esp + 0x18], esi
test edx, edx
je 0x401be4
mov eax, edx
cmp ecx, 8
jae 0x401bca
lea eax, [esp + 0x5c]
cmp eax, esi
ja 0x401be4
mov eax, edx
cmp ecx, 8
jae 0x401bd9
lea eax, [esp + 0x5c]
mov ebx, dword [esp + 0x6c]
lea eax, [eax + ebx*2]
cmp esi, eax
jbe 0x401bf5
call fcn.0040c232
mov ecx, dword [esp + 0x70]
mov ebx, dword [esp + 0x6c]
mov edx, dword [esp + 0x5c]
lea ebp, [esp + 0x58]
mov eax, edx
cmp ecx, 8
jae 0x401c04
lea eax, [esp + 0x5c]
lea edi, [eax + ebx*2]
test edi, edi
je 0x401c2c
mov eax, edx
cmp ecx, 8
jae 0x401c16
lea eax, [esp + 0x5c]
cmp eax, edi
ja 0x401c2c
mov eax, edx
cmp ecx, 8
jae 0x401c25
lea eax, [esp + 0x5c]
lea eax, [eax + ebx*2]
cmp edi, eax
jbe 0x401c3d
call fcn.0040c232
mov ecx, dword [esp + 0x70]
mov ebx, dword [esp + 0x6c]
mov edx, dword [esp + 0x5c]
cmp ecx, 8
jb 0x401cff
mov esi, edx
test edx, edx
je 0x401c6d
mov eax, edx
cmp ecx, 8
jae 0x401c57
lea eax, [esp + 0x5c]
cmp eax, esi
ja 0x401c6d
mov eax, edx
cmp ecx, 8
jae 0x401c66
lea eax, [esp + 0x5c]
lea ecx, [eax + ebx*2]
cmp esi, ecx
jbe 0x401c72
call fcn.0040c232
mov edx, dword [esp + 0x18]
push edx
push ebp
mov byte [esp + 0x24], 0
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x24]
push eax
push ecx
lea edx, [esp + 0x44]
push edi
push edx
mov ebx, esi
call fcn.00403c70
add esp, 0x18
lea eax, [esp + 0x58]
push eax
lea ecx, [esp + 0x28]
push ecx
call fcn.00402ea0
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x2c]
push edx
mov edx, dword [esp + 0x2c]
push eax
mov eax, dword [esp + 0x2c]
push ecx
push edx
push eax
lea esi, [esp + 0x2c]
mov dword [esp + 0x2c], 0
call fcn.00403d20
mov esi, dword [esp + 0x2c]
add esp, 0x14
cmp dword [esp + 0x70], 8
jb 0x401ceb
mov ecx, dword [esp + 0x5c]
push ecx
call fcn.0040c242
add esp, 4
mov eax, esi
jmp 0x401b10
lea esi, [esp + 0x5c]
mov dword [esp + 0x18], esi
jmp 0x401bbf
lea esi, [esp + 0x5c]
jmp 0x401c4c