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

Disassembly:
push ebp
add ecx, edx
push edi
mov edi, eax
push esi
push ebx
sub esp, 0x1bc
mov edi, dword [edi + 0x75f0]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x1d4]
mov dword [esp + 0x94], edx
mov dword [esp + 0x5c], edi
mov dword [esp + 0x54], ecx
cmp edi, 1
jne 0x412d71
mov esi, dword [esp + 0x40]
mov esi, dword [esi + 0x75e8]
mov dword [esp + 0x54], esi
mov edi, dword [esp + 0x40]
mov ebx, dword [esp + 0x1d8]
mov esi, dword [edi + 0x7570]
mov dword [esp + 0x34], esi
mov dword [esp + 0xbc], esi
mov esi, dword [edi + 0x75ec]
mov dword [esp + 0x7c], esi
mov esi, dword [edi + 0x74b0]
mov dword [esp + 0x60], esi
mov esi, dword [edi + 0x74b4]
mov dword [esp + 0x98], esi
mov esi, dword [edi + 0x74b8]
mov dword [esp + 0x9c], esi
test ebx, ebx
je 0x4132f0
mov edx, dword [edi + 0x6830]
mov ebx, dword [edi + 0x6834]
mov dword [edi + 0x7504], 1
mov ecx, dword [edi + 0x682c]
mov dword [esp + 0x148], edx
mov dword [esp + 0x144], ecx
mov dword [esp + 0x14c], ebx
test eax, eax
je 0x4132d0
mov edi, dword [esp + 0x1d0]
mov esi, dword [esp + 0x1d0]
mov dword [esp + 0x124], edi
add edi, 4
movzx edx, byte [esi + eax - 1]
mov dword [esp + 0x2c], edi
mov dword [esp + 0x128], edi
cmp eax, 3
jbe 0x413288
lea ecx, [esi + eax - 4]
mov dword [esp + 0x120], ecx
mov ecx, dword [ecx]
mov dword [esp + 0x118], ecx
test dl, dl
je 0x4132d0
bsr edx, edx
mov ecx, 8
sub ecx, edx
mov dword [esp + 0x11c], ecx
cmp eax, 0xffffff88
ja 0x4132d0
mov esi, dword [esp + 0x40]
mov eax, 8
cmp dword [esp + 0x1d8], eax
lea edx, [esp + 0x118]
cmovle eax, dword [esp + 0x1d8]
mov ecx, dword [esi]
mov dword [esp + 0x84], eax
lea eax, [esp + 0x12c]
call fcn.00412c80
mov ecx, dword [esi + 8]
lea edx, [esp + 0x118]
lea eax, [esp + 0x134]
call fcn.00412c80
mov ecx, dword [esi + 4]
lea edx, [esp + 0x118]
lea eax, [esp + 0x13c]
call fcn.00412c80
mov edi, dword [esp + 0x11c]
mov dword [esp + 0x48], edi
cmp edi, 0x20
ja 0x4149f0
mov eax, dword [esp + 0x130]
movzx ebx, byte [esp + 0x1dc]
lea esi, [esp + 0x150]
mov byte [esp + 0x3c], 0
mov edx, dword [esp + 0x118]
mov dword [esp + 0x58], esi
xor esi, esi
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0x12c]
and ebx, 1
mov byte [esp + 0xa3], bl
mov ecx, dword [esp + 0x134]
mov ebx, esi
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x140]
mov dword [esp + 0x30], 0
mov dword [esp + 0x8c], eax
mov eax, dword [esp + 0x13c]
mov dword [esp + 0x28], edx
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x138]
mov dword [esp + 0x90], eax
mov eax, dword [esp + 0x120]
mov dword [esp + 0xac], eax
jmp 0x413167
mov edx, dword [esp + 0x28]
cmp cl, 0x18
movzx eax, cl
mov ecx, edi
seta bl
shl edx, cl
mov ebp, edx
and bl, byte [esp + 0xa3]
jne 0x413ed0
add edi, eax
neg eax
mov ecx, eax
shr ebp, cl
add ebp, dword [esp + 0x80]
cmp edi, 0x20
ja 0x412fe8
cmp dword [esp + 0x2c], esi
jbe 0x4145f0
cmp dword [esp + 0x1d0], esi
je 0x412fe8
mov eax, edi
mov edx, esi
shr eax, 3
sub edx, eax
cmp dword [esp + 0x1d0], edx
jbe 0x4146d8
mov eax, esi
sub eax, dword [esp + 0x1d0]
sub esi, eax
shl eax, 3
sub edi, eax
mov eax, dword [esi]
mov byte [esp + 0x3c], 1
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x148]
mov dword [esp + 0x14c], eax
mov eax, dword [esp + 0x144]
mov dword [esp + 0x148], eax
xor eax, eax
cmp byte [esp + 0x4c], 0
mov dword [esp + 0x144], ebp
jne 0x413480
movzx ebx, byte [esp + 0x38]
add eax, ebx
cmp eax, 0x13
jg 0x413428
cmp byte [esp + 0x38], 0
jne 0x413400
cmp edi, 0x20
ja 0x41341d
cmp dword [esp + 0x2c], esi
jbe 0x413b58
mov eax, dword [esp + 0x1d0]
cmp eax, esi
je 0x413083
mov edx, edi
mov eax, esi
shr edx, 3
sub eax, edx
cmp dword [esp + 0x1d0], eax
jbe 0x413073
sub esi, dword [esp + 0x1d0]
mov eax, dword [esp + 0x1d0]
mov edx, esi
mov esi, dword [eax]
mov byte [esp + 0x3c], 1
shl edx, 3
sub edi, edx
mov dword [esp + 0x28], esi
mov ebx, dword [esp + 0x70]
mov edx, dword [esp + 0x28]
add edi, ebx
mov esi, edx
mov ecx, edi
neg ecx
shr esi, cl
mov ecx, dword [ebx*4 + 0x4282c0]
movzx ebx, word [esp + 0x64]
and ecx, esi
lea esi, [ecx + ebx]
mov ebx, dword [esp + 0x74]
mov dword [esp + 0x38], esi
mov esi, edx
add edi, ebx
mov ecx, edi
neg ecx
shr esi, cl
mov ecx, dword [ebx*4 + 0x4282c0]
movzx ebx, word [esp + 0x68]
and ecx, esi
lea esi, [ecx + ebx]
mov dword [esp + 0x4c], esi
cmp edi, 0x20
ja 0x413119
cmp dword [esp + 0x2c], eax
jbe 0x413b78
cmp dword [esp + 0x1d0], eax
je 0x413119
mov edx, edi
mov ecx, eax
shr edx, 3
sub ecx, edx
cmp dword [esp + 0x1d0], ecx
jbe 0x413107
sub eax, dword [esp + 0x1d0]
mov ecx, dword [esp + 0x1d0]
mov edx, eax
mov eax, dword [ecx]
mov byte [esp + 0x3c], 1
shl edx, 3
sub edi, edx
mov dword [esp + 0x28], eax
mov eax, ecx
mov ebx, dword [esp + 0x78]
mov esi, dword [esp + 0x28]
mov edx, dword [esp + 0x44]
add dword [esp + 0x30], 1
add edi, ebx
mov ecx, edi
neg ecx
shr esi, cl
mov ecx, dword [ebx*4 + 0x4282c0]
movzx ebx, word [esp + 0x6c]
and ecx, esi
mov esi, dword [esp + 0x58]
add ecx, ebx
mov ebx, 1
mov dword [esi], edx
mov edx, dword [esp + 0x50]
add esi, 0xc
mov dword [esi - 4], ebp
mov dword [esi - 8], edx
mov dword [esp + 0x58], esi
cmp edi, 0x20
ja 0x413b98
cmp dword [esp + 0x2c], eax
jbe 0x4134a0
cmp dword [esp + 0x1d0], eax
je 0x413f90
mov edx, edi
mov esi, eax
shr edx, 3
sub esi, edx
cmp dword [esp + 0x1d0], esi
jbe 0x4131a0
sub eax, dword [esp + 0x1d0]
mov esi, dword [esp + 0x1d0]
mov edx, eax
mov eax, dword [esi]
mov byte [esp + 0x3c], 1
shl edx, 3
sub edi, edx
mov dword [esp + 0x28], eax
mov eax, 1
mov edx, dword [esp + 0x30]
cmp dword [esp + 0x84], edx
jle 0x4134cd
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x88]
lea ebp, [eax + edx*8]
mov edx, dword [esp + 0x4c]
mov eax, dword [esp + 0x8c]
lea ebx, [eax + edx*8]
mov eax, dword [esp + 0x90]
mov edx, dword [ebx + 4]
lea eax, [eax + ecx*8]
movzx ecx, byte [ebp + 2]
mov dword [esp + 0x50], edx
mov edx, dword [ebp + 4]
mov byte [esp + 0x38], cl
movzx ecx, byte [ebx + 2]
mov dword [esp + 0x44], edx
mov edx, dword [eax + 4]
mov byte [esp + 0x4c], cl
movzx ecx, byte [eax + 2]
mov dword [esp + 0x80], edx
movzx edx, word [ebp]
mov word [esp + 0x64], dx
movzx edx, word [ebx]
mov word [esp + 0x68], dx
movzx edx, word [eax]
movzx eax, byte [eax + 3]
mov word [esp + 0x6c], dx
movzx edx, byte [ebp + 3]
mov dword [esp + 0x78], eax
mov dword [esp + 0x70], edx
movzx edx, byte [ebx + 3]
mov dword [esp + 0x74], edx
cmp cl, 1
ja 0x412f70
mov edx, dword [esp + 0x44]
xor eax, eax
test edx, edx
sete al
cmp cl, 1
je 0x4147b8
mov ebp, dword [esp + eax*4 + 0x144]
cmp edx, 1
mov eax, 8
sbb eax, 0xffffffff
mov eax, dword [esp + eax*4 + 0x124]
jmp 0x412ffd
movzx ebx, byte [esi]
mov dword [esp + 0x120], esi
mov dword [esp + 0x118], ebx
cmp eax, 2
je 0x4132ac
cmp eax, 3
jne 0x4132c3
movzx ecx, byte [esi + 2]
shl ecx, 0x10
add ebx, ecx
mov esi, dword [esp + 0x1d0]
movzx ecx, byte [esi + 1]
shl ecx, 8
add ecx, ebx
mov dword [esp + 0x118], ecx
test dl, dl
jne 0x4133c0
lea esi, [esi]
nop
mov dword [esp + 0x28], 0xffffffec
mov eax, dword [esp + 0x28]
add esp, 0x1bc
pop ebx
pop esi
pop edi
pop ebp
ret
mov ebp, dword [esp + 0x94]
mov eax, dword [esp + 0x54]
mov ebx, dword [esp + 0x7c]
sub ebx, dword [esp + 0x34]
sub eax, ebp
cmp dword [esp + 0x5c], 2
je 0x413338
cmp ebx, eax
ja 0x4146ea
test ebp, ebp
jne 0x41338e
mov eax, ebp
sub eax, dword [esp + 0x94]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x28]
add esp, 0x1bc
pop ebx
pop esi
pop edi
pop ebp
ret
cmp ebx, eax
ja 0x4146ea
mov eax, dword [esp + 0x40]
mov esi, 0x10000
lea edi, [eax + 0x75f4]
test ebp, ebp
je 0x4146e0
mov eax, dword [esp + 0x34]
mov dword [esp + 8], ebx
mov dword [esp], ebp
mov dword [esp + 4], eax
call sub.cygwin1.dll_memmove
mov eax, ebp
mov dword [esp + 0xbc], edi
add eax, ebx
mov ebx, eax
mov ebp, eax
mov eax, dword [esp + 0x54]
sub eax, ebx
cmp eax, esi
jb 0x4146ea
mov dword [esp + 0x34], edi
mov ebx, esi
mov eax, dword [esp + 0x34]
mov dword [esp], ebp
mov dword [esp + 8], ebx
mov dword [esp + 4], eax
call sub.cygwin1.dll_memmove
mov eax, ebp
add eax, ebx
mov ebp, eax
mov eax, ebp
sub eax, dword [esp + 0x94]
mov dword [esp + 0x28], eax
jmp 0x413325
mov ecx, 5
bsr edx, edx
sub ecx, eax
lea eax, [ecx*8]
sub eax, edx
mov dword [esp + 0x11c], eax
jmp 0x412e63
mov eax, edi
mov byte [esp + 0x3c], 1
and edi, 7
shr eax, 3
sub esi, eax
mov eax, dword [esi]
mov dword [esp + 0x28], eax
cmp byte [esp + 0x38], 0
je 0x41303c
mov eax, dword [esp + 0x28]
mov ecx, edi
add edi, ebx
shl eax, cl
mov ecx, ebx
neg ecx
shr eax, cl
add dword [esp + 0x44], eax
cmp edi, 0x20
jbe 0x41303c
mov eax, esi
jmp 0x413083
cmp edi, 0x20
ja 0x4146c0
cmp esi, dword [esp + 0x2c]
jae 0x4133e0
cmp dword [esp + 0x1d0], esi
je 0x4133f5
mov eax, edi
mov edx, esi
shr eax, 3
sub edx, eax
cmp dword [esp + 0x1d0], edx
jbe 0x414740
mov eax, esi
sub eax, dword [esp + 0x1d0]
sub esi, eax
shl eax, 3
mov byte [esp + 0x3c], 1
sub edi, eax
mov eax, dword [esi]
mov dword [esp + 0x28], eax
jmp 0x413028
movzx eax, byte [esp + 0x4c]
mov ebx, dword [esp + 0x28]
mov ecx, edi
shl ebx, cl
mov ecx, eax
add edi, eax
neg ecx
shr ebx, cl
add dword [esp + 0x50], ebx
jmp 0x413018
mov edx, edi
and edi, 7
shr edx, 3
sub eax, edx
mov edx, dword [esp + 0x30]
mov esi, eax
mov eax, dword [eax]
mov byte [esp + 0x3c], 1
mov dword [esp + 0x28], eax
mov eax, 1
cmp dword [esp + 0x84], edx
jg 0x4131c6
cmp byte [esp + 0x3c], 0
mov ebp, esi
mov edx, dword [esp + 0x28]
mov esi, ebx
je 0x4148c0
mov dword [esp + 0x120], ebp
mov dword [esp + 0x118], edx
test al, al
je 0x4134fd
mov dword [esp + 0x11c], edi
mov dword [esp + 0x48], edi
mov eax, esi
test al, al
je 0x413520
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x134], ecx
mov dword [esp + 0x13c], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x12c], eax
cmp dword [esp + 0x48], 0x20
ja 0x413be6
movzx eax, byte [esp + 0x1dc]
mov edi, dword [esp + 0x94]
mov ecx, ebp
and eax, 1
mov ebp, edi
mov byte [esp + 0x80], al
cmp dword [esp + 0x2c], ecx
jbe 0x413b25
lea esi, [esi]
mov edx, dword [esp + 0x1d0]
cmp edx, ecx
je 0x4135a7
mov eax, dword [esp + 0x48]
mov edx, ecx
shr eax, 3
sub edx, eax
cmp dword [esp + 0x1d0], edx
jbe 0x413587
mov edx, dword [esp + 0x1d0]
mov eax, ecx
sub eax, dword [esp + 0x1d0]
mov ecx, dword [esp + 0x48]
shl eax, 3
mov dword [esp + 0x120], edx
sub ecx, eax
mov dword [esp + 0x11c], ecx
mov eax, dword [edx]
mov dword [esp + 0x118], eax
mov eax, dword [esp + 0x30]
cmp dword [esp + 0x1d8], eax
jle 0x413c1a
mov ecx, dword [esp + 0x12c]
mov eax, dword [esp + 0x130]
mov ebx, dword [esp + 0x134]
lea esi, [eax + ecx*8]
mov eax, dword [esp + 0x140]
mov ecx, dword [esp + 0x13c]
movzx edi, word [esi]
lea ecx, [eax + ecx*8]
mov eax, dword [esp + 0x138]
mov word [esp + 0x48], di
movzx edi, word [ecx]
lea eax, [eax + ebx*8]
mov ebx, dword [ecx + 4]
mov word [esp + 0x50], di
movzx edi, word [eax]
mov dword [esp + 0x4c], ebx
mov ebx, dword [esi + 4]
mov word [esp + 0x58], di
movzx edi, byte [esi + 3]
mov dword [esp + 0x44], ebx
mov ebx, dword [eax + 4]
mov dword [esp + 0x64], edi
movzx edi, byte [ecx + 3]
mov dword [esp + 0x38], ebx
movzx ebx, byte [esi + 2]
mov dword [esp + 0x68], edi
mov byte [esp + 0x28], bl
movzx ebx, byte [ecx + 2]
mov byte [esp + 0x3c], bl
movzx ebx, byte [eax + 2]
movzx eax, byte [eax + 3]
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x11c]
cmp bl, 1
jbe 0x413fa0
movzx ecx, bl
mov esi, dword [esp + 0x118]
mov dword [esp + 0x70], ecx
mov edi, ecx
mov ecx, eax
mov dword [esp + 0x74], esi
shl esi, cl
cmp bl, 0x18
jbe 0x413fe0
cmp byte [esp + 0x80], 0
je 0x413fe0
mov ecx, 0x20
mov ebx, edi
sub ecx, eax
cmp ecx, edi
mov edi, ecx
mov ecx, ebx
cmova edi, ebx
sub ecx, edi
add eax, edi
mov ebx, edi
neg edi
mov dword [esp + 0x78], ecx
mov ecx, edi
shr esi, cl
movzx ecx, byte [esp + 0x78]
mov dword [esp + 0x11c], eax
shl esi, cl
add esi, dword [esp + 0x38]
mov dword [esp + 0x38], esi
cmp eax, 0x20
ja 0x413715
cmp dword [esp + 0x2c], edx
jbe 0x414878
cmp dword [esp + 0x1d0], edx
je 0x413715
mov ecx, eax
mov esi, edx
shr ecx, 3
sub esi, ecx
cmp dword [esp + 0x1d0], esi
jbe 0x4136f5
sub edx, dword [esp + 0x1d0]
mov esi, dword [esp + 0x1d0]
mov ecx, edx
mov edi, dword [esi]
shl ecx, 3
mov dword [esp + 0x120], esi
sub eax, ecx
mov dword [esp + 0x11c], eax
mov dword [esp + 0x74], edi
mov dword [esp + 0x118], edi
mov edx, dword [esp + 0x78]
test edx, edx
jne 0x414790
mov edx, dword [esp + 0x148]
mov dword [esp + 0x14c], edx
mov edx, dword [esp + 0x144]
mov edi, dword [esp + 0x38]
mov dword [esp + 0x148], edx
xor edx, edx
cmp byte [esp + 0x3c], 0
mov dword [esp + 0x144], edi
jne 0x414390
movzx esi, byte [esp + 0x28]
add edx, esi
cmp edx, 0x13
jg 0x4142e0
cmp byte [esp + 0x28], 0
jne 0x414350
mov edx, dword [esp + 0x120]
cmp eax, 0x20
ja 0x41437e
cmp dword [esp + 0x2c], edx
jbe 0x4145d0
cmp dword [esp + 0x1d0], edx
je 0x41437e
mov ecx, eax
mov ebx, edx
shr ecx, 3
sub ebx, ecx
cmp dword [esp + 0x1d0], ebx
jbe 0x4137b9
sub edx, dword [esp + 0x1d0]
mov ebx, dword [esp + 0x1d0]
mov ecx, edx
mov edx, dword [ebx]
mov dword [esp + 0x120], ebx
shl ecx, 3
sub eax, ecx
mov dword [esp + 0x118], edx
mov ebx, dword [esp + 0x64]
mov esi, edx
add eax, ebx
mov ecx, eax
neg ecx
shr esi, cl
mov ecx, dword [ebx*4 + 0x4282c0]
movzx ebx, word [esp + 0x48]
and ecx, esi
mov esi, edx
add ecx, ebx
mov ebx, dword [esp + 0x68]
mov dword [esp + 0x12c], ecx
add eax, ebx
mov ecx, eax
mov dword [esp + 0x11c], eax
neg ecx
shr esi, cl
mov ecx, dword [ebx*4 + 0x4282c0]
movzx ebx, word [esp + 0x50]
and ecx, esi
add ebx, ecx
mov dword [esp + 0x13c], ebx
cmp eax, 0x20
ja 0x413875
mov ecx, dword [esp + 0x120]
cmp dword [esp + 0x2c], ecx
jbe 0x4145b0
cmp dword [esp + 0x1d0], ecx
je 0x413875
mov edx, eax
mov ebx, ecx
shr edx, 3
sub ebx, edx
cmp dword [esp + 0x1d0], ebx
jbe 0x413860
mov ebx, dword [esp + 0x1d0]
mov edx, ecx
sub edx, dword [esp + 0x1d0]
shl edx, 3
mov dword [esp + 0x120], ebx
sub eax, edx
mov edx, dword [ebx]
mov dword [esp + 0x118], edx
mov esi, dword [esp + 0x6c]
mov edi, dword [esp + 0x34]
add eax, esi
mov ecx, eax
mov dword [esp + 0x48], eax
neg ecx
mov dword [esp + 0x11c], eax
movzx eax, word [esp + 0x58]
shr edx, cl
and edx, dword [esi*4 + 0x4282c0]
add eax, edx
mov dword [esp + 0x134], eax
mov eax, dword [esp + 0x30]
and eax, 7
lea ebx, [eax + eax*2]
mov dword [esp + 0x50], eax
shl ebx, 2
mov esi, dword [esp + ebx + 0x150]
lea eax, [esp + ebx + 0x150]
add edi, esi
cmp dword [esp + 0x5c], 2
mov dword [esp + 0x3c], edi
je 0x414060
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [esp + 0xc0], esi
mov edi, dword [esp + ebx + 0x158]
mov dword [esp + 0xc8], eax
mov eax, dword [esp + ebx + 0x154]
lea ebx, [ebp + esi]
mov dword [esp + 0xc4], edx
mov edx, ebx
sub edx, edi
lea ecx, [eax + esi]
mov dword [esp + 0x68], eax
mov dword [esp + 0x5c], edx
mov edx, dword [esp + 0x54]
lea eax, [ebp + ecx]
mov dword [esp + 0x64], eax
mov dword [esp + 0x58], edi
lea eax, [edx - 0x20]
mov dword [esp + 0x28], ecx
cmp dword [esp + 0x64], eax
ja 0x414640
mov edi, dword [esp + 0x3c]
cmp dword [esp + 0x7c], edi
jb 0x414640
sub edx, ebp
lea eax, [ecx + 0x20]
cmp edx, eax
jb 0x414640
mov edi, dword [esp + 0x34]
mov eax, dword [edi]
mov ecx, dword [edi + 4]
mov edx, dword [edi + 8]
mov dword [esp + 0x108], eax
mov eax, dword [edi + 0xc]
mov edi, dword [edi]
mov dword [esp + 0x10c], ecx
mov dword [esp + 0x110], edx
mov dword [esp + 0x114], eax
mov dword [ebp], edi
mov dword [ebp + 4], ecx
mov dword [ebp + 8], edx
mov dword [ebp + 0xc], eax
cmp esi, 0x10
ja 0x4148d0
mov eax, dword [esp + 0x3c]
mov dword [esp + 0xbc], eax
mov eax, ebx
sub eax, dword [esp + 0x60]
cmp dword [esp + 0x58], eax
jbe 0x4139fd
mov eax, ebx
sub eax, dword [esp + 0x98]
cmp dword [esp + 0x58], eax
ja 0x4132d0
mov esi, dword [esp + 0x9c]
mov eax, dword [esp + 0x5c]
mov edi, dword [esp + 0x68]
sub eax, dword [esp + 0x60]
add eax, esi
lea edx, [eax + edi]
cmp esi, edx
jae 0x4146a8
mov edi, dword [esp + 0x60]
mov dword [esp], ebx
mov dword [esp + 4], eax
mov esi, edi
sub esi, dword [esp + 0x5c]
mov dword [esp + 8], esi
add ebx, esi
call sub.cygwin1.dll_memmove
sub dword [esp + 0x68], esi
mov dword [esp + 0x5c], edi
cmp dword [esp + 0x58], 0xf
jbe 0x414a00
mov edi, dword [esp + 0x5c]
cmp dword [esp + 0x68], 0x10
mov esi, dword [edi]
mov ecx, dword [edi + 4]
mov edx, dword [edi + 8]
mov eax, dword [edi + 0xc]
mov dword [esp + 0x108], esi
mov dword [esp + 0x10c], ecx
mov dword [esp + 0x110], edx
mov dword [esp + 0x114], eax
mov dword [ebx], esi
mov dword [ebx + 4], ecx
mov dword [ebx + 8], edx
mov dword [ebx + 0xc], eax
jle 0x413ab1
mov dword [esp + 0x34], ebp
mov eax, edi
mov ebp, dword [esp + 0x64]
add ebx, 0x10
add eax, 0x10
lea esi, [esi]
mov edi, dword [eax]
mov esi, dword [eax + 4]
add ebx, 0x20
add eax, 0x20
mov ecx, dword [eax - 0x18]
mov edx, dword [eax - 0x14]
mov dword [ebx - 0x20], edi
mov dword [ebx - 0x1c], esi
mov dword [ebx - 0x18], ecx
mov dword [ebx - 0x14], edx
mov edi, dword [eax - 0x10]
mov esi, dword [eax - 0xc]
mov ecx, dword [eax - 8]
mov edx, dword [eax - 4]
mov dword [esp + 0x108], edi
mov dword [ebx - 0x10], edi
mov dword [ebx - 0xc], esi
mov dword [ebx - 8], ecx
mov dword [ebx - 4], edx
mov dword [esp + 0x10c], esi
mov dword [esp + 0x110], ecx
mov dword [esp + 0x114], edx
cmp ebp, ebx
ja 0x413a58
mov ebp, dword [esp + 0x34]
mov eax, dword [esp + 0x28]
cmp eax, 0xffffff88
ja 0x4132d8
add ebp, eax
mov eax, dword [esp + 0x50]
mov edi, dword [esp + 0x44]
add dword [esp + 0x30], 1
lea eax, [eax + eax*2]
shl eax, 2
cmp dword [esp + 0x48], 0x20
mov dword [esp + eax + 0x150], edi
mov edi, dword [esp + 0x4c]
mov dword [esp + eax + 0x154], edi
mov edi, dword [esp + 0x38]
mov dword [esp + eax + 0x158], edi
ja 0x413bf0
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x120]
mov eax, dword [eax + 0x75f0]
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0xbc]
mov dword [esp + 0x34], eax
cmp dword [esp + 0x2c], ecx
ja 0x413558
mov edi, dword [esp + 0x48]
mov edx, ecx
mov eax, edi
shr eax, 3
sub edx, eax
mov eax, edi
and eax, 7
mov dword [esp + 0x120], edx
mov dword [esp + 0x11c], eax
mov eax, dword [edx]
mov dword [esp + 0x118], eax
jmp 0x4135a7
mov edx, edi
mov eax, esi
and edi, 7
shr edx, 3
sub eax, edx
mov esi, dword [eax]
mov byte [esp + 0x3c], 1
mov dword [esp + 0x28], esi
jmp 0x413083
mov edx, edi
mov byte [esp + 0x3c], 1
and edi, 7
shr edx, 3
sub eax, edx
mov esi, dword [eax]
mov dword [esp + 0x28], esi
jmp 0x413119
cmp byte [esp + 0x3c], 0
mov edx, dword [esp + 0x28]
je 0x413bb1
mov dword [esp + 0x120], eax
mov dword [esp + 0x118], edx
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x11c], edi
mov dword [esp + 0x134], ecx
mov dword [esp + 0x13c], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x12c], eax
mov esi, dword [esp + 0x30]
cmp dword [esp + 0x84], esi
jg 0x4132d0
mov ebp, dword [esp + 0x94]
lea esi, [esi]
mov eax, dword [esp + 0x30]
cmp dword [esp + 0x1d8], eax
jg 0x4132d0
mov eax, dword [esp + 0x40]
mov eax, dword [eax + 0x75f0]
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0xbc]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x30]
sub eax, dword [esp + 0x84]
mov dword [esp + 0x2c], eax
cmp dword [esp + 0x1d8], eax
jle 0x413e97
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x5c]
mov edx, dword [esp + 0x34]
sub eax, 0x20
mov dword [esp + 0x48], eax
lea esi, [esi]
mov edi, dword [esp + 0x2c]
and edi, 7
lea ebx, [edi + edi*2]
mov dword [esp + 0x28], edi
shl ebx, 2
mov esi, dword [esp + ebx + 0x150]
lea eax, [esp + ebx + 0x150]
lea edi, [edx + esi]
mov dword [esp + 0x30], edi
cmp ecx, 2
je 0x414ab0
mov ecx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [esp + 0xf0], esi
mov dword [esp + 0xf8], eax
mov eax, dword [esp + ebx + 0x154]
mov dword [esp + 0xf4], ecx
mov ecx, dword [esp + ebx + 0x158]
lea ebx, [ebp + esi]
mov dword [esp + 0x38], eax
add eax, esi
lea edi, [ebp + eax]
mov dword [esp + 0x28], eax
mov dword [esp + 0x4c], edi
mov eax, edi
mov edi, ebx
mov dword [esp + 0x34], ecx
sub edi, ecx
cmp eax, dword [esp + 0x48]
ja 0x414f10
mov eax, dword [esp + 0x30]
cmp dword [esp + 0x7c], eax
jb 0x414f10
mov ecx, dword [esp + 0x54]
mov eax, dword [esp + 0x28]
sub ecx, ebp
add eax, 0x20
cmp ecx, eax
jb 0x414f10
mov eax, dword [edx]
mov ecx, dword [edx + 8]
mov dword [esp + 0x108], eax
mov eax, dword [edx + 4]
mov dword [esp + 0x110], ecx
mov dword [esp + 0x3c], eax
mov dword [esp + 0x10c], eax
mov eax, dword [edx + 0xc]
mov dword [esp + 0x44], eax
mov dword [esp + 0x114], eax
mov eax, dword [edx]
mov dword [ebp + 8], ecx
mov dword [ebp], eax
mov eax, dword [esp + 0x3c]
mov dword [ebp + 4], eax
mov eax, dword [esp + 0x44]
mov dword [ebp + 0xc], eax
cmp esi, 0x10
ja 0x4151fb
mov eax, dword [esp + 0x30]
mov dword [esp + 0xbc], eax
mov eax, ebx
sub eax, dword [esp + 0x60]
cmp dword [esp + 0x34], eax
jbe 0x413daa
mov eax, ebx
sub eax, dword [esp + 0x98]
cmp dword [esp + 0x34], eax
ja 0x4132d0
mov esi, dword [esp + 0x9c]
mov edx, dword [esp + 0x38]
mov eax, edi
sub eax, dword [esp + 0x60]
add eax, esi
add edx, eax
cmp esi, edx
jae 0x4150b0
mov esi, dword [esp + 0x60]
mov dword [esp], ebx
mov dword [esp + 4], eax
sub esi, edi
mov dword [esp + 8], esi
add ebx, esi
call sub.cygwin1.dll_memmove
sub dword [esp + 0x38], esi
mov edi, dword [esp + 0x60]
cmp dword [esp + 0x34], 0xf
jbe 0x41541a
mov esi, dword [edi]
mov ecx, dword [edi + 4]
mov edx, dword [edi + 8]
mov eax, dword [edi + 0xc]
cmp dword [esp + 0x38], 0x10
mov dword [esp + 0x108], esi
mov dword [esp + 0x10c], ecx
mov dword [esp + 0x110], edx
mov dword [esp + 0x114], eax
mov dword [ebx], esi
mov dword [ebx + 4], ecx
mov dword [ebx + 8], edx
mov dword [ebx + 0xc], eax
jle 0x413e59
mov dword [esp + 0x30], ebp
mov ebp, dword [esp + 0x4c]
add ebx, 0x10
lea eax, [edi + 0x10]
lea esi, [esi]
mov edi, dword [eax]
mov esi, dword [eax + 4]
add ebx, 0x20
add eax, 0x20
mov ecx, dword [eax - 0x18]
mov edx, dword [eax - 0x14]
mov dword [ebx - 0x20], edi
mov dword [ebx - 0x1c], esi
mov dword [ebx - 0x18], ecx
mov dword [ebx - 0x14], edx
mov edi, dword [eax - 0x10]
mov esi, dword [eax - 0xc]
mov ecx, dword [eax - 8]
mov edx, dword [eax - 4]
mov dword [esp + 0x108], edi
mov dword [ebx - 0x10], edi
mov dword [ebx - 0xc], esi
mov dword [ebx - 8], ecx
mov dword [ebx - 4], edx
mov dword [esp + 0x10c], esi
mov dword [esp + 0x110], ecx
mov dword [esp + 0x114], edx
cmp ebp, ebx
ja 0x413e00
mov ebp, dword [esp + 0x30]
mov eax, dword [esp + 0x28]
cmp eax, 0xffffff88
ja 0x4132d8
mov esi, dword [esp + 0x40]
add dword [esp + 0x2c], 1
add ebp, eax
mov edx, dword [esp + 0xbc]
mov eax, dword [esp + 0x2c]
mov ecx, dword [esi + 0x75f0]
cmp dword [esp + 0x1d8], eax
jne 0x413c50
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x34], edx
mov edi, dword [esp + 0x40]
mov eax, dword [esp + 0x144]
mov dword [edi + 0x682c], eax
mov eax, dword [esp + 0x148]
mov dword [edi + 0x6830], eax
mov eax, dword [esp + 0x14c]
mov dword [edi + 0x6834], eax
jmp 0x4132f7
mov ecx, 0x20
sub ecx, edi
cmp ecx, eax
cmova ecx, eax
mov edx, ecx
mov dword [esp + 0xa8], ecx
mov ecx, eax
sub ecx, edx
add edi, edx
mov dword [esp + 0xa4], ecx
mov ecx, edx
neg ecx
shr ebp, cl
movzx ecx, byte [esp + 0xa4]
shl ebp, cl
add ebp, dword [esp + 0x80]
cmp edi, 0x20
ja 0x413f54
cmp dword [esp + 0x2c], esi
jbe 0x414770
cmp dword [esp + 0x1d0], esi
je 0x413f54
mov edx, edi
mov ecx, esi
shr edx, 3
sub ecx, edx
cmp dword [esp + 0x1d0], ecx
jbe 0x413f43
sub esi, dword [esp + 0x1d0]
mov ecx, dword [esp + 0x1d0]
mov edx, esi
mov esi, dword [ecx]
mov byte [esp + 0x3c], bl
shl edx, 3
sub edi, edx
mov dword [esp + 0x28], esi
mov esi, ecx
mov ecx, dword [esp + 0xa4]
test ecx, ecx
je 0x412fe8
mov ebx, dword [esp + 0x28]
mov ecx, edi
add edi, dword [esp + 0xa4]
shl ebx, cl
mov ecx, dword [esp + 0xa8]
sub ecx, eax
mov eax, ebx
shr eax, cl
add ebp, eax
jmp 0x412fe8
mov esi, dword [esp + 0x1d0]
mov eax, ebx
jmp 0x4131b5
mov edi, dword [esp + 0x44]
xor edx, edx
test edi, edi
sete dl
cmp bl, 1
je 0x414990
mov esi, dword [esp + edx*4 + 0x144]
cmp edi, 1
mov edx, 8
sbb edx, 0xffffffff
mov dword [esp + 0x38], esi
mov edx, dword [esp + edx*4 + 0x124]
jmp 0x413736
mov ecx, dword [esp + 0x70]
add eax, ecx
neg ecx
shr esi, cl
add esi, dword [esp + 0x38]
mov dword [esp + 0x11c], eax
mov dword [esp + 0x38], esi
cmp eax, 0x20
ja 0x413721
cmp dword [esp + 0x2c], edx
jbe 0x414610
cmp dword [esp + 0x1d0], edx
je 0x413721
mov ecx, eax
mov ebx, edx
shr ecx, 3
sub ebx, ecx
cmp dword [esp + 0x1d0], ebx
jbe 0x41403b
sub edx, dword [esp + 0x1d0]
mov ebx, dword [esp + 0x1d0]
mov ecx, edx
mov edx, dword [ebx]
shl ecx, 3
mov dword [esp + 0x120], ebx
sub eax, ecx
mov dword [esp + 0x11c], eax
mov dword [esp + 0x118], edx
jmp 0x413721
mov edi, dword [esp + 0x40]
mov edx, dword [edi + 0x75ec]
cmp edx, dword [esp + 0x3c]
jae 0x4143c0
sub edx, dword [esp + 0x34]
mov ecx, edx
je 0x4140a8
mov eax, dword [esp + 0x54]
sub eax, ebp
cmp edx, eax
ja 0x4146ea
mov dword [esp + 0x28], edx
mov edx, dword [esp + 0x34]
mov eax, ebp
call fcn.00412380
mov ecx, dword [esp + 0x28]
sub esi, ecx
add ebp, ecx
mov dword [esp + ebx + 0x150], esi
mov edx, dword [esp + 0x50]
mov edi, dword [esp + 0x40]
lea edx, [edx + edx*2]
lea ebx, [edi + 0x175f4]
mov dword [edi + 0x75f0], 0
shl edx, 2
mov dword [esp + 0x7c], ebx
lea eax, [edi + 0x75f4]
mov ebx, dword [esp + edx + 0x150]
lea ecx, [esp + edx + 0x150]
mov dword [esp + 0xbc], eax
add eax, esi
mov dword [esp + 0x5c], eax
mov dword [esp + 0xd8], ebx
mov ebx, dword [ecx + 4]
mov ecx, dword [ecx + 8]
mov dword [esp + 0xdc], ebx
lea ebx, [ebp + esi]
mov dword [esp + 0xe0], ecx
mov ecx, dword [esp + edx + 0x154]
mov edx, dword [esp + edx + 0x158]
mov dword [esp + 0x58], ecx
add ecx, esi
lea edi, [ebp + ecx]
mov dword [esp + 0x28], ecx
mov dword [esp + 0x64], edi
mov ecx, edi
mov edi, eax
mov eax, ebx
sub eax, edx
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 0x54]
mov dword [esp + 0x34], eax
lea eax, [edx - 0x20]
cmp ecx, eax
ja 0x414f80
cmp dword [esp + 0x7c], edi
jb 0x414f80
mov ecx, dword [esp + 0x28]
sub edx, ebp
lea eax, [ecx + 0x20]
cmp edx, eax
jb 0x414f80
mov eax, dword [esp + 0x40]
mov edx, dword [eax + 0x75f4]
mov ecx, dword [eax + 0x75f8]
mov edi, dword [eax + 0x75fc]
mov eax, dword [eax + 0x7600]
mov dword [esp + 0x108], edx
mov dword [esp + 0x10c], ecx
mov dword [esp + 0x110], edi
mov dword [esp + 0x114], eax
mov dword [ebp], edx
mov dword [ebp + 4], ecx
mov dword [ebp + 8], edi
mov dword [ebp + 0xc], eax
cmp esi, 0x10
ja 0x4152c2
mov eax, dword [esp + 0x5c]
mov dword [esp + 0xbc], eax
mov eax, ebx
sub eax, dword [esp + 0x60]
cmp dword [esp + 0x3c], eax
jbe 0x41421e
mov eax, ebx
sub eax, dword [esp + 0x98]
cmp dword [esp + 0x3c], eax
ja 0x4132d0
mov esi, dword [esp + 0x9c]
mov eax, dword [esp + 0x34]
mov edx, dword [esp + 0x58]
sub eax, dword [esp + 0x60]
add eax, esi
add edx, eax
cmp esi, edx
jae 0x4150d0
mov edi, dword [esp + 0x60]
mov dword [esp], ebx
mov dword [esp + 4], eax
mov esi, edi
sub esi, dword [esp + 0x34]
mov dword [esp + 8], esi
add ebx, esi
call sub.cygwin1.dll_memmove
sub dword [esp + 0x58], esi
mov dword [esp + 0x34], edi
cmp dword [esp + 0x3c], 0xf
jbe 0x415386
mov eax, dword [esp + 0x34]
cmp dword [esp + 0x58], 0x10
mov esi, dword [eax]
mov ecx, dword [eax + 4]
mov edx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [esp + 0x108], esi
mov dword [esp + 0x10c], ecx
mov dword [esp + 0x110], edx
mov dword [esp + 0x114], eax
mov dword [ebx], esi
mov dword [ebx + 4], ecx
mov dword [ebx + 8], edx
mov dword [ebx + 0xc], eax
jle 0x413ab1
mov edx, dword [esp + 0x34]
mov dword [esp + 0x34], ebp
lea eax, [ebx + 0x10]
mov ebp, dword [esp + 0x64]
add edx, 0x10
lea esi, [esi]
mov edi, dword [edx]
mov esi, dword [edx + 4]
add eax, 0x20
add edx, 0x20
mov ebx, dword [edx - 0x18]
mov ecx, dword [edx - 0x14]
mov dword [eax - 0x20], edi
mov dword [eax - 0x1c], esi
mov dword [eax - 0x18], ebx
mov dword [eax - 0x14], ecx
mov edi, dword [edx - 0x10]
mov esi, dword [edx - 0xc]
mov ebx, dword [edx - 8]
mov ecx, dword [edx - 4]
mov dword [esp + 0x108], edi
mov dword [eax - 0x10], edi
mov dword [eax - 0xc], esi
mov dword [eax - 8], ebx
mov dword [eax - 4], ecx
mov dword [esp + 0x10c], esi
mov dword [esp + 0x110], ebx
mov dword [esp + 0x114], ecx
cmp ebp, eax
ja 0x414280
jmp 0x413aad
cmp eax, 0x20
ja 0x414750
mov edx, dword [esp + 0x120]
cmp dword [esp + 0x2c], edx
jbe 0x414708
cmp dword [esp + 0x1d0], edx
je 0x4148a8
mov ecx, eax
mov ebx, edx
shr ecx, 3
sub ebx, ecx
cmp dword [esp + 0x1d0], ebx
jbe 0x414329
sub edx, dword [esp + 0x1d0]
mov ebx, dword [esp + 0x1d0]
mov ecx, edx
shl ecx, 3
mov edx, dword [ebx]
mov dword [esp + 0x120], ebx
sub eax, ecx
cmp byte [esp + 0x28], 0
mov dword [esp + 0x11c], eax
mov dword [esp + 0x118], edx
je 0x413770
mov ebx, dword [esp + 0x118]
mov ecx, eax
add eax, esi
mov edx, dword [esp + 0x120]
shl ebx, cl
mov ecx, esi
mov dword [esp + 0x11c], eax
neg ecx
shr ebx, cl
add dword [esp + 0x44], ebx
cmp eax, 0x20
jbe 0x413780
mov edx, dword [esp + 0x118]
jmp 0x4137ce
movzx edx, byte [esp + 0x3c]
mov ebx, dword [esp + 0x118]
mov ecx, eax
shl ebx, cl
mov ecx, edx
add eax, edx
neg ecx
mov dword [esp + 0x11c], eax
shr ebx, cl
add dword [esp + 0x4c], ebx
jmp 0x413755
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [esp + 0xcc], esi
mov edi, dword [esp + 0x34]
mov dword [esp + 0xd4], eax
mov eax, dword [esp + ebx + 0x154]
mov dword [esp + 0xd0], edx
lea ecx, [edi + esi - 0x20]
mov edi, dword [esp + ebx + 0x158]
lea ebx, [ebp + esi]
mov dword [esp + 0x64], eax
add eax, esi
lea edx, [ebp + eax]
mov dword [esp + 0x58], edi
mov dword [esp + 0x68], edx
mov edx, ebx
sub edx, edi
mov dword [esp + 0x28], eax
mov dword [esp + 0x5c], edx
mov edx, dword [esp + 0x3c]
cmp dword [esp + 0x7c], edx
jb 0x414810
cmp ecx, dword [esp + 0x68]
jb 0x414810
mov edx, dword [esp + 0x54]
add eax, 0x20
sub edx, ebp
cmp edx, eax
jb 0x414810
mov edi, dword [esp + 0x34]
mov eax, dword [edi]
mov ecx, dword [edi + 4]
mov edx, dword [edi + 8]
mov dword [esp + 0x108], eax
mov eax, dword [edi + 0xc]
mov edi, dword [edi]
mov dword [esp + 0x10c], ecx
mov dword [esp + 0x110], edx
mov dword [esp + 0x114], eax
mov dword [ebp], edi
mov dword [ebp + 4], ecx
mov dword [ebp + 8], edx
mov dword [ebp + 0xc], eax
cmp esi, 0x10
ja 0x414ff0
mov eax, dword [esp + 0x3c]
mov dword [esp + 0xbc], eax
mov eax, ebx
sub eax, dword [esp + 0x60]
cmp dword [esp + 0x58], eax
jbe 0x4144ec
mov eax, ebx
sub eax, dword [esp + 0x98]
cmp dword [esp + 0x58], eax
ja 0x4132d0
mov esi, dword [esp + 0x9c]
mov eax, dword [esp + 0x5c]
mov edi, dword [esp + 0x64]
sub eax, dword [esp + 0x60]
add eax, esi
lea edx, [eax + edi]
cmp esi, edx
jae 0x4146a8
mov edi, dword [esp + 0x60]
mov dword [esp], ebx
mov dword [esp + 4], eax
mov esi, edi
sub esi, dword [esp + 0x5c]
mov dword [esp + 8], esi
add ebx, esi
call sub.cygwin1.dll_memmove
sub dword [esp + 0x64], esi
mov dword [esp + 0x5c], edi
cmp dword [esp + 0x58], 0xf
jbe 0x415102
mov edi, dword [esp + 0x5c]
cmp dword [esp + 0x64], 0x10
mov esi, dword [edi]
mov ecx, dword [edi + 4]
mov edx, dword [edi + 8]
mov eax, dword [edi + 0xc]
mov dword [esp + 0x108], esi
mov dword [esp + 0x10c], ecx
mov dword [esp + 0x110], edx
mov dword [esp + 0x114], eax
mov dword [ebx], esi
mov dword [ebx + 4], ecx
mov dword [ebx + 8], edx
mov dword [ebx + 0xc], eax
jle 0x413ab1
mov dword [esp + 0x34], ebp
add edi, 0x10
mov ebp, dword [esp + 0x68]
lea eax, [ebx + 0x10]
mov edx, edi
lea esi, [esi]
nop
mov edi, dword [edx]
mov esi, dword [edx + 4]
add eax, 0x20
add edx, 0x20
mov ebx, dword [edx - 0x18]
mov ecx, dword [edx - 0x14]
mov dword [eax - 0x20], edi
mov dword [eax - 0x1c], esi
mov dword [eax - 0x18], ebx
mov dword [eax - 0x14], ecx
mov edi, dword [edx - 0x10]
mov esi, dword [edx - 0xc]
mov ebx, dword [edx - 8]
mov ecx, dword [edx - 4]
mov dword [esp + 0x108], edi
mov dword [eax - 0x10], edi
mov dword [eax - 0xc], esi
mov dword [eax - 8], ebx
mov dword [eax - 4], ecx
mov dword [esp + 0x10c], esi
mov dword [esp + 0x110], ebx
mov dword [esp + 0x114], ecx
cmp ebp, eax
ja 0x414550
jmp 0x413aad
mov edx, eax
and eax, 7
shr edx, 3
sub ecx, edx
mov edx, dword [ecx]
mov dword [esp + 0x120], ecx
mov dword [esp + 0x118], edx
jmp 0x413875
mov ecx, eax
and eax, 7
shr ecx, 3
sub edx, ecx
mov dword [esp + 0x120], edx
mov edx, dword [edx]
mov dword [esp + 0x118], edx
jmp 0x4137ce
mov eax, edi
and edi, 7
shr eax, 3
sub esi, eax
mov eax, dword [esi]
mov byte [esp + 0x3c], 1
mov dword [esp + 0x28], eax
jmp 0x412fe8
mov ecx, eax
and eax, 7
shr ecx, 3
mov dword [esp + 0x11c], eax
sub edx, ecx
mov dword [esp + 0x120], edx
mov edx, dword [edx]
mov dword [esp + 0x118], edx
jmp 0x413721
mov eax, dword [esp + 0x9c]
mov edx, dword [esp + 0x54]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x98]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x10], eax
lea eax, [esp + 0xbc]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xc0]
mov dword [esp], eax
mov eax, dword [esp + 0xc4]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 8], eax
mov eax, ebp
call fcn.004126c0
mov dword [esp + 0x28], eax
jmp 0x413ab1
mov dword [esp + 8], edi
mov dword [esp + 4], eax
mov dword [esp], ebx
call sub.cygwin1.dll_memmove
jmp 0x413ab1
cmp byte [esp + 0x38], 0
jne 0x413400
mov eax, esi
jmp 0x413083
mov esi, edx
jmp 0x412fd8
cmp dword [esp + 0x54], esi
jae 0x413318
mov dword [esp + 0x28], 0xffffffba
mov eax, dword [esp + 0x28]
add esp, 0x1bc
pop ebx
pop esi
pop edi
pop ebp
ret
mov ecx, eax
and eax, 7
shr ecx, 3
mov dword [esp + 0x11c], eax
sub edx, ecx
cmp byte [esp + 0x28], 0
mov ebx, dword [edx]
mov dword [esp + 0x120], edx
mov dword [esp + 0x118], ebx
je 0x413780
jmp 0x414357
mov esi, edx
jmp 0x413461
mov ebx, dword [esp + 0x118]
cmp byte [esp + 0x28], 0
mov edx, ebx
je 0x4137ce
jmp 0x414357
mov edx, edi
mov byte [esp + 0x3c], bl
and edi, 7
shr edx, 3
sub esi, edx
mov edx, dword [esi]
mov dword [esp + 0x28], edx
jmp 0x413f54
mov edx, dword [esp + 0x74]
mov ecx, eax
sub ebx, dword [esp + 0x70]
add eax, dword [esp + 0x78]
shl edx, cl
mov ecx, ebx
mov dword [esp + 0x11c], eax
shr edx, cl
add dword [esp + 0x38], edx
jmp 0x413721
mov edx, dword [esp + 0x28]
mov ecx, edi
add eax, dword [esp + 0x80]
add edi, 1
shl edx, cl
mov ecx, edx
shr ecx, 0x1f
lea ebx, [eax + ecx]
mov eax, dword [esp + 0x144]
cmp ebx, 3
je 0x4150f0
mov ecx, dword [esp + ebx*4 + 0x144]
cmp ecx, 1
adc ecx, 0
mov ebp, ecx
cmp ebx, 1
je 0x412ffd
mov ecx, dword [esp + 0x148]
mov dword [esp + 0x14c], ecx
jmp 0x412ffd
mov eax, dword [esp + 0x9c]
mov edx, dword [esp + 0x54]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x98]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x10], eax
lea eax, [esp + 0xbc]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xcc]
mov dword [esp], eax
mov eax, dword [esp + 0xd0]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xd4]
mov dword [esp + 8], eax
mov eax, ebp
call fcn.004125a0
mov dword [esp + 0x28], eax
jmp 0x413ab1
mov ecx, eax
and eax, 7
shr ecx, 3
mov dword [esp + 0x11c], eax
sub edx, ecx
mov edi, dword [edx]
mov dword [esp + 0x120], edx
mov dword [esp + 0x74], edi
mov dword [esp + 0x118], edi
jmp 0x413715
cmp byte [esp + 0x28], 0
je 0x41437e
jmp 0x414350
mov ebp, dword [esp + 0xac]
jmp 0x4134ee
mov edi, dword [esp + 0x34]
sub esi, 0x10
mov eax, dword [edi + 0x10]
mov ecx, dword [edi + 0x14]
mov edx, dword [edi + 0x18]
mov dword [esp + 0x108], eax
mov eax, dword [edi + 0x1c]
mov edi, dword [edi + 0x10]
mov dword [esp + 0x10c], ecx
mov dword [esp + 0x110], edx
mov dword [esp + 0x114], eax
mov dword [ebp + 0x10], edi
mov dword [ebp + 0x14], ecx
mov dword [ebp + 0x18], edx
mov dword [ebp + 0x1c], eax
cmp esi, 0x10
jle 0x41398f
mov edx, dword [esp + 0x34]
mov dword [esp + 0x34], ebp
lea eax, [ebp + 0x20]
add edx, 0x20
lea esi, [esi]
mov ebp, dword [edx]
mov edi, dword [edx + 4]
add eax, 0x20
add edx, 0x20
mov esi, dword [edx - 0x18]
mov ecx, dword [edx - 0x14]
mov dword [eax - 0x20], ebp
mov dword [eax - 0x1c], edi
mov dword [eax - 0x18], esi
mov dword [eax - 0x14], ecx
mov ebp, dword [edx - 0x10]
mov edi, dword [edx - 0xc]
mov esi, dword [edx - 8]
mov ecx, dword [edx - 4]
mov dword [esp + 0x108], ebp
mov dword [eax - 0x10], ebp
mov dword [eax - 0xc], edi
mov dword [eax - 8], esi
mov dword [eax - 4], ecx
mov dword [esp + 0x10c], edi
mov dword [esp + 0x110], esi
mov dword [esp + 0x114], ecx
cmp ebx, eax
ja 0x414928
mov ebp, dword [esp + 0x34]
jmp 0x41398f
mov ebx, dword [esp + 0x118]
mov ecx, eax
add eax, 1
mov dword [esp + 0x11c], eax
shl ebx, cl
mov ecx, dword [esp + 0x38]
shr ebx, 0x1f
add ecx, ebx
add ecx, edx
mov edx, dword [esp + 0x144]
cmp ecx, 3
je 0x414a9a
mov ebx, dword [esp + ecx*4 + 0x144]
cmp ebx, 1
adc ebx, 0
mov dword [esp + 0x38], ebx
cmp ecx, 1
je 0x413736
mov ecx, dword [esp + 0x148]
mov dword [esp + 0x14c], ecx
jmp 0x413736
mov dword [esp + 0x30], 0
jmp 0x413bd5
mov esi, dword [esp + 0x58]
cmp esi, 7
ja 0x414a8a
mov edi, dword [esp + 0x5c]
movzx eax, byte [edi]
mov byte [ebx], al
movzx eax, byte [edi + 1]
mov byte [ebx + 1], al
movzx eax, byte [edi + 2]
mov byte [ebx + 2], al
movzx eax, byte [edi + 3]
mov byte [ebx + 3], al
mov eax, dword [esi*4 + 0x427a80]
add eax, edi
mov edx, dword [eax]
sub eax, dword [esi*4 + str._b_b_b_a_b_t_n_v]
mov dword [esp + 0x5c], eax
mov dword [ebx + 4], edx
cmp dword [esp + 0x68], 8
jbe 0x413ab1
mov edi, dword [esp + 0x5c]
mov eax, ebx
sub eax, edi
cmp eax, 0xf
jg 0x4155e3
mov eax, edi
mov edx, dword [esp + 0x64]
add ebx, 8
add eax, 8
lea esi, [esi]
mov esi, dword [eax]
mov edi, dword [eax + 4]
add ebx, 8
add eax, 8
mov dword [ebx - 8], esi
mov dword [ebx - 4], edi
cmp edx, ebx
ja 0x414a70
jmp 0x413ab1
mov eax, dword [esp + 0x5c]
mov edx, dword [eax + 4]
mov eax, dword [eax]
mov dword [ebx + 4], edx
mov dword [ebx], eax
jmp 0x414a44
mov ebx, edx
xor ecx, ecx
sub ebx, 1
sete cl
lea esi, [ecx + ebx]
mov dword [esp + 0x38], esi
jmp 0x4149da
mov edi, dword [esp + 0x40]
mov ecx, dword [edi + 0x75ec]
cmp ecx, dword [esp + 0x30]
jae 0x414d20
sub ecx, edx
je 0x414af0
mov eax, dword [esp + 0x54]
sub eax, ebp
cmp ecx, eax
ja 0x4146ea
mov eax, ebp
mov dword [esp + 0x30], ecx
call fcn.00412380
mov ecx, dword [esp + 0x30]
sub esi, ecx
add ebp, ecx
mov dword [esp + ebx + 0x150], esi
mov edi, dword [esp + 0x40]
mov ebx, dword [esp + 0x28]
lea edx, [edi + 0x175f4]
lea eax, [edi + 0x75f4]
mov dword [edi + 0x75f0], 0
mov dword [esp + 0x7c], edx
lea edx, [ebx + ebx*2]
shl edx, 2
mov dword [esp + 0xbc], eax
add eax, esi
mov ebx, dword [esp + edx + 0x150]
lea ecx, [esp + edx + 0x150]
mov edi, dword [esp + edx + 0x158]
mov dword [esp + 0x34], eax
mov dword [esp + 0xe4], ebx
mov ebx, dword [ecx + 4]
mov ecx, dword [ecx + 8]
mov dword [esp + 0x30], edi
mov dword [esp + 0xe8], ebx
lea ebx, [ebp + esi]
mov dword [esp + 0xec], ecx
mov ecx, dword [esp + edx + 0x154]
mov eax, ebx
sub eax, edi
mov dword [esp + 0x3c], ecx
add ecx, esi
lea edx, [ebp + ecx]
mov dword [esp + 0x28], ecx
mov dword [esp + 0x44], edx
mov dword [esp + 0x38], eax
cmp edx, dword [esp + 0x48]
ja 0x4154af
mov eax, dword [esp + 0x34]
cmp dword [esp + 0x7c], eax
jb 0x4154af
mov edx, dword [esp + 0x54]
lea eax, [ecx + 0x20]
sub edx, ebp
cmp edx, eax
jb 0x4154af
mov eax, dword [esp + 0x40]
mov edx, dword [eax + 0x75f4]
mov ecx, dword [eax + 0x75f8]
mov edi, edx
mov dword [esp + 0x108], edx
mov edx, dword [eax + 0x75fc]
mov eax, dword [eax + 0x7600]
mov dword [esp + 0x10c], ecx
mov dword [esp + 0x110], edx
mov dword [esp + 0x114], eax
mov dword [ebp], edi
mov dword [ebp + 4], ecx
mov dword [ebp + 8], edx
mov dword [ebp + 0xc], eax
cmp esi, 0x10
ja 0x415736
mov eax, dword [esp + 0x34]
mov dword [esp + 0xbc], eax
mov eax, ebx
sub eax, dword [esp + 0x60]
cmp dword [esp + 0x30], eax
jbe 0x414c64
mov eax, ebx
sub eax, dword [esp + 0x98]
cmp dword [esp + 0x30], eax
ja 0x4132d0
mov edi, dword [esp + 0x9c]
mov eax, dword [esp + 0x38]
mov esi, dword [esp + 0x3c]
sub eax, dword [esp + 0x60]
add eax, edi
lea edx, [eax + esi]
cmp edi, edx
jae 0x4155ce
mov edi, dword [esp + 0x60]
mov dword [esp], ebx
mov dword [esp + 4], eax
mov esi, edi
sub esi, dword [esp + 0x38]
mov dword [esp + 8], esi
add ebx, esi
call sub.cygwin1.dll_memmove
sub dword [esp + 0x3c], esi
mov dword [esp + 0x38], edi
cmp dword [esp + 0x30], 0xf
jbe 0x4157fe
mov edi, dword [esp + 0x38]
cmp dword [esp + 0x3c], 0x10
mov esi, dword [edi]
mov ecx, dword [edi + 4]
mov edx, dword [edi + 8]
mov eax, dword [edi + 0xc]
mov dword [esp + 0x108], esi
mov dword [esp + 0x10c], ecx
mov dword [esp + 0x110], edx
mov dword [esp + 0x114], eax
mov dword [ebx], esi
mov dword [ebx + 4], ecx
mov dword [ebx + 8], edx
mov dword [ebx + 0xc], eax
jle 0x413e59
mov dword [esp + 0x30], ebp
add edi, 0x10
mov ebp, dword [esp + 0x44]
lea eax, [ebx + 0x10]
mov edx, edi
mov edi, dword [edx]
mov esi, dword [edx + 4]
add eax, 0x20
add edx, 0x20
mov ebx, dword [edx - 0x18]
mov ecx, dword [edx - 0x14]
mov dword [eax - 0x20], edi
mov dword [eax - 0x1c], esi
mov dword [eax - 0x18], ebx
mov dword [eax - 0x14], ecx
mov edi, dword [edx - 0x10]
mov esi, dword [edx - 0xc]
mov ebx, dword [edx - 8]
mov ecx, dword [edx - 4]
mov dword [esp + 0x108], edi
mov dword [eax - 0x10], edi
mov dword [eax - 0xc], esi
mov dword [eax - 8], ebx
mov dword [eax - 4], ecx
mov dword [esp + 0x10c], esi
mov dword [esp + 0x110], ebx
mov dword [esp + 0x114], ecx
cmp ebp, eax
ja 0x414cc0
jmp 0x413e55
mov edi, dword [eax + 4]
mov eax, dword [eax + 8]
lea ecx, [edx + esi - 0x20]
mov dword [esp + 0xfc], esi
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x104], eax
mov eax, dword [esp + ebx + 0x154]
mov dword [esp + 0x100], edi
mov ebx, dword [esp + ebx + 0x158]
lea edi, [ebp + esi]
mov dword [esp + 0x38], eax
add eax, esi
lea ecx, [ebp + eax]
mov dword [esp + 0x34], ebx
mov dword [esp + 0x44], ecx
mov ecx, edi
sub ecx, ebx
mov dword [esp + 0x28], eax
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0x30]
cmp dword [esp + 0x7c], ecx
jb 0x41518a
mov ebx, dword [esp + 0x44]
cmp dword [esp + 0x4c], ebx
jb 0x41518a
mov ebx, dword [esp + 0x54]
add eax, 0x20
sub ebx, ebp
cmp ebx, eax
jb 0x41518a
mov eax, dword [edx]
mov ebx, dword [edx + 4]
mov ecx, dword [edx + 8]
mov dword [esp + 0x108], eax
mov eax, dword [edx + 0xc]
mov dword [esp + 0x10c], ebx
mov dword [esp + 0x4c], eax
mov dword [esp + 0x114], eax
mov eax, dword [edx]
mov dword [esp + 0x110], ecx
mov dword [ebp], eax
mov eax, dword [esp + 0x4c]
mov dword [ebp + 4], ebx
mov dword [ebp + 8], ecx
mov dword [ebp + 0xc], eax
cmp esi, 0x10
ja 0x415515
mov eax, dword [esp + 0x30]
mov dword [esp + 0xbc], eax
mov eax, edi
sub eax, dword [esp + 0x60]
cmp dword [esp + 0x34], eax
jbe 0x414e54
mov eax, edi
sub eax, dword [esp + 0x98]
cmp dword [esp + 0x34], eax
ja 0x4132d0
mov esi, dword [esp + 0x9c]
mov eax, dword [esp + 0x3c]
mov ebx, dword [esp + 0x38]
sub eax, dword [esp + 0x60]
add eax, esi
lea edx, [eax + ebx]
cmp esi, edx
jae 0x41549a
mov esi, dword [esp + 0x60]
mov dword [esp], edi
mov dword [esp + 4], eax
mov ebx, esi
sub ebx, dword [esp + 0x3c]
mov dword [esp + 8], ebx
add edi, ebx
call sub.cygwin1.dll_memmove
sub dword [esp + 0x38], ebx
mov dword [esp + 0x3c], esi
cmp dword [esp + 0x34], 0xf
jbe 0x415692
mov esi, dword [esp + 0x3c]
cmp dword [esp + 0x38], 0x10
mov ebx, dword [esi]
mov ecx, dword [esi + 4]
mov edx, dword [esi + 8]
mov eax, dword [esi + 0xc]
mov dword [esp + 0x108], ebx
mov dword [esp + 0x10c], ecx
mov dword [esp + 0x110], edx
mov dword [esp + 0x114], eax
mov dword [edi], ebx
mov dword [edi + 4], ecx
mov dword [edi + 8], edx
mov dword [edi + 0xc], eax
jle 0x413e59
mov dword [esp + 0x30], ebp
add esi, 0x10
mov ebp, dword [esp + 0x44]
lea eax, [edi + 0x10]
mov edx, esi
mov edi, dword [edx]
mov esi, dword [edx + 4]
add eax, 0x20
add edx, 0x20
mov ebx, dword [edx - 0x18]
mov ecx, dword [edx - 0x14]
mov dword [eax - 0x20], edi
mov dword [eax - 0x1c], esi
mov dword [eax - 0x18], ebx
mov dword [eax - 0x14], ecx
mov edi, dword [edx - 0x10]
mov esi, dword [edx - 0xc]
mov ebx, dword [edx - 8]
mov ecx, dword [edx - 4]
mov dword [esp + 0x108], edi
mov dword [eax - 0x10], edi
mov dword [eax - 0xc], esi
mov dword [eax - 8], ebx
mov dword [eax - 4], ecx
mov dword [esp + 0x10c], esi
mov dword [esp + 0x110], ebx
mov dword [esp + 0x114], ecx
cmp ebp, eax
ja 0x414eb0
jmp 0x413e55
mov eax, dword [esp + 0x9c]
mov edi, dword [esp + 0x38]
mov esi, dword [esp + 0x34]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x98]
mov dword [esp + 0xf4], edi
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 0xf8], esi
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x10], eax
lea eax, [esp + 0xbc]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xf0]
mov dword [esp], eax
mov edx, dword [esp + 0x54]
mov eax, ebp
mov dword [esp + 4], edi
mov dword [esp + 8], esi
call fcn.004126c0
mov dword [esp + 0x28], eax
jmp 0x413e59
mov eax, dword [esp + 0x9c]
mov edi, dword [esp + 0x58]
mov esi, dword [esp + 0x3c]
mov edx, dword [esp + 0x54]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x98]
mov dword [esp + 0xdc], edi
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 0xe0], esi
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x7c]
mov dword [esp + 4], edi
mov dword [esp + 0x10], eax
lea eax, [esp + 0xbc]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xd8]
mov dword [esp + 8], esi
mov dword [esp], eax
mov eax, ebp
call fcn.004126c0
mov dword [esp + 0x28], eax
jmp 0x413ab1
mov edi, dword [esp + 0x34]
sub esi, 0x10
mov eax, dword [edi + 0x10]
mov ecx, dword [edi + 0x14]
mov edx, dword [edi + 0x18]
mov dword [esp + 0x108], eax
mov eax, dword [edi + 0x1c]
mov edi, dword [edi + 0x10]
mov dword [esp + 0x10c], ecx
mov dword [esp + 0x110], edx
mov dword [esp + 0x114], eax
mov dword [ebp + 0x10], edi
mov dword [ebp + 0x14], ecx
mov dword [ebp + 0x18], edx
mov dword [ebp + 0x1c], eax
cmp esi, 0x10
jle 0x41447e
mov edx, dword [esp + 0x34]
mov dword [esp + 0x34], ebp
lea eax, [ebp + 0x20]
add edx, 0x20
lea esi, [esi]
mov ebp, dword [edx]
mov edi, dword [edx + 4]
add eax, 0x20
add edx, 0x20
mov esi, dword [edx - 0x18]
mov ecx, dword [edx - 0x14]
mov dword [eax - 0x20], ebp
mov dword [eax - 0x1c], edi
mov dword [eax - 0x18], esi
mov dword [eax - 0x14], ecx
mov ebp, dword [edx - 0x10]
mov edi, dword [edx - 0xc]
mov esi, dword [edx - 8]
mov ecx, dword [edx - 4]
mov dword [esp + 0x108], ebp
mov dword [eax - 0x10], ebp
mov dword [eax - 0xc], edi
mov dword [eax - 8], esi
mov dword [eax - 4], ecx
mov dword [esp + 0x10c], edi
mov dword [esp + 0x110], esi
mov dword [esp + 0x114], ecx
cmp ebx, eax
ja 0x415048
mov ebp, dword [esp + 0x34]
jmp 0x41447e
mov edi, dword [esp + 0x38]
mov dword [esp + 4], eax
mov dword [esp], ebx
mov dword [esp + 8], edi
call sub.cygwin1.dll_memmove
jmp 0x413e59
mov edi, dword [esp + 0x58]
mov dword [esp + 4], eax
mov dword [esp], ebx
mov dword [esp + 8], edi
call sub.cygwin1.dll_memmove
jmp 0x413ab1
mov ebx, eax
xor ecx, ecx
sub ebx, 1
sete cl
lea ebp, [ecx + ebx]
jmp 0x4147fa
mov esi, dword [esp + 0x58]
cmp esi, 7
ja 0x415502
mov edi, dword [esp + 0x5c]
movzx eax, byte [edi]
mov byte [ebx], al
movzx eax, byte [edi + 1]
mov byte [ebx + 1], al
movzx eax, byte [edi + 2]
mov byte [ebx + 2], al
movzx eax, byte [edi + 3]
mov byte [ebx + 3], al
mov eax, dword [esi*4 + 0x427a80]
add eax, edi
mov edx, dword [eax]
sub eax, dword [esi*4 + str._b_b_b_a_b_t_n_v]
mov dword [esp + 0x5c], eax
mov dword [ebx + 4], edx
cmp dword [esp + 0x64], 8
jbe 0x413ab1
mov edi, dword [esp + 0x5c]
mov eax, ebx
sub eax, edi
cmp eax, 0xf
jg 0x415884
mov eax, edi
mov esi, dword [esp + 0x68]
lea edx, [ebx + 8]
add eax, 8
nop
mov ecx, dword [eax]
mov ebx, dword [eax + 4]
add edx, 8
add eax, 8
mov dword [edx - 8], ecx
mov dword [edx - 4], ebx
cmp esi, edx
ja 0x415170
jmp 0x413ab1
mov eax, dword [esp + 0x9c]
mov edi, dword [esp + 0x38]
mov esi, dword [esp + 0x34]
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x98]
mov dword [esp + 0x100], edi
mov edx, dword [esp + 0x54]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 0x104], esi
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x7c]
mov dword [esp + 4], edi
mov dword [esp + 0x10], eax
lea eax, [esp + 0xbc]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xfc]
mov dword [esp + 8], esi
mov dword [esp], eax
mov eax, ebp
call fcn.004125a0
mov dword [esp + 0x28], eax
jmp 0x413e59
mov eax, dword [edx + 0x10]
mov ecx, dword [edx + 0x18]
sub esi, 0x10
mov dword [esp + 0x108], eax
mov eax, dword [edx + 0x14]
mov dword [esp + 0x110], ecx
mov dword [esp + 0x3c], eax
mov dword [esp + 0x10c], eax
mov eax, dword [edx + 0x1c]
mov dword [esp + 0x44], eax
mov dword [esp + 0x114], eax
mov eax, dword [edx + 0x10]
mov dword [ebp + 0x18], ecx
mov dword [ebp + 0x10], eax
mov eax, dword [esp + 0x3c]
mov dword [ebp + 0x14], eax
mov eax, dword [esp + 0x44]
mov dword [ebp + 0x1c], eax
cmp esi, 0x10
jle 0x413d43
mov dword [esp + 0x3c], ebp
lea eax, [ebp + 0x20]
add edx, 0x20
mov dword [esp + 0x44], edi
lea esi, [esi]
mov ebp, dword [edx]
mov edi, dword [edx + 4]
add eax, 0x20
add edx, 0x20
mov esi, dword [edx - 0x18]
mov ecx, dword [edx - 0x14]
mov dword [eax - 0x20], ebp
mov dword [eax - 0x1c], edi
mov dword [eax - 0x18], esi
mov dword [eax - 0x14], ecx
mov ebp, dword [edx - 0x10]
mov edi, dword [edx - 0xc]
mov esi, dword [edx - 8]
mov ecx, dword [edx - 4]
mov dword [esp + 0x108], ebp
mov dword [eax - 0x10], ebp
mov dword [eax - 0xc], edi
mov dword [eax - 8], esi
mov dword [eax - 4], ecx
mov dword [esp + 0x10c], edi
mov dword [esp + 0x110], esi
mov dword [esp + 0x114], ecx
cmp ebx, eax
ja 0x415260
mov ebp, dword [esp + 0x3c]
mov edi, dword [esp + 0x44]
jmp 0x413d43
mov eax, dword [esp + 0x40]
sub esi, 0x10
mov edx, dword [eax + 0x7604]
mov ecx, dword [eax + 0x7608]
mov edi, dword [eax + 0x760c]
mov eax, dword [eax + 0x7610]
mov dword [esp + 0x108], edx
mov dword [esp + 0x10c], ecx
mov dword [esp + 0x110], edi
mov dword [esp + 0x114], eax
mov dword [ebp + 0x10], edx
mov dword [ebp + 0x14], ecx
mov dword [ebp + 0x18], edi
mov dword [ebp + 0x1c], eax
cmp esi, 0x10
jle 0x4141b1
mov esi, dword [esp + 0x40]
mov dword [esp + 0x68], ebp
lea eax, [ebp + 0x20]
lea edx, [esi + 0x7614]
lea esi, [esi]
nop
mov ebp, dword [edx]
mov edi, dword [edx + 4]
add eax, 0x20
add edx, 0x20
mov esi, dword [edx - 0x18]
mov ecx, dword [edx - 0x14]
mov dword [eax - 0x20], ebp
mov dword [eax - 0x1c], edi
mov dword [eax - 0x18], esi
mov dword [eax - 0x14], ecx
mov ebp, dword [edx - 0x10]
mov edi, dword [edx - 0xc]
mov esi, dword [edx - 8]
mov ecx, dword [edx - 4]
mov dword [esp + 0x108], ebp
mov dword [eax - 0x10], ebp
mov dword [eax - 0xc], edi
mov dword [eax - 8], esi
mov dword [eax - 4], ecx
mov dword [esp + 0x10c], edi
mov dword [esp + 0x110], esi
mov dword [esp + 0x114], ecx
cmp ebx, eax
ja 0x415328
mov ebp, dword [esp + 0x68]
jmp 0x4141b1
mov esi, dword [esp + 0x3c]
mov eax, dword [esp + 0x34]
cmp esi, 7
ja 0x415727
movzx eax, byte [eax]
mov byte [ebx], al
mov eax, dword [esp + 0x34]
movzx eax, byte [eax + 1]
mov byte [ebx + 1], al
mov eax, dword [esp + 0x34]
movzx eax, byte [eax + 2]
mov byte [ebx + 2], al
mov eax, dword [esp + 0x34]
movzx eax, byte [eax + 3]
mov byte [ebx + 3], al
mov eax, dword [esp + 0x34]
add eax, dword [esi*4 + 0x427a80]
mov edx, dword [eax]
sub eax, dword [esi*4 + str._b_b_b_a_b_t_n_v]
mov dword [esp + 0x34], eax
mov dword [ebx + 4], edx
cmp dword [esp + 0x58], 8
jbe 0x413ab1
mov eax, ebx
sub eax, dword [esp + 0x34]
cmp eax, 0xf
mov eax, dword [esp + 0x34]
jg 0x415940
mov esi, dword [esp + 0x64]
add eax, 8
lea edx, [ebx + 8]
mov ecx, dword [eax]
mov ebx, dword [eax + 4]
add edx, 8
add eax, 8
mov dword [edx - 8], ecx
mov dword [edx - 4], ebx
cmp esi, edx
ja 0x415400
jmp 0x413ab1
mov esi, dword [esp + 0x34]
cmp esi, 7
ja 0x415718
movzx eax, byte [edi]
mov byte [ebx], al
movzx eax, byte [edi + 1]
mov byte [ebx + 1], al
movzx eax, byte [edi + 2]
mov byte [ebx + 2], al
movzx eax, byte [edi + 3]
mov byte [ebx + 3], al
mov eax, dword [esi*4 + 0x427a80]
add eax, edi
mov edx, dword [eax]
sub eax, dword [esi*4 + str._b_b_b_a_b_t_n_v]
mov edi, eax
mov dword [ebx + 4], edx
cmp dword [esp + 0x38], 8
jbe 0x413e59
mov eax, ebx
sub eax, edi
cmp eax, 0xf
jg 0x4159e7
mov edx, dword [esp + 0x4c]
lea eax, [edi + 8]
add ebx, 8
lea esi, [esi]
mov esi, dword [eax]
mov edi, dword [eax + 4]
add ebx, 8
add eax, 8
mov dword [ebx - 8], esi
mov dword [ebx - 4], edi
cmp edx, ebx
ja 0x415480
jmp 0x413e59
mov dword [esp + 8], ebx
mov dword [esp + 4], eax
mov dword [esp], edi
call sub.cygwin1.dll_memmove
jmp 0x413e59
mov eax, dword [esp + 0x9c]
mov edi, dword [esp + 0x3c]
mov esi, dword [esp + 0x30]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x98]
mov dword [esp + 0xe8], edi
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 0xec], esi
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x10], eax
lea eax, [esp + 0xbc]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xe4]
jmp 0x414f5e
mov eax, dword [esp + 0x5c]
mov edx, dword [eax + 4]
mov eax, dword [eax]
mov dword [ebx + 4], edx
mov dword [ebx], eax
jmp 0x415146
mov eax, dword [edx + 0x10]
mov ebx, dword [edx + 0x14]
sub esi, 0x10
mov ecx, dword [edx + 0x1c]
mov dword [esp + 0x108], eax
mov eax, dword [edx + 0x18]
mov dword [esp + 0x10c], ebx
mov dword [esp + 0x4c], eax
mov dword [esp + 0x110], eax
mov eax, dword [edx + 0x10]
mov dword [esp + 0x114], ecx
mov dword [ebp + 0x10], eax
mov eax, dword [esp + 0x4c]
mov dword [ebp + 0x14], ebx
mov dword [ebp + 0x18], eax
mov dword [ebp + 0x1c], ecx
cmp esi, 0x10
jle 0x414de6
mov dword [esp + 0x4c], ebp
lea eax, [ebp + 0x20]
add edx, 0x20
lea esi, [esi]
mov ebp, dword [edx]
mov esi, dword [edx + 4]
add eax, 0x20
add edx, 0x20
mov ebx, dword [edx - 0x18]
mov ecx, dword [edx - 0x14]
mov dword [eax - 0x20], ebp
mov dword [eax - 0x1c], esi
mov dword [eax - 0x18], ebx
mov dword [eax - 0x14], ecx
mov ebp, dword [edx - 0x10]
mov esi, dword [edx - 0xc]
mov ebx, dword [edx - 8]
mov ecx, dword [edx - 4]
mov dword [esp + 0x108], ebp
mov dword [eax - 0x10], ebp
mov dword [eax - 0xc], esi
mov dword [eax - 8], ebx
mov dword [eax - 4], ecx
mov dword [esp + 0x10c], esi
mov dword [esp + 0x110], ebx
mov dword [esp + 0x114], ecx
cmp edi, eax
ja 0x415570
mov ebp, dword [esp + 0x4c]
jmp 0x414de6
mov dword [esp + 8], esi
mov dword [esp + 4], eax
mov dword [esp], ebx
call sub.cygwin1.dll_memmove
jmp 0x413e59
mov esi, dword [edi + 8]
mov ecx, dword [edi + 0xc]
mov eax, dword [edi + 0x10]
mov edx, dword [edi + 0x14]
cmp dword [esp + 0x68], 0x18
mov dword [esp + 0x108], esi
mov dword [esp + 0x10c], ecx
mov dword [esp + 0x110], eax
mov dword [esp + 0x114], edx
mov dword [ebx + 8], esi
mov dword [ebx + 0xc], ecx
mov dword [ebx + 0x10], eax
mov dword [ebx + 0x14], edx
jle 0x413ab1
mov dword [esp + 0x34], ebp
mov eax, edi
mov ebp, dword [esp + 0x64]
add ebx, 0x18
add eax, 0x18
lea esi, [esi]
mov edi, dword [eax]
mov esi, dword [eax + 4]
add ebx, 0x20
add eax, 0x20
mov ecx, dword [eax - 0x18]
mov edx, dword [eax - 0x14]
mov dword [ebx - 0x20], edi
mov dword [ebx - 0x1c], esi
mov dword [ebx - 0x18], ecx
mov dword [ebx - 0x14], edx
mov edi, dword [eax - 0x10]
mov esi, dword [eax - 0xc]
mov ecx, dword [eax - 8]
mov edx, dword [eax - 4]
mov dword [esp + 0x108], edi
mov dword [ebx - 0x10], edi
mov dword [ebx - 0xc], esi
mov dword [ebx - 8], ecx
mov dword [ebx - 4], edx
mov dword [esp + 0x10c], esi
mov dword [esp + 0x110], ecx
mov dword [esp + 0x114], edx
cmp ebp, ebx
ja 0x415638
jmp 0x413aad
mov ebx, dword [esp + 0x34]
cmp ebx, 7
ja 0x41592d
mov esi, dword [esp + 0x3c]
movzx eax, byte [esi]
mov byte [edi], al
movzx eax, byte [esi + 1]
mov byte [edi + 1], al
movzx eax, byte [esi + 2]
mov byte [edi + 2], al
movzx eax, byte [esi + 3]
mov byte [edi + 3], al
mov eax, dword [ebx*4 + 0x427a80]
add eax, esi
mov edx, dword [eax]
sub eax, dword [ebx*4 + str._b_b_b_a_b_t_n_v]
mov dword [esp + 0x3c], eax
mov dword [edi + 4], edx
cmp dword [esp + 0x38], 8
jbe 0x413e59
mov esi, dword [esp + 0x3c]
mov eax, edi
sub eax, esi
cmp eax, 0xf
jg 0x415a9b
add esi, 8
lea eax, [edi + 8]
mov edx, esi
mov esi, dword [esp + 0x44]
mov ecx, dword [edx]
mov ebx, dword [edx + 4]
add eax, 8
add edx, 8
mov dword [eax - 8], ecx
mov dword [eax - 4], ebx
cmp esi, eax
ja 0x4156fe
jmp 0x413e59
mov eax, dword [edi]
mov edx, dword [edi + 4]
mov dword [ebx], eax
mov dword [ebx + 4], edx
jmp 0x415458
mov edx, dword [eax + 4]
mov eax, dword [eax]
mov dword [ebx + 4], edx
mov dword [ebx], eax
jmp 0x4153d8
mov edi, dword [esp + 0x40]
sub esi, 0x10
mov eax, dword [edi + 0x7604]
mov edx, dword [edi + 0x7608]
mov dword [esp + 0x4c], edi
mov ecx, dword [edi + 0x760c]
mov edi, dword [edi + 0x7610]
mov dword [esp + 0x108], eax
mov dword [esp + 0x10c], edx
mov dword [esp + 0x110], ecx
mov dword [esp + 0x114], edi
mov dword [ebp + 0x10], eax
mov dword [ebp + 0x14], edx
mov dword [ebp + 0x18], ecx
mov dword [ebp + 0x1c], edi
cmp esi, 0x10
jle 0x414bf6
mov edi, dword [esp + 0x4c]
mov dword [esp + 0x4c], ebp
lea eax, [ebp + 0x20]
lea edx, [edi + 0x7614]
lea esi, [esi]
nop
mov ebp, dword [edx]
mov edi, dword [edx + 4]
add eax, 0x20
add edx, 0x20
mov esi, dword [edx - 0x18]
mov ecx, dword [edx - 0x14]
mov dword [eax - 0x20], ebp
mov dword [eax - 0x1c], edi
mov dword [eax - 0x18], esi
mov dword [eax - 0x14], ecx
mov ebp, dword [edx - 0x10]
mov edi, dword [edx - 0xc]
mov esi, dword [edx - 8]
mov ecx, dword [edx - 4]
mov dword [esp + 0x108], ebp
mov dword [eax - 0x10], ebp
mov dword [eax - 0xc], edi
mov dword [eax - 8], esi
mov dword [eax - 4], ecx
mov dword [esp + 0x10c], edi
mov dword [esp + 0x110], esi
mov dword [esp + 0x114], ecx
cmp ebx, eax
ja 0x4157a0
mov ebp, dword [esp + 0x4c]
jmp 0x414bf6
mov edi, dword [esp + 0x30]
cmp edi, 7
ja 0x415a88
mov esi, dword [esp + 0x38]
movzx eax, byte [esi]
mov byte [ebx], al
movzx eax, byte [esi + 1]
mov byte [ebx + 1], al
movzx eax, byte [esi + 2]
mov byte [ebx + 2], al
movzx eax, byte [esi + 3]
mov byte [ebx + 3], al
mov eax, dword [edi*4 + 0x427a80]
add eax, esi
mov edx, dword [eax]
sub eax, dword [edi*4 + str._b_b_b_a_b_t_n_v]
mov dword [esp + 0x38], eax
mov dword [ebx + 4], edx
cmp dword [esp + 0x3c], 8
jbe 0x413e59
mov edi, dword [esp + 0x38]
mov eax, ebx
sub eax, edi
cmp eax, 0xf
jg 0x415b3c
add edi, 8
mov esi, dword [esp + 0x44]
lea eax, [ebx + 8]
mov edx, edi
mov ecx, dword [edx]
mov ebx, dword [edx + 4]
add eax, 8
add edx, 8
mov dword [eax - 8], ecx
mov dword [eax - 4], ebx
cmp esi, eax
ja 0x41586a
jmp 0x413e59
mov esi, dword [edi + 8]
mov eax, dword [edi + 0xc]
mov edx, dword [edi + 0x10]
mov ecx, dword [edi + 0x14]
cmp dword [esp + 0x64], 0x18
mov dword [esp + 0x108], esi
mov dword [esp + 0x10c], eax
mov dword [esp + 0x110], edx
mov dword [esp + 0x114], ecx
mov dword [ebx + 8], esi
mov dword [ebx + 0xc], eax
mov dword [ebx + 0x10], edx
mov dword [ebx + 0x14], ecx
jle 0x413ab1
mov eax, edi
mov dword [esp + 0x34], ebp
mov ebp, dword [esp + 0x68]
lea edi, [ebx + 0x18]
add eax, 0x18
mov esi, dword [eax]
mov ebx, dword [eax + 4]
add edi, 0x20
add eax, 0x20
mov ecx, dword [eax - 0x18]
mov edx, dword [eax - 0x14]
mov dword [edi - 0x20], esi
mov dword [edi - 0x1c], ebx
mov dword [edi - 0x18], ecx
mov dword [edi - 0x14], edx
mov esi, dword [eax - 0x10]
mov ebx, dword [eax - 0xc]
mov ecx, dword [eax - 8]
mov edx, dword [eax - 4]
mov dword [esp + 0x108], esi
mov dword [edi - 0x10], esi
mov dword [edi - 0xc], ebx
mov dword [edi - 8], ecx
mov dword [edi - 4], edx
mov dword [esp + 0x10c], ebx
mov dword [esp + 0x110], ecx
mov dword [esp + 0x114], edx
cmp ebp, edi
ja 0x4158d3
jmp 0x413aad
mov eax, dword [esp + 0x3c]
mov edx, dword [eax + 4]
mov eax, dword [eax]
mov dword [edi + 4], edx
mov dword [edi], eax
jmp 0x4156d6
mov edi, dword [esp + 0x34]
mov esi, dword [eax + 8]
mov eax, dword [eax + 0xc]
cmp dword [esp + 0x58], 0x18
mov edx, dword [edi + 0x10]
mov ecx, dword [edi + 0x14]
mov dword [esp + 0x108], esi
mov dword [esp + 0x10c], eax
mov dword [esp + 0x110], edx
mov dword [esp + 0x114], ecx
mov dword [ebx + 8], esi
mov dword [ebx + 0xc], eax
mov dword [ebx + 0x10], edx
mov dword [ebx + 0x14], ecx
jle 0x413ab1
mov esi, edi
add ebx, 0x18
add esi, 0x18
mov edi, dword [esi]
mov ecx, dword [esi + 4]
add ebx, 0x20
add esi, 0x20
mov edx, dword [esi - 0x18]
mov eax, dword [esi - 0x14]
mov dword [ebx - 0x20], edi
mov dword [ebx - 0x1c], ecx
mov dword [ebx - 0x18], edx
mov dword [ebx - 0x14], eax
mov edi, dword [esi - 0x10]
mov ecx, dword [esi - 0xc]
mov edx, dword [esi - 8]
mov eax, dword [esi - 4]
mov dword [esp + 0x108], edi
mov dword [ebx - 0x10], edi
mov dword [ebx - 0xc], ecx
mov dword [ebx - 8], edx
mov dword [ebx - 4], eax
mov dword [esp + 0x10c], ecx
mov dword [esp + 0x110], edx
mov dword [esp + 0x114], eax
cmp dword [esp + 0x64], ebx
ja 0x41598b
jmp 0x413ab1
mov esi, dword [edi + 8]
mov eax, dword [edi + 0xc]
mov edx, dword [edi + 0x10]
mov ecx, dword [edi + 0x14]
cmp dword [esp + 0x38], 0x18
mov dword [esp + 0x108], esi
mov dword [esp + 0x10c], eax
mov dword [esp + 0x110], edx
mov dword [esp + 0x114], ecx
mov dword [ebx + 8], esi
mov dword [ebx + 0xc], eax
mov dword [ebx + 0x10], edx
mov dword [ebx + 0x14], ecx
jle 0x413e59
add ebx, 0x18
lea eax, [edi + 0x18]
mov edi, dword [eax]
mov esi, dword [eax + 4]
add ebx, 0x20
add eax, 0x20
mov ecx, dword [eax - 0x18]
mov edx, dword [eax - 0x14]
mov dword [ebx - 0x20], edi
mov dword [ebx - 0x1c], esi
mov dword [ebx - 0x18], ecx
mov dword [ebx - 0x14], edx
mov edi, dword [eax - 0x10]
mov esi, dword [eax - 0xc]
mov ecx, dword [eax - 8]
mov edx, dword [eax - 4]
mov dword [esp + 0x108], edi
mov dword [ebx - 0x10], edi
mov dword [ebx - 0xc], esi
mov dword [ebx - 8], ecx
mov dword [ebx - 4], edx
mov dword [esp + 0x10c], esi
mov dword [esp + 0x110], ecx
mov dword [esp + 0x114], edx
cmp dword [esp + 0x4c], ebx
ja 0x415a2c
jmp 0x413e59
mov eax, dword [esp + 0x38]
mov edx, dword [eax + 4]
mov eax, dword [eax]
mov dword [ebx + 4], edx
mov dword [ebx], eax
jmp 0x415842
mov ebx, dword [esi + 8]
mov eax, dword [esi + 0xc]
mov edx, dword [esi + 0x10]
mov ecx, dword [esi + 0x14]
cmp dword [esp + 0x38], 0x18
mov dword [esp + 0x108], ebx
mov dword [esp + 0x10c], eax
mov dword [esp + 0x110], edx
mov dword [esp + 0x114], ecx
mov dword [edi + 8], ebx
mov dword [edi + 0xc], eax
mov dword [edi + 0x10], edx
mov dword [edi + 0x14], ecx
jle 0x413e59
lea ebx, [edi + 0x18]
add esi, 0x18
mov edi, dword [esi]
mov ecx, dword [esi + 4]
add ebx, 0x20
add esi, 0x20
mov edx, dword [esi - 0x18]
mov eax, dword [esi - 0x14]
mov dword [ebx - 0x20], edi
mov dword [ebx - 0x1c], ecx
mov dword [ebx - 0x18], edx
mov dword [ebx - 0x14], eax
mov edi, dword [esi - 0x10]
mov ecx, dword [esi - 0xc]
mov edx, dword [esi - 8]
mov eax, dword [esi - 4]
mov dword [esp + 0x108], edi
mov dword [ebx - 0x10], edi
mov dword [ebx - 0xc], ecx
mov dword [ebx - 8], edx
mov dword [ebx - 4], eax
mov dword [esp + 0x10c], ecx
mov dword [esp + 0x110], edx
mov dword [esp + 0x114], eax
cmp dword [esp + 0x44], ebx
ja 0x415ae0
jmp 0x413e59
mov eax, dword [esp + 0x38]
mov ecx, 4
cmp dword [esp + 0x3c], 0x18
lea edi, [esp + 0x108]
lea esi, [eax + 8]
rep movsd dword es:[edi], dword [esi]
lea edi, [ebx + 8]
lea esi, [esp + 0x108]
mov ecx, 4
rep movsd dword es:[edi], dword [esi]
jle 0x413e59
add eax, 0x18
lea edi, [ebx + 0x18]
mov esi, eax
mov ebx, dword [esi]
mov ecx, dword [esi + 4]
add edi, 0x20
add esi, 0x20
mov edx, dword [esi - 0x18]
mov eax, dword [esi - 0x14]
mov dword [edi - 0x20], ebx
mov dword [edi - 0x1c], ecx
mov dword [edi - 0x18], edx
mov dword [edi - 0x14], eax
mov ebx, dword [esi - 0x10]
mov ecx, dword [esi - 0xc]
mov edx, dword [esi - 8]
mov eax, dword [esi - 4]
mov dword [esp + 0x108], ebx
mov dword [edi - 0x10], ebx
mov dword [edi - 0xc], ecx
mov dword [edi - 8], edx
mov dword [edi - 4], eax
mov dword [esp + 0x10c], ecx
mov dword [esp + 0x110], edx
mov dword [esp + 0x114], eax
cmp dword [esp + 0x44], edi
ja 0x415b75
jmp 0x413e59