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

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0xac
and byte [eax + 0x1c], 0x90
cmp dword [eax + 4], 0x87
mov edi, dword [esp + 0xc0]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x24], edx
mov dword [eax + 0xc], edi
mov edi, dword [eax]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x34], 0
mov dword [eax + 8], 0
mov dword [eax + 0x18], 0
mov dword [esp + 0x18], edi
jbe 0x4462f8
mov ebx, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
lea edi, [ebx + 4]
mov ecx, ebx
mov dword [eax + 8], 0x88
xor eax, eax
and edi, 0xfffffffc
mov dword [ebx], 0
mov dword [ebx + 0x84], 0
sub ecx, edi
add ecx, 0x88
shr ecx, 2
rep stosd dword es:[edi], eax
mov dword [ebx + 0x40], 0x1f
cmp dword [esp + 0x20], 0xaaaaaa9
ja 0x445a0b
mov edi, dword [esp + 0x20]
mov ebx, dword [esp + 0x18]
lea eax, [edi + 1]
mov dword [ebx + 4], eax
mov dword [esp + 0x2c], eax
shl eax, 3
mov dword [esp], eax
call fcn.0044ac50
mov dword [ebx], eax
test edi, edi
je 0x446326
mov eax, 1
mov edx, edi
lea esi, [esi]
lea esi, [esi]
add eax, eax
cmp edx, eax
jae 0x4454a0
lea ebx, [eax - 1]
mov dword [esp + 4], eax
mov dword [esp], 0xc
call fcn.00447f00
mov edi, dword [esp + 0x18]
mov dword [edi + 0x20], eax
mov dword [edi + 0x44], ebx
call sub.cygwin1.dll___locale_mb_cur_max
mov dword [edi + 0x5c], eax
mov dword [esp], 0
call fcn.00437920
movzx edx, byte [eax]
and edx, 0xffffffdf
cmp dl, 0x55
jne 0x445520
movzx edx, byte [eax + 1]
and edx, 0xffffffdf
cmp dl, 0x54
jne 0x445520
movzx edx, byte [eax + 2]
and edx, 0xffffffdf
cmp dl, 0x46
jne 0x445520
xor edx, edx
cmp byte [eax + 3], 0x2d
sete dl
lea eax, [eax + edx + 3]
cmp byte [eax], 0x38
jne 0x445520
cmp byte [eax + 1], 0
jne 0x445520
or byte [edi + 0x58], 4
lea esi, [esi]
lea esi, [esi]
mov edi, dword [esp + 0x18]
movzx eax, byte [edi + 0x58]
mov edx, eax
and edx, 0xfffffff7
cmp dword [edi + 0x5c], 1
mov byte [edi + 0x58], dl
jle 0x445545
test al, 4
je 0x445ac6
mov dword [edi + 0x3c], 0x465740
mov eax, dword [esp + 0x18]
mov edx, dword [eax]
test edx, edx
je 0x445a0b
mov eax, dword [eax + 0x20]
test eax, eax
je 0x445a0b
mov edi, dword [esp + 0x1c]
lea edx, [esp + 0x50]
xor eax, eax
mov ecx, 0x13
mov ebp, dword [esp + 0x20]
mov dword [esp + 0x34], 0
lea ebx, [esp + 0x4c]
mov esi, dword [edi + 0x14]
mov edi, edx
rep stosd dword es:[edi], eax
mov edi, dword [esp + 0x24]
mov ecx, dword [esp + 0xc0]
mov dword [esp + 0x7c], ebp
mov dword [esp + 0x8c], esi
and ecx, 0x400000
mov dword [esp + 0x4c], edi
mov edi, esi
setne byte [esp + 0x94]
or edi, ecx
setne al
mov dword [esp + 0x28], ecx
mov byte [esp + 0x97], al
mov esi, eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x78], ebp
mov ecx, dword [eax + 0x5c]
movzx eax, byte [eax + 0x58]
mov dword [esp + 0x84], ebp
mov dword [esp + 0x80], ebp
mov edx, eax
shr al, 3
mov dword [esp + 0x9c], ecx
shr dl, 2
and eax, 1
and edx, 1
mov byte [esp + 0x96], al
mov byte [esp + 0x95], dl
test ebp, ebp
jne 0x4459df
mov eax, esi
mov ebp, dword [esp + 0x28]
test al, al
mov eax, dword [esp + 0x24]
cmovne eax, dword [esp + 0x50]
mov dword [esp + 0x24], eax
mov dword [esp + 0x50], eax
test ebp, ebp
je 0x445680
cmp ecx, 1
jle 0x4462ec
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x20]
mov dword [esp], ebx
call fcn.0043a3f0
test eax, eax
jne 0x445671
cmp esi, dword [esp + 0x6c]
jle 0x4456de
mov eax, dword [esp + 0x70]
mov edx, dword [edi + 0x5c]
add edx, dword [esp + 0x68]
cmp eax, edx
jg 0x4456de
add eax, eax
mov dword [esp], ebx
mov dword [esp + 4], eax
call fcn.00439e90
test eax, eax
je 0x445636
mov dword [esp + 0x34], eax
jmp 0x445a44
cmp ecx, 1
jg 0x44619f
mov edx, dword [esp + 0x70]
test edi, edi
je 0x4456d6
mov eax, dword [esp + 0x7c]
cmp edx, eax
cmovg edx, eax
mov eax, dword [esp + 0x68]
cmp edx, eax
jle 0x446460
mov esi, dword [esp + 0x24]
jmp 0x4456b4
mov esi, dword [esp + 0x50]
mov ecx, dword [esp + 0x4c]
mov edi, dword [esp + 0x8c]
add ecx, eax
add ecx, dword [esp + 0x64]
movzx ecx, byte [ecx]
movzx ecx, byte [edi + ecx]
mov byte [esi + eax], cl
add eax, 1
cmp edx, eax
jne 0x4456b0
mov dword [esp + 0x68], edx
mov dword [esp + 0x6c], edx
mov edi, dword [esp + 0x1c]
mov eax, dword [esp + 0xc0]
mov edx, ebx
mov dword [esp + 0x34], 0
mov esi, dword [edi]
mov dword [edi + 0x18], 0
mov ecx, eax
or ecx, 0x800000
mov dword [esi + 0x80], eax
lea eax, [esp + 0x38]
call fcn.0043ca50
add dword [esp + 0x74], eax
lea eax, [esp + 0x34]
mov edx, edi
mov dword [esp + 8], eax
mov eax, dword [esp + 0xc0]
lea ecx, [esp + 0x38]
mov dword [esp + 4], 0
mov dword [esp], eax
mov eax, ebx
call fcn.00445260
mov edi, dword [esp + 0x34]
mov ebx, eax
test edi, edi
jne 0x446332
lea eax, [esp + 0x40]
xor ecx, ecx
xor edx, edx
mov dword [esp + 0x44], 0
mov dword [esp], eax
mov dword [esp + 0x14], eax
mov eax, esi
mov dword [esp + 0x40], 0
mov byte [esp + 0x44], 2
call fcn.00439f80
mov edi, eax
test ebx, ebx
je 0x4457aa
mov eax, dword [esp + 0x14]
mov ecx, edi
mov edx, ebx
mov dword [esp + 0x44], 0
mov dword [esp + 0x40], 0
mov dword [esp], eax
mov eax, esi
mov byte [esp + 0x44], 0x10
call fcn.00439f80
mov edx, eax
mov eax, edi
mov edi, edx
test eax, eax
mov ebx, dword [esp + 0x1c]
sete al
test edi, edi
sete dl
mov ebx, dword [ebx]
or al, dl
jne 0x44636c
mov eax, dword [esp + 0x18]
mov dword [eax + 0x34], edi
mov eax, dword [ebx + 4]
shl eax, 2
mov dword [esp], eax
call fcn.0044ac50
mov dword [ebx + 0xc], eax
mov eax, dword [ebx + 4]
shl eax, 2
mov dword [esp], eax
call fcn.0044ac50
mov dword [ebx + 0x10], eax
mov eax, dword [ebx + 4]
lea eax, [eax + eax*2]
shl eax, 2
mov dword [esp], eax
call fcn.0044ac50
mov dword [ebx + 0x14], eax
mov eax, dword [ebx + 4]
lea eax, [eax + eax*2]
shl eax, 2
mov dword [esp], eax
call fcn.0044ac50
mov esi, dword [ebx + 0xc]
mov dword [ebx + 0x18], eax
test esi, esi
je 0x445a3c
mov ecx, dword [ebx + 0x10]
test ecx, ecx
je 0x445a3c
mov edx, dword [ebx + 0x14]
test edx, edx
je 0x445a3c
test eax, eax
je 0x445a3c
mov eax, dword [esp + 0x1c]
mov eax, dword [eax + 0x18]
mov dword [esp + 0x10], eax
shl eax, 2
mov dword [esp], eax
call fcn.0044ac50
mov dword [ebx + 0x84], eax
mov ebp, eax
test eax, eax
je 0x445913
mov eax, dword [esp + 0x1c]
mov edi, dword [eax + 0x18]
xor eax, eax
test edi, edi
je 0x44587b
nop
mov dword [ebp + eax*4], eax
add eax, 1
cmp eax, edi
jne 0x445870
mov eax, dword [ebx + 0x34]
mov dword [esp + 0x10], eax
movzx ecx, byte [eax + 0x18]
mov edx, eax
mov esi, dword [edx + 4]
cmp cl, 4
je 0x4458ab
cmp cl, 0x11
je 0x4459c0
test esi, esi
je 0x4458c3
movzx ecx, byte [esi + 0x18]
mov edx, esi
mov esi, dword [edx + 4]
cmp cl, 4
jne 0x445890
mov ecx, dword [edx + 0x14]
mov eax, 1
mov ecx, dword [ebp + ecx*4]
mov dword [edx + 0x14], ecx
shl eax, cl
or dword [ebx + 0x50], eax
test esi, esi
jne 0x44589d
mov eax, dword [esp + 0x10]
xor ecx, ecx
jmp 0x4458d2
mov edx, esi
mov esi, dword [edx + 8]
test esi, esi
je 0x4458e1
cmp esi, ecx
jne 0x44621b
mov esi, dword [edx]
mov ecx, edx
test esi, esi
jne 0x4458d0
xor edx, edx
test edi, edi
je 0x445901
nop
cmp dword [ebp + edx*4], edx
jne 0x44618a
add edx, 1
cmp edx, edi
jne 0x4458f0
mov dword [esp], ebp
call fcn.004376c0
mov dword [ebx + 0x84], 0
mov ecx, dword [ebx + 0x34]
lea esi, [esi]
lea esi, [esi]
mov esi, ecx
mov ecx, dword [ecx + 4]
test ecx, ecx
jne 0x445920
mov ecx, dword [esi + 8]
test ecx, ecx
jne 0x445920
mov edi, dword [esp + 0x1c]
mov ebp, dword [esp + 0x14]
jmp 0x445973
mov ecx, dword [esi + 8]
test ecx, ecx
je 0x445959
cmp byte [ecx + 0x18], 0x11
je 0x4459a8
mov eax, dword [esp + 0x40]
test eax, eax
jne 0x445671
mov eax, dword [esi]
test eax, eax
je 0x445b83
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x44596e
cmp esi, ecx
jne 0x445920
mov ecx, dword [eax + 4]
mov esi, eax
mov dword [esp + 0x40], 0
test ecx, ecx
je 0x445940
cmp byte [ecx + 0x18], 0x11
jne 0x445940
mov edx, edi
mov eax, ebp
call fcn.0043a030
mov dword [esi + 4], eax
test eax, eax
je 0x445997
mov dword [eax], esi
mov ecx, dword [esi + 8]
test ecx, ecx
je 0x44594d
cmp byte [ecx + 0x18], 0x11
jne 0x44594d
lea esi, [esi]
mov edx, edi
mov eax, ebp
call fcn.0043a030
mov dword [esi + 8], eax
test eax, eax
je 0x44594d
mov dword [eax], esi
jmp 0x44594d
test esi, esi
je 0x4458c3
movzx ecx, byte [esi + 0x18]
mov eax, dword [esi + 4]
cmp cl, 0x11
je 0x4461ab
mov edx, esi
jmp 0x445888
mov esi, dword [esp + 0x2c]
mov dword [esp], ebx
mov dword [esp + 4], esi
call fcn.00439e90
test eax, eax
jne 0x445671
mov eax, dword [esp + 0x18]
movzx esi, byte [esp + 0x97]
mov ecx, dword [eax + 0x5c]
jmp 0x445608
mov dword [esp + 0x34], 0xc
mov eax, dword [esp + 0x18]
call fcn.0043f7e0
mov eax, dword [esp + 0x1c]
mov dword [eax], 0
mov dword [eax + 4], 0
mov eax, dword [esp + 0x34]
add esp, 0xac
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp + 0x34], 0xc
mov eax, dword [esp + 0x1c]
mov esi, dword [eax]
mov ebx, dword [esi + 0x38]
test ebx, ebx
je 0x445a68
lea esi, [esi]
mov eax, ebx
mov ebx, dword [ebx]
mov dword [esp], eax
call fcn.004376c0
test ebx, ebx
jne 0x445a58
mov eax, dword [esi + 0x10]
mov dword [esi + 0x38], 0
mov dword [esi + 0x40], 0x1f
mov dword [esi + 0x34], 0
mov dword [esp], eax
call fcn.004376c0
mov eax, dword [esp + 0x54]
mov dword [esi + 0x10], 0
mov dword [esp], eax
call fcn.004376c0
mov eax, dword [esp + 0x58]
mov dword [esp], eax
call fcn.004376c0
cmp byte [esp + 0x97], 0
je 0x445a13
mov eax, dword [esp + 0x50]
mov dword [esp], eax
call fcn.004376c0
jmp 0x445a13
mov dword [esp + 4], 1
mov dword [esp], 0x20
call fcn.00447f00
mov ebx, dword [esp + 0x18]
mov dword [ebx + 0x3c], eax
test eax, eax
je 0x445a0b
xor edi, edi
mov dword [esp + 0x14], edi
mov edi, ebx
lea esi, [esi]
mov eax, dword [esp + 0x14]
mov dword [esp + 0x10], edi
xor esi, esi
lea ebx, [eax*8]
jmp 0x445b42
mov edi, dword [esp + 0x10]
mov ebp, dword [esp + 0x14]
mov ecx, esi
add ebp, dword [edi + 0x3c]
mov edi, 1
shl edi, cl
or dword [ebp], edi
test edx, edx
jne 0x445b37
cmp eax, ebx
je 0x445b37
mov eax, dword [esp + 0x10]
or byte [eax + 0x58], 8
add esi, 1
add ebx, 1
cmp esi, 0x20
je 0x445b68
mov dword [esp], ebx
call sub.cygwin1.dll_btowc
mov edx, ebx
and edx, 0xffffff80
cmp eax, 0xffffffff
jne 0x445b10
test edx, edx
je 0x445b2f
add esi, 1
add ebx, 1
cmp esi, 0x20
jne 0x445b42
lea esi, [esi]
nop
add dword [esp + 0x14], 4
mov eax, dword [esp + 0x14]
mov edi, dword [esp + 0x10]
cmp eax, 0x20
jne 0x445af8
jmp 0x445545
mov eax, dword [ebx + 0x34]
lea esi, [esi]
lea esi, [esi]
mov esi, eax
mov eax, dword [eax + 4]
test eax, eax
jne 0x445b90
mov eax, dword [esi + 8]
test eax, eax
jne 0x445b90
cmp byte [esi + 0x18], 0x10
jne 0x445bd8
lea esi, [esi]
lea esi, [esi]
mov eax, dword [esi + 4]
mov edx, dword [eax + 0xc]
mov eax, dword [eax + 0x1c]
mov dword [esi + 0xc], edx
mov dword [esi + 0x1c], eax
mov edx, dword [esi]
test edx, edx
je 0x445c1e
mov eax, dword [edx + 8]
test eax, eax
je 0x445bd0
cmp esi, eax
jne 0x445b90
mov esi, edx
cmp byte [esi + 0x18], 0x10
je 0x445bb0
mov edx, dword [esi + 0x14]
mov ecx, dword [esi + 0x18]
mov dword [esi + 0xc], esi
mov eax, ebx
call fcn.0043ae80
mov dword [esi + 0x1c], eax
cmp eax, 0xffffffff
je 0x445f44
cmp byte [esi + 0x18], 0xc
jne 0x445bbf
mov edi, dword [ebx]
mov ecx, dword [esi + 0x14]
mov edx, dword [edi + eax*8 + 4]
and ecx, 0x3ff
shl ecx, 8
and edx, 0xfffc00ff
or edx, ecx
mov dword [edi + eax*8 + 4], edx
mov edx, dword [esi]
test edx, edx
jne 0x445bc5
mov esi, dword [ebx + 0x34]
mov eax, esi
movzx ecx, byte [eax + 0x18]
mov edx, dword [eax + 4]
cmp cl, 0xb
je 0x445c62
nop
cmp cl, 0x10
je 0x445e20
test edx, edx
je 0x445c43
mov ecx, dword [eax + 0x10]
mov dword [edx + 0x10], ecx
mov edi, dword [eax + 8]
test edi, edi
je 0x445c50
mov ecx, dword [eax + 0x10]
mov dword [edi + 0x10], ecx
test edx, edx
je 0x445c77
mov eax, edx
movzx ecx, byte [eax + 0x18]
mov edx, dword [eax + 4]
cmp cl, 0xb
jne 0x445c30
mov dword [edx + 0x10], eax
mov eax, edx
jmp 0x445c56
mov edi, dword [ecx + 8]
mov edx, eax
mov eax, ecx
cmp edx, edi
je 0x445c83
test edi, edi
jne 0x4462b5
mov ecx, dword [eax]
test ecx, ecx
jne 0x445c70
lea esi, [esi]
cmp byte [esi + 0x18], 0x10
mov eax, dword [esi + 0x1c]
ja case.0x445c9d.0
movzx edx, byte [esi + 0x18]
jmp dword [edx*4 + 0x4656b8]
mov edx, dword [esi + 0x10]
mov ecx, dword [edx + 0x1c]
mov edx, dword [ebx + 0xc]
mov dword [edx + eax*4], ecx
mov edx, dword [esi + 4]
test edx, edx
je 0x445cc2
mov esi, edx
jmp 0x445c90
mov esi, ecx
mov ecx, dword [esi + 8]
test ecx, ecx
sete al
cmp ecx, edx
sete dl
or al, dl
je 0x4462ac
mov ecx, dword [esi]
mov edx, esi
test ecx, ecx
jne 0x445cc0
mov byte [esp + 0x10], 0
mov edi, dword [esp + 0x14]
xor ebp, ebp
mov byte [esp + 0x20], al
jmp 0x445d2e
lea esi, [ebp + ebp*2]
shl esi, 2
mov eax, dword [ebx + 0x18]
mov eax, dword [eax + esi + 4]
test eax, eax
jne 0x445d2b
mov dword [esp], 1
mov ecx, ebp
mov edx, ebx
mov eax, edi
call fcn.0043e4f0
test eax, eax
jne 0x445671
mov eax, dword [ebx + 0x18]
mov eax, dword [eax + esi + 4]
test eax, eax
je 0x445e40
add ebp, 1
cmp dword [ebx + 8], ebp
jne 0x445cf0
cmp byte [esp + 0x10], 0
je 0x445e6d
mov byte [esp + 0x10], 0
xor esi, esi
xor ebp, ebp
jmp 0x445cf7
mov edx, dword [esi + 0x10]
mov edi, dword [edx + 0x1c]
lea edx, [eax + eax*2]
mov eax, dword [ebx + 0x14]
lea ebp, [eax + edx*4]
mov dword [ebp], 1
mov dword [ebp + 4], 1
mov dword [esp], 4
call fcn.0044ac50
mov dword [ebp + 8], eax
test eax, eax
je 0x44642e
mov dword [eax], edi
jmp case.0x445c9d.2
or byte [ebx + 0x58], 1
mov edx, dword [esi + 4]
test edx, edx
je 0x4462e1
mov edx, dword [edx + 0xc]
mov edi, dword [edx + 0x1c]
mov edx, dword [esi + 8]
test edx, edx
je 0x4462d6
mov edx, dword [edx + 0xc]
mov ebp, dword [edx + 0x1c]
lea edx, [eax + eax*2]
mov eax, dword [ebx + 0x14]
lea edx, [eax + edx*4]
mov dword [edx], 2
mov dword [esp], 8
mov dword [esp + 0x10], edx
call fcn.0044ac50
mov edx, dword [esp + 0x10]
mov dword [edx + 8], eax
test eax, eax
je 0x445f44
cmp edi, ebp
je 0x4462be
mov dword [edx + 4], 2
jge 0x4462cc
mov dword [eax], edi
mov dword [eax + 4], ebp
jmp case.0x445c9d.2
mov edx, dword [esi + 0x10]
mov edi, dword [edx + 0x1c]
mov edx, dword [ebx + 0xc]
mov dword [edx + eax*4], edi
cmp byte [esi + 0x18], 4
jne case.0x445c9d.2
jmp 0x445d56
mov ecx, dword [eax + 8]
mov edi, dword [ecx + 0xc]
mov dword [edx + 0x10], edi
mov eax, dword [eax + 0x10]
mov dword [ecx + 0x10], eax
mov eax, edx
jmp 0x445c56
mov eax, dword [esp + 0x48]
add ebp, 1
mov dword [esp], eax
call fcn.004376c0
cmp dword [ebx + 8], ebp
je 0x44617c
movzx eax, byte [esp + 0x20]
lea esi, [ebp + ebp*2]
shl esi, 2
mov byte [esp + 0x10], al
jmp 0x445cf7
mov eax, dword [esp + 0x1c]
test byte [eax + 0x1c], 0x10
jne 0x445e84
mov eax, dword [eax + 0x18]
test eax, eax
je 0x445e84
test byte [ebx + 0x58], 1
jne 0x445e8f
mov edi, dword [ebx + 0x4c]
test edi, edi
je 0x445f5c
lea eax, [ebp + ebp*2]
shl eax, 2
mov dword [esp], eax
call fcn.0044ac50
mov dword [ebx + 0x1c], eax
test eax, eax
je 0x445a3c
mov esi, dword [ebx + 8]
test esi, esi
je 0x445f5c
xor edx, edx
jmp 0x445ec3
mov eax, dword [ebx + 0x1c]
lea ecx, [edx + edx*2]
add edx, 1
lea eax, [eax + ecx*4]
mov dword [eax], 0
mov dword [eax + 4], 0
mov dword [eax + 8], 0
mov eax, dword [ebx + 8]
cmp eax, edx
ja 0x445ec0
test eax, eax
je 0x445f5c
mov eax, dword [ebx + 0x18]
xor edi, edi
lea ebp, [edi + edi*2]
lea esi, [ebp*4]
lea ecx, [eax + esi]
mov dword [esp + 0x20], esi
xor esi, esi
mov ebp, dword [ecx + 8]
mov ecx, dword [ecx + 4]
test ecx, ecx
jle 0x445f54
mov eax, ebx
mov ebx, ebp
mov ebp, eax
jmp 0x445f28
mov eax, dword [ebp + 0x18]
mov ecx, dword [esp + 0x20]
add esi, 1
cmp esi, dword [eax + ecx + 4]
jge 0x445f52
mov dword [esp + 4], edi
mov eax, dword [ebx + esi*4]
lea ecx, [eax + eax*2]
mov eax, dword [ebp + 0x1c]
lea eax, [eax + ecx*4]
mov dword [esp], eax
call fcn.00439f20
test al, al
jne 0x445f18
mov eax, 0xc
mov dword [esp + 0x34], eax
jmp 0x445a44
mov ebx, ebp
add edi, 1
cmp dword [ebx + 8], edi
ja 0x445ef0
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x28]
mov dword [esp + 0x34], 0
movzx eax, byte [eax + 0x58]
mov byte [esp + 0x20], al
shr al, 2
test edx, edx
sete dl
and al, dl
jne 0x4461e0
mov edi, dword [esp + 0x18]
mov eax, dword [edi + 0x34]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0x1c]
mov dword [edi + 0x48], eax
lea edx, [eax + eax*2]
mov eax, dword [edi + 0x18]
lea eax, [eax + edx*4]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x14]
mov dword [esp], eax
call fcn.0043a9f0
mov dword [esp + 0x24], eax
mov dword [esp + 0x38], eax
test eax, eax
jne 0x4460e2
mov esi, dword [edi + 0x4c]
test esi, esi
jle 0x446090
mov esi, dword [esp + 0x44]
test esi, esi
jle 0x446090
xor ebp, ebp
jmp 0x445feb
add ebp, 1
cmp esi, ebp
jle 0x446090
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x48]
mov ebx, dword [eax]
mov eax, dword [ecx + ebp*4]
lea edi, [ebx + eax*8]
mov dword [esp + 0x10], eax
cmp byte [edi + 4], 4
jne 0x445fe0
mov dword [esp + 0x20], ebp
xor eax, eax
jmp 0x44601b
add eax, 1
cmp eax, esi
je 0x446170
mov edx, dword [ecx + eax*4]
lea edx, [ebx + edx*8]
cmp byte [edx + 4], 9
jne 0x446010
mov ebp, dword [edi]
cmp dword [edx], ebp
jne 0x446010
mov eax, dword [esp + 0x10]
mov edi, dword [esp + 0x18]
mov ebp, dword [esp + 0x20]
lea eax, [eax + eax*2]
shl eax, 2
add eax, dword [edi + 0x14]
mov eax, dword [eax + 8]
mov ebx, dword [eax]
mov eax, dword [esp + 0x14]
mov edx, ebx
call fcn.00439aa0
test eax, eax
jne 0x445fe0
mov eax, dword [esp + 0x18]
lea edx, [ebx + ebx*2]
mov eax, dword [eax + 0x18]
lea eax, [eax + edx*4]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x14]
mov dword [esp], eax
call fcn.0043b200
test eax, eax
jne 0x446441
mov esi, dword [esp + 0x44]
mov ebp, 1
cmp esi, ebp
jg 0x445feb
lea esi, [esi]
mov eax, dword [esp + 0x14]
mov edi, dword [esp + 0x18]
mov dword [esp + 0xc], 0
mov dword [esp + 8], eax
lea eax, [esp + 0x38]
mov dword [esp + 4], edi
mov dword [esp], eax
call fcn.0043d9f0
mov dword [edi + 0x24], eax
test eax, eax
je 0x44629f
cmp byte [eax + 0x34], 0
js 0x446224
mov edi, dword [esp + 0x18]
mov dword [edi + 0x30], eax
mov dword [edi + 0x2c], eax
mov dword [edi + 0x28], eax
mov eax, dword [esp + 0x48]
mov dword [esp], eax
call fcn.004376c0
mov eax, dword [esp + 0x24]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x1c]
mov esi, dword [eax]
mov ebx, dword [esi + 0x38]
test ebx, ebx
je 0x446110
lea esi, [esi]
nop
mov eax, ebx
mov ebx, dword [ebx]
mov dword [esp], eax
call fcn.004376c0
test ebx, ebx
jne 0x446100
mov eax, dword [esi + 0x10]
mov dword [esi + 0x38], 0
mov dword [esi + 0x40], 0x1f
mov dword [esi + 0x34], 0
mov dword [esp], eax
call fcn.004376c0
mov eax, dword [esp + 0x54]
mov dword [esi + 0x10], 0
mov dword [esp], eax
call fcn.004376c0
mov eax, dword [esp + 0x58]
mov dword [esp], eax
call fcn.004376c0
cmp byte [esp + 0x97], 0
jne 0x446191
mov eax, dword [esp + 0x34]
test eax, eax
jne 0x445a13
add esp, 0xac
pop ebx
pop esi
pop edi
pop ebp
ret
mov ebp, dword [esp + 0x20]
add ebp, 1
jmp 0x445fe3
mov byte [esp + 0x10], 0
xor ebp, ebp
xor esi, esi
jmp 0x445cf7
mov ecx, eax
jmp 0x445920
mov eax, dword [esp + 0x50]
mov dword [esp], eax
call fcn.004376c0
jmp 0x446159
mov eax, ebx
call fcn.0043a250
jmp 0x4456de
mov ecx, dword [esi + 0x14]
mov dword [edx + 4], eax
test eax, eax
je 0x4461b7
mov dword [eax], edx
mov esi, dword [edx + 0x14]
mov esi, dword [ebp + esi*4]
mov dword [ebp + ecx*4], esi
mov esi, eax
cmp ecx, 0x1f
jg 0x445899
mov eax, 1
shl eax, cl
mov ecx, eax
not ecx
and dword [ebx + 0x50], ecx
jmp 0x445899
mov edi, dword [esp + 0x1c]
mov edx, dword [edi + 0x14]
test edx, edx
jne case.0x446214.6
mov edi, dword [esp + 0x18]
mov ecx, dword [edi + 8]
test ecx, ecx
je 0x446487
mov esi, dword [edi]
xor ebp, ebp
xor edi, edi
mov ebx, esi
cmp byte [ebx + 4], 0xc
ja case.0x446214.0
movzx edx, byte [ebx + 4]
jmp dword [edx*4 + 0x4656fc]
mov dword [esp + 0x10], eax
jmp 0x44589d
mov edi, dword [esp + 0x18]
mov ebx, dword [esp + 0x14]
lea eax, [esp + 0x38]
mov dword [esp + 0xc], 1
mov dword [esp], eax
mov dword [esp + 8], ebx
mov dword [esp + 4], edi
call fcn.0043d9f0
mov dword [edi + 0x28], eax
lea eax, [esp + 0x38]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 2
mov dword [esp + 4], edi
mov dword [esp], eax
call fcn.0043d9f0
mov dword [edi + 0x2c], eax
lea eax, [esp + 0x38]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 6
mov dword [esp + 4], edi
mov dword [esp], eax
call fcn.0043d9f0
mov ebx, dword [edi + 0x28]
mov dword [edi + 0x30], eax
test ebx, ebx
je 0x44629f
mov ecx, dword [edi + 0x2c]
test ecx, ecx
je 0x44629f
test eax, eax
jne 0x4460d6
mov eax, dword [esp + 0x38]
mov dword [esp + 0x24], eax
jmp 0x4460e2
mov edx, ecx
mov esi, edx
jmp 0x445c90
mov edx, edi
mov eax, edx
jmp 0x445c56
mov dword [edx + 4], 1
mov dword [eax], edi
jmp case.0x445c9d.2
mov dword [eax], ebp
mov dword [eax + 4], edi
jmp case.0x445c9d.2
mov edx, dword [esi + 0x10]
mov ebp, dword [edx + 0x1c]
jmp 0x445db1
mov edx, dword [esi + 0x10]
mov edi, dword [edx + 0x1c]
jmp 0x445da0
mov eax, ebx
call fcn.0043ae00
jmp 0x4456de
mov dword [esp + 4], 0x88
mov dword [esp], edi
call fcn.0044ac90
mov dword [esp + 0x18], eax
test eax, eax
je 0x446467
mov edi, dword [esp + 0x1c]
mov dword [edi + 4], 0x88
mov dword [edi], eax
jmp 0x44541d
xor ebx, ebx
mov eax, 1
jmp 0x4454a9
test eax, eax
je 0x446471
lea eax, [esp + 0x40]
xor ecx, ecx
xor edx, edx
mov dword [esp + 0x44], 0
mov dword [esp], eax
mov dword [esp + 0x14], eax
mov eax, esi
mov dword [esp + 0x40], 0
mov byte [esp + 0x44], 2
call fcn.00439f80
mov edi, eax
jmp 0x44577d
mov eax, dword [esp + 0x18]
mov dword [esp + 0x34], 0xc
mov dword [eax + 0x34], 0
jmp 0x445a44
movzx edx, byte [esp + 0x10]
cmp byte [ebx], 0
cmovs edx, eax
mov byte [esp + 0x10], dl
add edi, 1
add ebx, 8
cmp edi, ecx
jne 0x446206
mov ecx, ebp
or byte [esp + 0x10], cl
lea eax, [esi + edi*8]
jne 0x4463c5
jmp 0x446487
cmp dl, 5
jne 0x4463ba
mov byte [esi + 4], 7
add esi, 8
cmp eax, esi
je 0x446481
movzx edx, byte [esi + 4]
cmp dl, 1
jne 0x4463b1
cmp byte [esi], 0
jns 0x4463ba
and byte [esi + 6], 0xdf
jmp 0x4463ba
mov edx, dword [ebx]
cmp edx, 0x40
je case.0x446214.2
ja 0x44644a
sub edx, 0x10
and edx, 0xffffffef
jne case.0x446214.6
jmp case.0x446214.2
mov edx, dword [ebx]
mov byte [esp + 0x24], al
mov dword [esp + 0x20], edx
mov edx, 4
mov eax, dword [esp + 0x20]
mov eax, dword [eax + edx*4]
test eax, eax
jne case.0x446214.6
add edx, 1
cmp edx, 8
jne 0x446406
movzx eax, byte [esp + 0x24]
jmp case.0x446214.2
mov ebp, eax
jmp case.0x446214.2
mov dword [ebp + 4], 0
mov dword [ebp], 0
jmp 0x445f44
mov dword [esp + 0x24], eax
jmp 0x4460e2
cmp edx, 0x80
je case.0x446214.2
jmp case.0x446214.6
mov edx, eax
jmp 0x4456d6
mov eax, 0xc
jmp 0x445a31
mov eax, dword [esp + 0x18]
mov dword [eax + 0x34], 0
jmp 0x445a44
mov eax, ebp
mov byte [esp + 0x10], al
mov edi, dword [esp + 0x18]
mov ebp, dword [edi + 0x4c]
movzx ebx, byte [edi + 0x58]
mov dword [edi + 0x5c], 1
test ebp, ebp
mov edx, ebx
setg al
or al, byte [esp + 0x10]
and edx, 0xfffffff9
mov byte [esp + 0x10], bl
add eax, eax
and eax, 6
or eax, edx
mov byte [edi + 0x58], al
jmp case.0x446214.6