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

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x9c
mov eax, dword [esp + 0xb0]
mov edi, dword [esp + 0xc0]
mov ebx, dword [esp + 0xb4]
mov esi, dword [esp + 0xb8]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0xbc]
mov edx, edi
mov dword [esp + 0x24], edi
mov ecx, dword [esp + 0xc8]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0xc4]
mov byte [esp + 0x38], bl
mov dword [esp + 0x28], eax
mov eax, dword [sym.imp.cygwin1.dll___stack_chk_guard]
mov dword [esp + 0x8c], eax
xor eax, eax
cmp edi, 0xffffffff
jne 0x415d1b
mov eax, dword [esp + 0x2c]
mov edx, dword [eax + 0x38]
mov eax, dword [esp + 0x2c]
mov edi, dword [eax]
mov eax, dword [eax + 4]
mov dword [esp + 0x18], eax
sub eax, edi
sar eax, 3
cmp edx, eax
jae 0x416371
mov eax, dword [edi + edx*8]
xor edx, edx
mov dword [esp + 0x20], eax
test cl, cl
jne 0x416100
mov ecx, dword [esp + 0x20]
cmp dword [esp + 0x28], ecx
sete al
and al, bl
mov byte [esp + 0x3a], al
je 0x415d88
mov byte [esp + 0x3a], 0
mov eax, dword [esp + 0x8c]
sub eax, dword [sym.imp.cygwin1.dll___stack_chk_guard]
jne 0x416385
movzx eax, byte [esp + 0x3a]
add esp, 0x9c
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [esp + 0x20]
mov dword [esp + 0x18], edx
mov eax, dword [eax + 4]
movzx eax, byte [eax - 4]
and eax, 4
mov byte [esp + 0x39], al
mov eax, dword [esp + 0x2c]
mov edi, dword [eax + 0x2c]
mov dword [esp + 0x1c], edi
call fcn.004154b0
mov edx, dword [esp + 0x18]
mov eax, dword [eax]
mov dword [esp + 0x48], eax
cmp edx, edi
jge 0x415d59
mov byte [esp + 0x3b], 0
xor ebp, ebp
mov eax, dword [esp + 0x20]
mov ebx, dword [eax]
mov eax, dword [eax + 4]
mov dword [esp + 0x18], eax
sub eax, ebx
sar eax, 2
imul eax, eax, 0xaaaaaaab
cmp edx, eax
jae 0x416371
lea eax, [edx + edx*2]
shl eax, 2
add ebx, eax
test ebp, ebp
jne 0x415eb0
cmp byte [esp + 0x38], 0
je 0x415eb0
mov ecx, dword [esp + 0x28]
mov edi, dword [ecx]
mov ecx, dword [ecx + 4]
mov dword [esp + 0x18], ecx
sub ecx, edi
sar ecx, 2
imul ecx, ecx, 0xaaaaaaab
cmp edx, ecx
jae 0x41638a
add eax, edi
mov edi, eax
mov dword [esp + 0x34], eax
mov eax, dword [ebx]
mov ecx, dword [edi]
mov edi, dword [eax - 0xc]
mov dword [esp + 0x18], edi
cmp edi, dword [ecx - 0xc]
je 0x416060
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x415ec5
mov eax, dword [ebx + 4]
mov dword [esp + 0x48], eax
xor eax, eax
test eax, 0xfff000
jne 0x415ec5
add ebp, 1
add edx, 1
cmp dword [esp + 0x1c], edx
jg 0x415dc3
test ebp, ebp
jne 0x4161e0
cmp byte [esp + 0x3b], 0
je 0x415d59
mov eax, dword [esp + 0x2c]
mov eax, dword [eax + 0x30]
sub eax, 1
cmp eax, dword [esp + 0x24]
jle 0x415d59
cmp byte [esp + 0x39], 0
je 0x416308
add dword [esi + 8], 1
mov dword [esi + 4], 0
mov byte [esp + 0x3a], 1
jmp 0x415d5e
mov eax, dword [ebx]
mov edi, dword [eax - 0xc]
test edi, edi
je 0x415f60
test ebp, ebp
jne 0x415f88
movzx eax, byte [ebx + 8]
and eax, 1
cmp byte [esp + 0x39], 0
lea edi, [eax + 1]
lea ebp, [edi + edx]
je 0x415eed
cmp dword [esp + 0x1c], ebp
jg 0x415eed
mov dword [esi + 8], 0xffffffff
mov dword [esi + 4], 0xffffffff
mov eax, dword [esp + 0x24]
mov dword [esp + 8], edx
mov dword [esp], esi
mov dword [esp + 4], eax
call fcn.00415b50
lea eax, [ebx + 4]
mov dword [esp + 8], 0
mov dword [esp + 4], eax
mov dword [esp], esi
call fcn.00415bf0
mov eax, dword [ebx]
mov edx, dword [eax - 0xc]
test edx, edx
je 0x416040
test byte [ebx + 8], 2
jne 0x416020
mov dword [esp + 4], ebx
mov dword [esp], esi
call fcn.00451148
add dword [esi + 4], edi
mov edx, ebp
cmp dword [esp + 0x1c], ebp
jg 0x415dc1
mov byte [esp + 0x3b], 1
xor ebp, ebp
jmp 0x415e5c
movzx eax, byte [ebx + 7]
test ebp, ebp
je 0x415e46
cmp al, byte [esp + 0x4b]
jne 0x415f88
movzx eax, word [ebx + 4]
xor ax, word [esp + 0x48]
test ax, 0xfff
je 0x4161a8
lea esi, [esi]
mov eax, edx
mov dword [esp], esi
sub eax, ebp
mov dword [esp + 0x18], edx
mov dword [esp + 8], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 4], eax
call fcn.00415b50
lea eax, [esp + 0x48]
mov dword [esp + 8], 0
mov dword [esp + 4], eax
mov dword [esp], esi
call fcn.00415bf0
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x18]
cmp byte [eax + 1], 0
je 0x416160
mov eax, dword [esp + 0x30]
cmp byte [eax], 0
je 0x415fe0
cmp ebp, 4
jg 0x416280
mov dword [esp + 8], 0x20
mov dword [esp + 4], ebp
mov dword [esp], esi
mov dword [esp + 0x18], edx
call fcn.00451138
mov edx, dword [esp + 0x18]
mov dword [esi + 4], edx
mov eax, dword [ebx]
mov ecx, dword [eax - 0xc]
test ecx, ecx
jne 0x415ec5
mov eax, dword [ebx + 4]
add edx, 1
mov ebp, 1
mov dword [esp + 0x48], eax
jmp 0x415e5c
mov dword [esp + 8], 2
mov dword [esp + 4], 0x4794fa
mov dword [esp], esi
call fcn.00451150
jmp 0x415f2f
mov dword [esp + 8], 0x20
mov dword [esp + 4], 1
mov dword [esp], esi
call fcn.00451138
jmp 0x415f3b
test edi, edi
je 0x416250
mov dword [esp + 8], edi
mov dword [esp + 4], ecx
mov dword [esp], eax
mov dword [esp + 0x3c], edx
call sub.cygwin1.dll_memcmp
mov edx, dword [esp + 0x3c]
test eax, eax
movzx eax, byte [ebx + 8]
jne 0x415ec9
mov edi, dword [esp + 0x34]
movzx ecx, byte [edi + 8]
xor ecx, eax
mov byte [esp + 0x3c], cl
and ecx, 3
jne 0x415ec9
mov edi, dword [esp + 0x34]
movzx ecx, byte [ebx + 7]
cmp byte [edi + 7], cl
jne 0x415ec9
mov edi, dword [esp + 0x34]
movzx eax, word [ebx + 4]
xor ax, word [edi + 4]
test ax, 0xfff
jne 0x415e3a
mov eax, dword [ebx + 4]
xor eax, dword [edi + 4]
test eax, 0xfff000
jne 0x415e3a
test byte [esp + 0x3c], 4
jne 0x415e3a
movzx eax, byte [ebx + 8]
xor ebp, ebp
and eax, 1
lea edx, [edx + eax + 1]
jmp 0x415e5c
mov edi, dword [eax]
cmp edi, dword [eax + 4]
mov dword [esp + 8], 0
je 0x41639e
lea eax, [edi + 4]
mov dword [esp], esi
mov dword [esp + 4], eax
call fcn.00415bf0
mov eax, dword [edi]
mov ebp, dword [eax - 0xc]
test ebp, ebp
je 0x416330
test byte [edi + 8], 2
jne 0x4161c0
mov dword [esp + 4], edi
mov dword [esp], esi
call fcn.00451148
movzx edx, byte [edi + 8]
and edx, 1
add edx, 1
add dword [esi + 4], edx
jmp 0x415d46
mov dword [esp + 0x18], edx
call fcn.004154b0
mov edx, dword [esp + 0x18]
movzx ecx, byte [eax + 3]
cmp byte [esi + 0xf], cl
jne 0x415fe0
movzx ecx, word [esi + 0xc]
xor cx, word [eax]
test cx, 0xfff
jne 0x415fe0
mov ecx, dword [esi + 0xc]
xor ecx, dword [eax]
and ecx, 0xfff000
je 0x415fce
jmp 0x415fe0
mov eax, dword [ebx + 4]
xor eax, dword [esp + 0x48]
test eax, 0xfff000
je 0x415e56
jmp 0x415f88
mov dword [esp + 8], 2
mov dword [esp + 4], 0x4794fa
mov dword [esp], esi
call fcn.00451150
jmp 0x416139
mov eax, edx
mov dword [esp], esi
sub eax, ebp
mov dword [esp + 0x18], edx
mov dword [esp + 8], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 4], eax
call fcn.00415b50
lea eax, [esp + 0x48]
mov dword [esp + 8], 0
mov dword [esp + 4], eax
mov dword [esp], esi
call fcn.00415bf0
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x18]
cmp byte [eax + 1], 0
je 0x4162c8
cmp byte [esp + 0x39], 0
jne 0x4162de
mov dword [esp + 8], 3
mov dword [esp + 4], 0x479503
mov dword [esp], esi
call fcn.00451150
jmp 0x415e6e
mov eax, dword [esp + 0x34]
movzx eax, byte [eax + 8]
xor al, byte [ebx + 8]
mov byte [esp + 0x3c], al
test al, 3
jne 0x415e46
mov eax, dword [esp + 0x34]
movzx eax, byte [eax + 7]
cmp byte [ebx + 7], al
jne 0x415e46
jmp 0x4160b4
lea edi, [esp + 0x4c]
mov dword [esp + 0xc], ebp
mov dword [esp + 8], str.e__dX
mov dword [esp + 4], 0x40
mov dword [esp], edi
mov dword [esp + 0x18], edx
call sub.cygwin1.dll_snprintf
mov dword [esp], edi
call sub.cygwin1.dll_strlen
mov dword [esp + 4], edi
mov dword [esp + 8], eax
mov dword [esp], esi
call fcn.00451150
mov edx, dword [esp + 0x18]
jmp 0x415fff
mov dword [esp + 0x18], edx
call fcn.004154b0
mov edx, dword [esp + 0x18]
movzx ecx, byte [eax + 3]
cmp byte [esi + 0xf], cl
je 0x41634d
mov dword [esp + 8], 0x20
mov dword [esp + 4], ebp
mov dword [esp], esi
mov dword [esp + 0x18], edx
call fcn.00451138
mov edx, dword [esp + 0x18]
mov dword [esi + 4], edx
jmp 0x415e79
mov dword [esp + 8], 2
mov dword [esp + 4], 0x479507
mov dword [esp], esi
call fcn.00451150
add dword [esi + 8], 1
mov dword [esi + 4], 0
jmp 0x415d5e
mov dword [esp + 8], 0x20
mov dword [esp + 4], 1
mov dword [esp], esi
call fcn.00451138
jmp 0x416145
movzx ecx, word [esi + 0xc]
xor cx, word [eax]
test cx, 0xfff
jne 0x4162de
mov ecx, dword [esi + 0xc]
xor ecx, dword [eax]
and ecx, 0xfff000
je 0x416226
jmp 0x4162de
mov dword [esp + 8], eax
mov dword [esp + 4], edx
mov dword [esp], 0x4794b0
call fcn.00450fe0
call sub.cygwin1.dll___stack_chk_fail
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
mov dword [esp], 0x4794b0
call fcn.00450fe0
mov dword [esp + 4], 0
mov dword [esp], 0x4794b0
call fcn.00450fe0
lea esi, [esi]
lea esi, [esi]