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

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x3c
mov esi, dword [esp + 0x54]
mov ebx, dword [esp + 0x50]
mov eax, dword [sym.imp.cygwin1.dll___stack_chk_guard]
mov dword [esp + 0x2c], eax
mov eax, dword [esi + 4]
sub eax, dword [esi]
mov dword [ebx], 0
mov dword [ebx + 4], 0
mov dword [ebx + 8], 0
je 0x41a2a0
mov edi, eax
cmp eax, 0x7ffffff8
ja 0x41a33c
mov dword [esp], eax
call sub.cygwin1.dll___wrap__Znwj
add edi, eax
mov dword [ebx], eax
mov dword [ebx + 4], eax
mov dword [ebx + 8], edi
mov edi, dword [esi + 4]
mov edx, dword [esi]
cmp edi, edx
je 0x41a348
sub edi, edx
add edi, eax
lea esi, [esi]
nop
mov ecx, dword [edx]
mov dword [eax], ecx
mov ecx, dword [edx + 4]
mov dword [eax + 4], ecx
test ecx, ecx
je 0x41a0b3
lock add dword [ecx + 4], 1
add eax, 8
add edx, 8
cmp edi, eax
jne 0x41a0a0
mov ebp, dword [esi + 0x10]
sub ebp, dword [esi + 0xc]
mov dword [ebx + 4], edi
mov dword [ebx + 0xc], 0
mov dword [ebx + 0x10], 0
mov dword [ebx + 0x14], 0
je 0x41a2b0
cmp ebp, 0x7ffffffe
ja 0x41a34f
mov dword [esp], ebp
call sub.cygwin1.dll___wrap__Znwj
mov edi, eax
add ebp, edi
mov dword [ebx + 0xc], edi
mov dword [ebx + 0x14], ebp
mov dword [ebx + 0x10], edi
mov edx, dword [esi + 0x10]
mov eax, dword [esi + 0xc]
mov ebp, edx
sub ebp, eax
cmp edx, eax
je 0x41a120
mov dword [esp + 8], ebp
mov dword [esp + 4], eax
mov dword [esp], edi
call sub.cygwin1.dll_memmove
add edi, ebp
mov dword [ebx + 0x10], edi
mov eax, dword [esi + 0x1c]
sub eax, dword [esi + 0x18]
mov dword [ebx + 0x18], 0
mov dword [ebx + 0x1c], 0
mov dword [ebx + 0x20], 0
je 0x41a2c0
mov ebp, eax
cmp eax, 0x7ffffffe
ja 0x41a362
mov dword [esp], eax
call sub.cygwin1.dll___wrap__Znwj
mov edi, eax
add ebp, edi
mov dword [ebx + 0x18], edi
mov dword [ebx + 0x20], ebp
mov dword [ebx + 0x1c], edi
mov edx, dword [esi + 0x1c]
mov eax, dword [esi + 0x18]
mov ebp, edx
sub ebp, eax
cmp edx, eax
je 0x41a186
mov dword [esp + 8], ebp
mov dword [esp + 4], eax
mov dword [esp], edi
call sub.cygwin1.dll_memmove
lea eax, [edi + ebp]
mov dword [ebx + 0x1c], eax
mov eax, dword [esi + 0x24]
mov dword [ebx + 0x24], eax
movzx eax, byte [esi + 0x28]
mov byte [ebx + 0x28], al
mov eax, dword [esi + 0x2c]
mov dword [ebx + 0x2c], eax
mov eax, dword [esi + 0x30]
mov dword [ebx + 0x30], eax
mov eax, dword [esi + 0x34]
mov dword [ebx + 0x34], eax
mov eax, dword [esi + 0x38]
mov dword [ebx + 0x38], eax
mov eax, dword [esi + 0x3c]
mov dword [ebx + 0x3c], eax
mov eax, dword [esi + 0x40]
mov dword [ebx + 0x40], eax
movzx eax, byte [esi + 0x44]
mov dword [ebx + 0x48], 0
mov dword [ebx + 0x50], 0
mov edi, dword [esi + 0x50]
sub edi, dword [esi + 0x48]
mov dword [ebx + 0x4c], 0
mov dword [ebx + 0x54], 0
sar edi, 2
mov ecx, dword [esi + 0x54]
shl edi, 5
mov byte [ebx + 0x44], al
xor eax, eax
mov dword [ebx + 0x58], 0
add edi, ecx
jne 0x41a2d0
mov edi, dword [esi + 0x48]
mov edx, dword [esi + 0x50]
mov dword [esp], eax
mov eax, edi
call fcn.004180e0
mov eax, dword [esi + 0x5c]
mov edx, dword [esi + 0x78]
mov dword [ebx + 0x5c], eax
mov eax, dword [esi + 0x60]
mov dword [ebx + 0x78], edx
movzx edx, word [esi + 0x7c]
mov dword [ebx + 0x60], eax
mov eax, dword [esi + 0x64]
mov word [ebx + 0x7c], dx
mov dword [ebx + 0x64], eax
mov eax, dword [esi + 0x68]
mov dword [ebx + 0x68], eax
mov eax, dword [esi + 0x6c]
mov dword [ebx + 0x6c], eax
mov eax, dword [esi + 0x70]
mov dword [ebx + 0x70], eax
mov eax, dword [esi + 0x74]
mov dword [ebx + 0x74], eax
movzx eax, byte [esi + 0x7e]
mov byte [ebx + 0x7e], al
mov eax, dword [esi + 0x80]
mov dword [ebx + 0x80], eax
movzx eax, word [esi + 0x84]
mov word [ebx + 0x84], ax
mov eax, dword [esi + 0x88]
mov dword [ebx + 0x88], eax
movzx eax, byte [esi + 0x8c]
mov byte [ebx + 0x8c], al
mov eax, dword [esp + 0x2c]
sub eax, dword [sym.imp.cygwin1.dll___stack_chk_guard]
jne 0x41a370
add esp, 0x3c
pop ebx
pop esi
pop edi
pop ebp
ret
xor edi, edi
xor eax, eax
jmp 0x41a07c
xor edi, edi
jmp 0x41a0f7
xor ebp, ebp
xor edi, edi
jmp 0x41a15d
lea ebp, [edi + 0x1f]
mov eax, ebp
shr eax, 5
shl eax, 2
mov dword [esp], eax
mov dword [esp + 0x1c], eax
call sub.cygwin1.dll___wrap__Znwj
mov edx, dword [esp + 0x1c]
mov dword [ebx + 0x48], eax
mov dword [ebx + 0x4c], 0
add edx, eax
test edi, edi
mov dword [ebx + 0x58], edx
mov edx, edi
cmovns ebp, edi
sar edx, 0x1f
shr edx, 0x1b
sar ebp, 5
add edi, edx
lea ecx, [eax + ebp*4]
and edi, 0x1f
sub edi, edx
js 0x41a328
mov dword [ebx + 0x50], ecx
mov dword [ebx + 0x54], edi
mov ecx, dword [esi + 0x54]
jmp 0x41a200
sub ecx, 4
add edi, 0x20
mov dword [ebx + 0x50], ecx
mov dword [ebx + 0x54], edi
mov ecx, dword [esi + 0x54]
jmp 0x41a200
test eax, eax
jns 0x41a358
call fcn.00450fd0
lea esi, [esi]
mov edi, eax
jmp 0x41a0bd
test ebp, ebp
js 0x41a35d
call fcn.00451018
call fcn.00451018
call fcn.00450fd0
test eax, eax
js 0x41a36b
call fcn.00451018
call fcn.00450fd0
call sub.cygwin1.dll___stack_chk_fail
mov esi, eax
jmp 0x46eab1