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

Disassembly:
push ebp
sub esp, 0x70
mov eax, 0x56cee5
call fcn.00566e38
sub esp, 0x248
and dword [ebp - 0xcc], 0
push ebx
mov ebx, ecx
push esi
push edi
mov dword [ebp + 0x68], ebx
mov ecx, dword [ebx]
test ecx, ecx
je 0x42f83f
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
xor eax, eax
mov dword [ebx], eax
mov ecx, dword [ebx + 8]
test ecx, ecx
je 0x42f851
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
xor eax, eax
mov dword [ebx + 8], eax
mov ecx, dword [ebx + 0xc]
test ecx, ecx
je 0x42f863
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
xor eax, eax
mov dword [ebx + 0xc], eax
lea ecx, [ebx + 0x78]
call fcn.0042db45
or dword [ebx + 0x84], 0xffffffff
lea edx, [ebx + 0x18]
xor eax, eax
lea ecx, [ebp - 0x154]
mov byte [ebx + 0x10], al
mov dword [ebx + 0xd8], eax
mov dword [ebx + 0xdc], eax
call fcn.0040656a
xor eax, eax
lea ecx, [ebp - 0x98]
mov dword [ebp - 4], eax
call fcn.004025e6
xor eax, eax
lea ecx, [ebp - 0x154]
inc eax
push 0x2e
mov dword [ebp - 0xd0], eax
mov byte [ebp - 4], al
call fcn.004039a5
test eax, eax
js 0x42f8d6
mov ecx, dword [ebp - 0x154]
add ecx, 2
lea eax, [ecx + eax*2]
push eax
lea ecx, [ebp - 0x98]
call fcn.004027d6
xor eax, eax
mov dword [ebp + 0x20], eax
mov dword [ebp + 0x24], eax
mov dword [ebp + 0x28], eax
mov edi, dword [ebp + 0x7c]
lea ecx, [ebp - 0x44]
mov byte [ebp + 0x73], al
mov byte [ebp - 4], 2
mov eax, dword [edi]
push dword [eax + 0xc]
call fcn.00406f89
mov eax, dword [edi]
xor edx, edx
mov esi, dword [ebp - 0x44]
mov ecx, edx
mov byte [ebp - 4], 3
cmp dword [eax + 0xc], edx
jbe 0x42f915
mov byte [ecx + esi], dl
inc ecx
mov eax, dword [edi]
cmp ecx, dword [eax + 0xc]
jb 0x42f90a
cmp byte [edi + 0x1e], dl
je 0x42f928
mov ecx, dword [edi + 0x20]
mov dword [ebp - 0x74], ecx
mov ecx, dword [edi + 0x24]
mov dword [ebp - 0x70], ecx
jmp 0x42f932
mov dword [ebp - 0x74], 0x800000
mov dword [ebp - 0x70], edx
mov eax, dword [edi + 8]
mov byte [ebp - 0x60], dl
mov dword [ebp - 0x2c], eax
test eax, eax
js 0x42f961
push eax
lea ecx, [ebp + 0x20]
call fcn.00406b7d
mov eax, dword [ebp - 0x2c]
xor ecx, ecx
inc ecx
mov dword [ebp + 0x6c], ecx
mov byte [ebp + 0x73], cl
mov byte [eax + esi], cl
mov al, cl
mov esi, dword [ebp + 0x7c]
jmp 0x42fdd1
mov eax, dword [ebp - 0x98]
mov ecx, edx
mov byte [ebp + 0x4c], dl
mov byte [ebp + 0x71], dl
mov byte [ebp + 0x5f], dl
movzx edx, word [eax]
mov dword [ebp + 0x58], 0x7a
mov dword [ebp + 0x6c], ecx
mov dword [ebp - 0x14], 0x5a
mov dword [ebp - 0x50], 0x72
mov dword [ebp - 0x18], 0x52
cmp dx, word [ebp + 0x58]
je 0x42f9ac
cmp dx, word [ebp - 0x14]
je 0x42f9ac
cmp dx, word [ebp - 0x50]
je 0x42f9ac
cmp dx, word [ebp - 0x18]
jne 0x42f9ee
add eax, 2
mov dword [ebp + 0x2c], eax
movzx eax, word [eax]
test ax, ax
je 0x42f9ee
add eax, 0xffffffd0
cmp ax, 9
ja 0x42f9ee
mov eax, dword [ebp + 0x2c]
add eax, 2
mov dword [ebp + 0x2c], eax
movzx eax, word [eax]
test ax, ax
jne 0x42f9ba
cmp dx, word [ebp + 0x58]
je 0x42f9e8
cmp dx, word [ebp - 0x14]
je 0x42f9e8
xor eax, eax
inc eax
mov byte [ebp + 0x5f], al
jmp 0x42f9ee
xor eax, eax
inc eax
mov byte [ebp + 0x71], al
xor eax, eax
mov edx, eax
mov dword [ebp + 0x40], eax
mov eax, dword [edi]
cmp dword [eax + 0xc], ecx
jbe 0x42fac0
cmp byte [ebx + 0x17], 0
mov eax, dword [eax + 8]
mov eax, dword [eax + edx*4]
mov dword [ebp + 0x50], eax
jne 0x42fa15
cmp byte [edi + 0x19], 0
jne 0x42fa2d
mov ecx, dword [eax + 0x10]
mov edx, str.Split
call fcn.00403e24
mov edx, dword [ebp + 0x40]
test al, al
jne 0x42faae
mov ecx, dword [edi + 0x2c]
xor eax, eax
push dword [ecx + 4]
push eax
push edx
call fcn.0042e24b
test eax, eax
jns 0x42faab
mov ecx, dword [ebp + 0x50]
call fcn.0042ef09
mov ecx, dword [ebp + 0x4c]
test al, al
push 1
pop eax
movzx ecx, cl
cmovne ecx, eax
lea eax, [ebp - 0x98]
mov dword [ebp + 0x4c], ecx
mov ecx, dword [ebp + 0x50]
push eax
call fcn.0042ca74
test eax, eax
jns 0x42fada
cmp byte [ebp + 0x71], 0
je 0x42fa86
mov eax, dword [ebp + 0x50]
mov edx, 0x57b1b0
mov ecx, dword [eax + 0x10]
call fcn.00403e24
test al, al
jne 0x42fada
cmp byte [ebp + 0x5f], 0
je 0x42faa0
mov eax, dword [ebp + 0x50]
mov edx, 0x57b040
mov ecx, dword [eax + 0x10]
call fcn.00403e24
test al, al
jne 0x42fada
push dword [ebp + 0x40]
lea ecx, [ebp + 0x20]
call fcn.00406b7d
mov edx, dword [ebp + 0x40]
mov ecx, dword [ebp + 0x6c]
mov eax, dword [edi]
inc edx
mov dword [ebp + 0x40], edx
cmp edx, dword [eax + 0xc]
jb 0x42fa00
mov esi, dword [ebp + 0x7c]
cmp dword [esi + 0x30], 0
jne 0x42fb02
xor eax, eax
inc eax
cmp ecx, eax
je 0x42fafa
mov ebx, 0x80004001
jmp 0x431754
push dword [ebp + 0x40]
lea ecx, [ebp + 0x20]
push dword [ebp + 0x6c]
call fcn.00414bd7
mov ecx, dword [ebp + 0x6c]
xor eax, eax
mov edx, dword [ebp + 0x40]
inc ecx
inc eax
mov dword [ebp + 0x6c], ecx
mov byte [edx + esi], al
jmp 0x42fab1
mov dword [ebp + 0x24], eax
jmp 0x42fd61
cmp dword [ebp + 0x24], 2
jb 0x42fdb5
mov ecx, dword [esi + 0x30]
call fcn.004149ee
mov ebx, eax
test ebx, ebx
jne 0x431754
mov edi, ebx
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x38], ebx
mov dword [ebp - 0x34], ebx
mov dword [ebp - 0x30], ebx
mov byte [ebp - 4], 5
cmp dword [ebp + 0x6c], eax
je 0x42fd18
mov ecx, dword [ebp - 0x98]
mov edx, 0x57b024
call fcn.00403e24
test al, al
jne 0x42fd18
mov ecx, dword [ebp - 0x98]
mov edx, 0x57b2b4
call fcn.00403eb1
test al, al
jne 0x42fc37
mov ecx, dword [ebp - 0x98]
mov edx, 0x57b2b8
call fcn.00403eb1
test al, al
jne 0x42fc37
xor eax, eax
mov ebx, 0x400
push ebx
mov dword [ebp - 0x1c], eax
call fcn.00566e05
mov edi, eax
mov dword [ebp - 0x1c], ebx
pop ecx
mov ecx, dword [esi + 0x30]
lea eax, [ebp + 0x60]
push eax
mov edx, edi
mov dword [ebp - 0x20], edi
mov dword [ebp + 0x60], ebx
call fcn.004149fb
mov ebx, eax
test ebx, ebx
jne 0x42fc8c
cmp dword [ebp + 0x60], eax
jne 0x42fbc5
lea ebx, [eax + 1]
jmp 0x42fc8c
mov ebx, dword [ebp + 0x6c]
mov ecx, eax
mov dword [ebp + 0x2c], ecx
test ebx, ebx
je 0x42fc0e
mov eax, dword [ebp + 0x20]
mov edx, dword [eax + ecx*4]
test edx, edx
js 0x42fc04
mov eax, dword [esi]
mov eax, dword [eax + 8]
mov eax, dword [eax + edx*4]
mov eax, dword [eax]
shr eax, 8
test al, 1
je 0x42fc01
push edx
lea ecx, [ebp - 0x38]
call fcn.00406b7d
mov ecx, dword [ebp + 0x2c]
mov eax, dword [ebp + 0x20]
or dword [eax + ecx*4], 0xffffffff
jmp 0x42fc04
mov eax, dword [ebp + 0x20]
inc ecx
mov dword [ebp + 0x2c], ecx
cmp ecx, ebx
jb 0x42fbd4
xor eax, eax
mov ecx, dword [esi]
lea edx, [ebp + 0x20]
push eax
push eax
lea eax, [ebp - 0x38]
push eax
push ebx
call fcn.0042ef8e
push dword [ebp + 0x60]
mov ecx, dword [esi]
lea eax, [ebp - 0x38]
push edi
push eax
push ebx
lea edx, [ebp + 0x20]
call fcn.0042ef8e
jmp 0x42fd16
sub esp, 0xc
lea eax, [ebp + 0x20]
mov ecx, esp
push eax
call fcn.0042ce1e
mov ecx, dword [esi]
mov edx, 0x57b040
call fcn.0042e1fb
mov dword [ebp + 0x58], eax
test eax, eax
js 0x42fd18
xor eax, eax
mov ebx, 0x400
push ebx
mov dword [ebp - 0x1c], eax
call fcn.00566e05
mov edi, eax
mov dword [ebp - 0x1c], ebx
pop ecx
mov ecx, dword [esi + 0x30]
lea eax, [ebp + 0x2c]
push eax
mov edx, edi
mov dword [ebp - 0x20], edi
mov dword [ebp + 0x2c], ebx
call fcn.004149fb
mov ebx, eax
test ebx, ebx
je 0x42fca0
xor eax, eax
push eax
call fcn.00566e0e
push edi
call fcn.00566e0e
pop ecx
jmp 0x431753
cmp dword [ebp + 0x2c], 0x10
jb 0x42fd16
mov eax, dword [ebp - 0x18]
lea ebx, [ebp - 0x88]
mov byte [ebp - 0x88], al
mov ecx, edi
mov eax, dword [ebp - 0x50]
mov byte [ebp - 0x86], al
xor eax, eax
mov byte [ebp - 0x87], 0x61
mov edx, eax
mov dword [ebp - 0x85], 0x71a21
sub ebx, edi
mov al, byte [ecx]
cmp al, byte [ebx + ecx]
jne 0x42fd16
inc edx
inc ecx
cmp edx, 7
jb 0x42fcd7
cmp byte [edi + 9], 0x73
jne 0x42fd16
xor eax, eax
inc eax
test byte [edi + 0xa], al
je 0x42fd16
mov eax, dword [ebp + 0x58]
lea ecx, [ebp - 0x38]
mov ebx, dword [ebp + 0x20]
push dword [ebx + eax*4]
call fcn.00406b7d
mov eax, dword [ebp + 0x58]
or dword [ebx + eax*4], 0xffffffff
mov ebx, dword [ebp + 0x6c]
cmp eax, ebx
jl 0x42fd16
inc ebx
mov dword [ebp + 0x6c], ebx
xor ebx, ebx
mov eax, dword [ebp + 0x24]
test eax, eax
je 0x42fd3e
mov esi, dword [ebp + 0x20]
cmp dword [esi + ebx*4], 0xffffffff
je 0x42fd36
push dword [esi + ebx*4]
lea ecx, [ebp - 0x38]
call fcn.00406b7d
mov eax, dword [ebp + 0x24]
inc ebx
cmp ebx, eax
jb 0x42fd22
mov esi, dword [ebp + 0x7c]
lea eax, [ebp - 0x38]
push eax
lea ecx, [ebp + 0x20]
call fcn.0042d4d4
push dword [ebp - 0x38]
call fcn.00566e0e
push edi
mov byte [ebp - 4], 3
call fcn.00566e0e
mov eax, dword [ebp + 0x24]
pop ecx
pop ecx
cmp eax, 2
jb 0x42fdb5
sub esp, 0xc
lea eax, [ebp + 0x20]
mov ecx, esp
push eax
call fcn.0042ce1e
mov ecx, dword [esi]
mov edx, 0x57b2bc
call fcn.0042e1fb
sub esp, 0xc
mov edi, eax
lea eax, [ebp + 0x20]
mov ecx, esp
push eax
call fcn.0042ce1e
mov ecx, dword [esi]
mov edx, 0x57b2c0
call fcn.0042e1fb
mov edx, eax
cmp edx, edi
jle 0x42fdb5
test edi, edi
js 0x42fdb5
mov ebx, dword [ebp + 0x20]
mov ecx, dword [ebx + edi*4]
mov eax, dword [ebx + edx*4]
mov dword [ebx + edx*4], ecx
mov dword [ebx + edi*4], eax
cmp dword [ebp + 0x6c], 0
je 0x42fdc8
cmp byte [ebp + 0x4c], 0
jne 0x42fdc8
xor eax, eax
mov byte [ebp - 0x60], al
jmp 0x42fdd1
xor eax, eax
inc eax
mov byte [ebp - 0x60], al
mov al, byte [ebp + 0x73]
mov edi, dword [esi + 0x30]
xorps xmm0, xmm0
mov byte [ebp - 0x50], al
movlpd qword [ebp + 8], xmm0
test edi, edi
je 0x42fe08
mov ecx, edi
call fcn.004149ee
mov ebx, eax
test ebx, ebx
jne 0x431754
lea edx, [ebp + 8]
mov ecx, edi
call fcn.004148b1
mov ebx, eax
test ebx, ebx
jne 0x431754
mov ebx, dword [ebp + 0x68]
mov eax, dword [ebp + 8]
mov ecx, dword [ebp + 0xc]
mov dword [ebx + 0x6c], ecx
lea ecx, [ebp + 0x40]
mov dword [ebx + 0x68], eax
mov eax, dword [esi]
push dword [eax + 0xc]
call fcn.00406f89
mov eax, dword [esi]
xor edx, edx
mov edi, dword [ebp + 0x40]
mov ecx, edx
mov byte [ebp - 4], 6
cmp dword [eax + 0xc], edx
jbe 0x42fe41
mov byte [ecx + edi], dl
inc ecx
mov eax, dword [esi]
cmp ecx, dword [eax + 0xc]
jb 0x42fe36
lea ecx, [esi + 8]
mov dword [ebp + 0x54], ecx
cmp byte [ecx + 0x11], dl
je 0x430192
cmp dword [ebp - 0x2c], edx
mov ecx, dword [ebp + 0x24]
mov edx, dword [ebp + 0x6c]
cmovge ecx, edx
xor eax, eax
mov dword [ebp - 0x6c], ecx
mov dword [ebp + 0x50], eax
test ecx, ecx
je 0x43018d
mov ecx, dword [ebp + 0x20]
mov ecx, dword [ecx + eax*4]
xor eax, eax
mov dword [ebx + 0x3c], ecx
mov byte [ebp + 0x72], al
mov eax, dword [esi]
mov eax, dword [eax + 8]
mov eax, dword [eax + ecx*4]
mov dword [ebp + 0x58], eax
cmp dword [ebp + 0x50], edx
jb 0x42fe9d
mov eax, dword [eax]
xor ecx, ecx
shr eax, 8
inc ecx
test cl, al
je 0x43017d
mov byte [ebp + 0x72], cl
mov ecx, dword [esi + 0x38]
test ecx, ecx
je 0x42febb
mov eax, dword [ecx]
lea edx, [ebp + 8]
push edx
xor edx, edx
push edx
push ecx
call dword [eax + 0xc]
mov ebx, eax
test ebx, ebx
jne 0x43174b
mov ecx, dword [esi + 0x30]
test ecx, ecx
je 0x42fed1
call fcn.004149ee
mov ebx, eax
test ebx, ebx
jne 0x43174b
xor eax, eax
mov dword [ebp + 0x4c], eax
lea eax, [ebp + 0x4c]
mov byte [ebp - 4], 7
push eax
mov eax, dword [ebp + 0x68]
mov ecx, eax
push dword [eax + 0x3c]
push esi
call fcn.00431dea
mov esi, dword [ebp + 0x4c]
mov ebx, eax
test ebx, ebx
jne 0x4301ea
test esi, esi
jne 0x42ff05
mov ebx, dword [ebp + 0x68]
jmp 0x430173
mov ebx, dword [ebp + 0x7c]
cmp dword [ebx + 0x30], 0
je 0x42ff53
cmp byte [ebp + 0x72], 0
jne 0x42ff22
cmp byte [ebp + 0x73], 0
je 0x42ff22
mov eax, dword [ebp - 0x74]
mov ecx, dword [ebp - 0x70]
jmp 0x42ff30
xorps xmm0, xmm0
movlpd qword [ebp - 0x20], xmm0
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x20]
push dword [ebx + 0x38]
mov dword [ebp - 0xd4], ecx
lea ecx, [ebp - 0xd8]
push ecx
push dword [ebx + 0x30]
mov dword [ebp - 0xd8], eax
mov eax, dword [esi]
push esi
call dword [eax + 0xc]
mov ebx, eax
jmp 0x42ff95
xor eax, eax
mov dword [ebp + 0x60], eax
mov eax, dword [esi]
lea ecx, [ebp + 0x60]
push ecx
push 0x57d764
push esi
mov byte [ebp - 4], 0xa
call dword [eax]
mov eax, dword [ebp + 0x60]
test eax, eax
je 0x4301e5
push dword [ebx + 0x34]
mov ecx, dword [eax]
push eax
call dword [ecx + 0xc]
mov ebx, eax
mov eax, dword [ebp + 0x60]
mov byte [ebp - 4], 0xd
test eax, eax
je 0x42ff91
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov byte [ebp - 4], 7
mov ecx, dword [ebp + 0x68]
xor eax, eax
push ebx
push eax
push eax
push esi
call fcn.00432555
test eax, eax
jne 0x4301e1
xor edx, edx
inc edx
cmp ebx, edx
jne 0x43003c
mov ebx, dword [ebp + 0x68]
cmp byte [ebx + 0x7b], al
je 0x42ffca
test byte [ebx + 0x7c], dl
jne 0x42ffca
mov al, dl
mov byte [ebp + 0x71], dl
jmp 0x42ffcf
xor eax, eax
mov byte [ebp + 0x71], al
mov ecx, dword [ebp + 0x54]
cmp byte [ecx + 0x12], 0
je 0x42ffdc
test al, al
jne 0x42ffe2
mov eax, dword [ebx + 0x3c]
mov byte [edi + eax], dl
cmp byte [ebp + 0x72], 0
je 0x42fff1
mov byte [ebp - 4], 0xf
jmp 0x43016d
cmp dword [ebp + 0x50], 0
jne 0x430033
cmp dword [ebp + 0x6c], edx
jne 0x430033
mov eax, dword [ebx + 0x3c]
lea ecx, [ebx + 0xa8]
mov dword [ebx + 0x84], eax
lea eax, [ebx + 0x78]
push eax
call fcn.0042d538
mov eax, dword [ebp + 0x54]
cmp byte [eax + 0x12], 0
jne 0x430033
cmp byte [ebp + 0x71], 0
je 0x430033
mov ecx, dword [ebp + 0x58]
call fcn.0042ef09
test al, al
je 0x4301c4
mov byte [ebp - 4], 0x11
jmp 0x43016d
test ebx, ebx
jne 0x4301ea
mov ebx, dword [ebp + 0x68]
mov eax, dword [ebp - 0x44]
push dword [ebp - 0x60]
mov ecx, dword [ebx + 0x3c]
mov al, byte [eax + ecx]
mov ecx, dword [ebp + 0x54]
mov byte [ebp + 0x18], al
push dword [ebp + 0x18]
push dword [ebp - 0x50]
call fcn.0042edc1
mov cl, byte [ebx + 0x78]
mov edx, eax
mov dword [ebp - 0x48], edx
mov dword [ebp - 0x10], ecx
test cl, cl
je 0x4300b0
mov eax, dword [ebp + 0x54]
cmp byte [eax + 0x15], 0
je 0x4300b0
mov ecx, dword [ebx + 0x58]
add ecx, dword [ebx + 0x50]
mov eax, dword [ebx + 0x5c]
adc eax, dword [ebx + 0x54]
push eax
push ecx
push dword [ebp + 0x7c]
mov ecx, ebx
call fcn.0042da69
mov ebx, eax
test ebx, ebx
jne 0x4301ea
mov ebx, dword [ebp + 0x68]
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebp - 0x48]
movzx ecx, cl
cmp byte [ebx + 0x7a], al
cmovne ecx, eax
lea eax, [ebx + 0x50]
mov edi, dword [eax]
mov dword [ebp + 0x60], edi
mov edi, dword [eax + 4]
test edi, edi
mov dword [ebp + 0x2c], edi
mov edi, dword [ebp + 0x40]
jl 0x43011e
jg 0x4300cd
cmp dword [ebp + 0x60], 0
jbe 0x43011e
cmp byte [ebp + 0x72], 0
jne 0x430118
cmp byte [ebp + 0x73], 0
je 0x430118
cmp byte [edx + 1], 0
jne 0x4300e8
cmp byte [edx + 2], 0
je 0x430118
lea eax, [ebx + 0x50]
mov esi, dword [ebp + 0x54]
cmp byte [esi + 0x16], 0
mov esi, dword [ebp + 0x4c]
je 0x43011e
mov edi, dword [ebp + 0x54]
mov ebx, dword [ebp + 0x2c]
cmp ebx, dword [edi + 0x1c]
mov edi, dword [ebp + 0x40]
mov ebx, dword [ebp + 0x68]
jb 0x43011e
ja 0x430118
mov ebx, dword [ebp + 0x54]
mov edi, dword [ebp + 0x60]
cmp edi, dword [ebx + 0x18]
mov edi, dword [ebp + 0x40]
mov ebx, dword [ebp + 0x68]
jbe 0x43011e
mov byte [ebp - 4], 0x14
jmp 0x43016d
test cl, cl
je 0x430147
cmp dword [ebp + 0x2c], 0
jl 0x43013c
jg 0x430130
cmp dword [ebp + 0x60], 0
jbe 0x43013c
cmp byte [edx + 2], 0
jne 0x430147
mov byte [ebp - 4], 0x15
jmp 0x43016d
cmp byte [edx], 0
jne 0x430147
mov byte [ebp - 4], 0x16
jmp 0x43016d
xor edx, edx
cmp dword [eax + 4], edx
jg 0x430158
jl 0x430154
cmp dword [eax], edx
ja 0x430158
test cl, cl
je 0x4301cb
cmp dword [ebp - 0x2c], edx
jge 0x4301cb
mov ecx, dword [ebp + 0x58]
call fcn.0042ef09
test al, al
je 0x4301cb
mov byte [ebp - 4], 0x17
mov eax, dword [esi]
push esi
call dword [eax + 8]
mov esi, dword [ebp + 0x7c]
mov edx, dword [ebp + 0x6c]
mov byte [ebp - 4], 6
mov eax, dword [ebp + 0x50]
inc eax
mov dword [ebp + 0x50], eax
cmp eax, dword [ebp - 0x6c]
jb 0x42fe6c
xor edx, edx
lea ecx, [esi + 8]
cmp dword [esi + 0x30], edx
je 0x4301ba
mov edx, dword [ebp - 0x2c]
test edx, edx
js 0x430231
cmp byte [ecx + 0x12], 0
jne 0x430231
cmp byte [ecx + 0x16], 0
je 0x4301fe
mov eax, dword [ecx + 0x18]
or eax, dword [ecx + 0x1c]
jne 0x430231
xor eax, eax
lea ebx, [eax + 1]
jmp 0x43174b
xor eax, eax
lea ebx, [eax + 1]
jmp 0x4301ea
mov eax, dword [esi]
push esi
call dword [eax + 4]
mov ecx, dword [ebx]
test ecx, ecx
je 0x4301dd
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov dword [ebx], esi
xor eax, eax
mov ebx, eax
jmp 0x4301ea
mov ebx, 0x80004001
mov byte [ebp - 4], 0x18
test esi, esi
je 0x43174b
mov eax, dword [esi]
push esi
jmp 0x431748
mov eax, dword [esi]
mov eax, dword [eax + 8]
mov ebx, dword [eax + edx*4]
lea eax, [ebp - 0x98]
push eax
mov ecx, ebx
call fcn.0042ca74
test eax, eax
js 0x430231
mov eax, dword [ebx]
xor ecx, ecx
shr eax, 3
inc ecx
test cl, al
je 0x430231
cmp byte [ebp + 0x73], 0
je 0x430231
mov ebx, ecx
jmp 0x43174b
push 0x28
call fcn.00566d2f
pop ecx
mov ecx, eax
mov dword [ebp - 0x58], eax
call fcn.0042d12d
mov dword [ebp + 0x38], eax
test eax, eax
je 0x430250
mov ecx, dword [eax]
push eax
call dword [ecx + 4]
push 0x20
mov byte [ebp - 4], 0x19
call fcn.00566d2f
mov ebx, eax
xor eax, eax
mov dword [ebp + 0x2c], ebx
pop ecx
push ebx
mov dword [ebx + 8], eax
mov dword [ebx], 0x57b284
mov dword [ebx + 4], 0x57b2a4
mov dword [ebx + 0xc], eax
mov dword [ebp - 0xd4], ebx
call dword [0x57b288]
push dword [esi + 0x38]
mov ecx, ebx
mov byte [ebp - 4], 0x1a
call fcn.0042ee72
xor ecx, ecx
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x1c], ecx
mov edx, 0x100000
mov byte [ebp - 4], 0x1b
mov eax, edx
mov byte [ebp + 0x71], cl
mov dword [ebp + 0x60], eax
cmp dword [ebp + 0xc], ecx
ja 0x4302c2
jb 0x4302b6
cmp dword [ebp + 8], edx
jae 0x4302c2
mov eax, dword [ebp + 8]
xor ecx, ecx
inc ecx
mov dword [ebp + 0x60], eax
mov byte [ebp + 0x71], cl
push eax
lea ecx, [ebp - 0x20]
call fcn.00405117
mov ecx, dword [esi + 0x30]
call fcn.004149ee
mov ebx, eax
test ebx, ebx
jne 0x43078e
mov eax, dword [ebp + 0x60]
mov edx, dword [ebp - 0x20]
mov ecx, dword [esi + 0x30]
mov dword [ebp + 0x50], eax
lea eax, [ebp + 0x50]
push eax
call fcn.004149fb
mov ebx, eax
test ebx, ebx
jne 0x43078e
mov eax, dword [ebp + 0x50]
test eax, eax
jne 0x43030b
lea ebx, [eax + 1]
jmp 0x43078e
cmp eax, dword [ebp + 0x60]
movzx ecx, byte [ebp + 0x71]
push 1
pop eax
cmovb ecx, eax
xor ebx, ebx
mov dword [ebp + 0x58], ecx
mov eax, ebx
mov ecx, ebx
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0x30], ebx
or edx, 0xffffffff
mov byte [ebp - 4], 0x22
mov dword [ebp + 0x48], edx
mov dword [ebp + 0x4c], ebx
cmp dword [ebp + 0x24], ebx
jbe 0x4304bc
mov eax, dword [ebp + 0x24]
mov edx, dword [ebp + 0x20]
mov ecx, dword [edx + ecx*4]
mov dword [ebp + 4], ecx
cmp byte [ecx + edi], 0
jne 0x430496
mov eax, dword [esi]
mov edx, str.Split
mov eax, dword [eax + 8]
mov ebx, dword [eax + ecx*4]
mov ecx, dword [ebx + 0x10]
call fcn.00403e24
test al, al
je 0x43037f
mov edx, dword [ebp + 4]
xor ebx, ebx
mov eax, dword [ebp + 0x24]
mov dword [ebp + 0x48], edx
jmp 0x430499
mov eax, dword [ebx]
xor ecx, ecx
shr eax, 0xc
inc ecx
test cl, al
jne 0x430491
mov eax, dword [ebx + 0xc]
test eax, eax
je 0x4303c8
push dword [ebp + 0x50]
push dword [ebp - 0x20]
call eax
test eax, eax
je 0x430491
cmp eax, 2
jne 0x4303b5
cmp byte [ebp + 0x58], 0
jne 0x430491
push dword [ebp + 4]
xor ebx, ebx
lea ecx, [ebp - 0x38]
push ebx
call fcn.00414bd7
jmp 0x430493
cmp byte [ebx + 0x2d], 0
je 0x4303d2
mov dl, cl
jmp 0x4303e7
push 0xa
mov edx, 0x57b060
lea ecx, [ebx + 0x10]
call fcn.0042eed9
mov dl, al
test dl, dl
je 0x430417
xor ecx, ecx
cmp dword [ebx + 0x38], ecx
je 0x430419
mov ecx, dword [ebx]
mov eax, ecx
shr eax, 7
test al, 1
jne 0x430417
mov eax, ecx
shr eax, 6
test al, 1
jne 0x430417
xor eax, eax
shr ecx, 8
inc eax
test al, cl
jne 0x430413
xor ecx, ecx
mov byte [ebp + 0x72], cl
jmp 0x430423
xor ecx, ecx
jmp 0x43041c
xor ecx, ecx
xor eax, eax
inc eax
mov byte [ebp + 0x72], al
test dl, dl
je 0x430486
mov eax, dword [ebx + 0x38]
test eax, eax
je 0x430480
mov edi, dword [ebx + 0x34]
mov esi, dword [ebx + 0x30]
mov dword [ebp + 0x60], ecx
mov eax, dword [edi]
mov edx, dword [eax + 4]
lea eax, [esi + edx]
cmp dword [ebp + 0x50], eax
jae 0x43044e
cmp byte [ebp + 0x58], 0
jne 0x430465
xor eax, eax
inc eax
mov byte [ebp + 0x72], al
jmp 0x430465
mov ecx, dword [edi]
push edx
mov edx, dword [ebp - 0x20]
mov ecx, dword [ecx]
lea edx, [esi + edx]
call fcn.00432c57
mov ecx, dword [ebp + 0x60]
test al, al
jne 0x430471
inc ecx
add edi, 4
mov dword [ebp + 0x60], ecx
cmp ecx, dword [ebx + 0x38]
jb 0x430433
mov edi, dword [ebp + 0x40]
mov esi, dword [ebp + 0x7c]
cmp ecx, dword [ebx + 0x38]
jne 0x4303b5
cmp byte [ebp + 0x72], 0
je 0x430491
push dword [ebp + 4]
lea ecx, [ebp - 0x38]
call fcn.00406b7d
xor ebx, ebx
mov eax, dword [ebp + 0x24]
mov edx, dword [ebp + 0x48]
mov ecx, dword [ebp + 0x4c]
inc ecx
mov dword [ebp + 0x4c], ecx
cmp ecx, eax
jb 0x430343
test edx, edx
js 0x4304b6
push edx
push ebx
lea ecx, [ebp - 0x38]
call fcn.00414bd7
mov ecx, dword [ebp - 0x34]
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0x18], ebx
mov edx, ebx
test ecx, ecx
je 0x43079d
mov ebx, dword [ebp + 0x68]
mov ecx, dword [eax + edx*4]
mov dword [ebx + 0x3c], ecx
mov eax, dword [esi]
mov eax, dword [eax + 8]
mov eax, dword [eax + ecx*4]
mov ecx, dword [esi + 0x38]
mov dword [ebp - 0x14], eax
test ecx, ecx
je 0x4304fb
mov eax, dword [ecx]
lea edx, [ebp + 8]
push edx
xor edx, edx
push edx
push ecx
call dword [eax + 0xc]
mov ebx, eax
test ebx, ebx
jne 0x430785
mov ecx, dword [esi + 0x30]
call fcn.004149ee
mov ebx, eax
test ebx, ebx
jne 0x430785
mov dword [ebp + 0x58], eax
lea eax, [ebp + 0x58]
mov byte [ebp - 4], 0x27
push eax
mov eax, dword [ebp + 0x68]
mov ecx, eax
push dword [eax + 0x3c]
push esi
call fcn.00431dea
mov esi, dword [ebp + 0x58]
mov ebx, eax
test ebx, ebx
jne 0x430777
test esi, esi
jne 0x43053c
jmp 0x430728
mov eax, dword [ebp + 0x7c]
lea ecx, [ebp - 0x5c]
push dword [ebp + 0x2c]
xorps xmm0, xmm0
movlpd qword [ebp - 0x5c], xmm0
push dword [eax + 0x38]
push ecx
push dword [eax + 0x30]
mov eax, dword [ebp + 0x54]
mov ecx, esi
cmp byte [eax + 0x11], 0
sete dl
call fcn.0042f798
xor ecx, ecx
mov ebx, eax
inc ecx
cmp ebx, ecx
jne 0x430586
mov ebx, dword [ebp + 0x68]
mov eax, dword [ebx + 0x3c]
mov byte [edi + eax], cl
mov byte [ebp - 4], 0x2c
mov eax, dword [esi]
push esi
call dword [eax + 8]
jmp 0x43072b
test ebx, ebx
jne 0x430777
mov ecx, dword [ebp + 0x68]
xor eax, eax
push eax
push eax
push eax
push esi
call fcn.00432555
mov ebx, eax
test ebx, ebx
jne 0x430777
mov ebx, dword [ebp + 0x68]
cmp dword [ebx + 0x54], eax
jl 0x4305bb
jg 0x4305b5
cmp dword [ebx + 0x50], eax
jbe 0x4305bb
mov byte [ebp - 4], 0x33
jmp 0x43057b
lea ecx, [ebp - 0x148]
call fcn.0042d2e4
mov eax, dword [ebx + 0x50]
mov ecx, dword [ebx + 0x54]
cmp byte [ebx + 0x60], 0
mov dword [ebp - 0x148], eax
mov eax, dword [ebx + 0x70]
mov dword [ebp - 0x144], ecx
mov ecx, dword [ebx + 0x74]
mov dword [ebp - 0x140], eax
movzx eax, byte [ebp - 0xdc]
mov dword [ebp - 0x13c], ecx
push 1
pop ecx
cmove eax, ecx
mov byte [ebp - 4], 0x34
lea ecx, [ebp - 0x148]
mov byte [ebp - 0xdc], al
call fcn.0042f03d
mov edx, dword [ebp + 0x54]
cmp byte [edx + 0x11], 0
je 0x4306a2
mov ecx, dword [ebx + 0x3c]
mov eax, dword [ebp - 0x44]
push dword [ebp - 0x60]
mov al, byte [eax + ecx]
mov ecx, edx
mov byte [ebp + 0x18], al
push dword [ebp + 0x18]
push dword [ebp - 0x50]
call fcn.0042edc1
cmp byte [ebx + 0x78], 0
mov dword [ebp - 0x48], eax
je 0x430746
mov ecx, dword [ebp + 0x54]
cmp byte [ecx + 0x15], 0
je 0x430680
mov eax, dword [ebx + 0x50]
add eax, dword [ebx + 0x58]
mov ecx, dword [ebx + 0x5c]
adc ecx, dword [ebx + 0x54]
push ecx
push eax
push dword [ebp + 0x7c]
mov ecx, ebx
call fcn.0042da69
mov ebx, eax
test ebx, ebx
jne 0x43076c
mov ebx, dword [ebp + 0x68]
cmp byte [ebx + 0x7a], al
jne 0x430746
mov eax, dword [ebp - 0x48]
cmp dword [ebp - 0x2c], 0
mov al, byte [eax]
mov byte [ebp + 0x47], al
jge 0x43069a
mov ecx, dword [ebp - 0x14]
call fcn.0042ef09
test al, al
jne 0x4306a2
mov al, byte [ebp + 0x47]
test al, al
jne 0x430746
mov eax, dword [ebx + 0x3c]
xor ecx, ecx
inc ecx
mov byte [edi + eax], cl
mov eax, dword [ebp - 0x148]
or eax, dword [ebp - 0x144]
jne 0x4306ed
cmp byte [ebp - 0xdc], al
jne 0x4306ed
mov eax, dword [ebp - 0x13c]
cmp eax, dword [ebx + 0x6c]
jb 0x4306ed
ja 0x4306d9
mov eax, dword [ebp - 0x140]
cmp eax, dword [ebx + 0x68]
jb 0x4306ed
lea ecx, [ebp - 0x148]
call fcn.0042d4ac
mov byte [ebp - 4], 0x3b
jmp 0x43057b
mov edx, dword [ebp - 0x14]
lea eax, [ebp - 0x148]
push eax
mov ecx, esi
call fcn.0043277e
mov ebx, eax
test ebx, ebx
jne 0x43076c
mov ecx, dword [ebp + 0x38]
lea eax, [ebp - 0x148]
push eax
call fcn.0042d718
lea ecx, [ebp - 0x148]
call fcn.0042d4ac
mov eax, dword [esi]
push esi
mov byte [ebp - 4], 0x3f
call dword [eax + 8]
mov ebx, dword [ebp + 0x68]
mov edx, dword [ebp - 0x18]
mov esi, dword [ebp + 0x7c]
inc edx
mov byte [ebp - 4], 0x22
mov dword [ebp - 0x18], edx
cmp edx, dword [ebp - 0x34]
jae 0x43079b
mov eax, dword [ebp - 0x38]
jmp 0x4304cc
mov eax, dword [ebp + 0x7c]
lea ecx, [ebx + 4]
push dword [eax + 0x30]
call fcn.0040f64c
mov eax, dword [esi]
push esi
call dword [eax + 4]
mov ecx, dword [ebx]
test ecx, ecx
je 0x430766
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
xor eax, eax
mov dword [ebx], esi
mov ebx, eax
lea ecx, [ebp - 0x148]
call fcn.0042d4ac
mov byte [ebp - 4], 0x3c
test esi, esi
je 0x430785
mov eax, dword [esi]
push esi
call dword [eax + 8]
push dword [ebp - 0x38]
call fcn.00566e0e
pop ecx
push dword [ebp - 0x20]
call fcn.00566e0e
jmp 0x43172c
xor ebx, ebx
push dword [ebp - 0x38]
call fcn.00566e0e
push dword [ebp - 0x20]
call fcn.00566e0e
pop ecx
pop ecx
mov dword [ebp - 0xc4], ebx
mov dword [ebp - 0xc0], ebx
mov dword [ebp - 0xbc], ebx
xor edx, edx
mov dword [ebp - 0xb8], ebx
mov dword [ebp - 0xb4], ebx
mov dword [ebp - 0xb0], edx
mov eax, dword [esi]
mov ecx, edx
mov byte [ebp - 4], 0x41
mov edi, edx
mov dword [ebp + 0x60], ecx
cmp dword [eax + 0xc], edx
jbe 0x430833
push ecx
lea ecx, [ebp - 0xc4]
call fcn.00406b7d
mov eax, dword [esi]
mov ecx, dword [ebp + 0x60]
mov eax, dword [eax + 8]
mov ebx, dword [eax + edi*4]
xor eax, eax
add ecx, dword [ebx + 0x38]
mov dword [ebp + 0x60], ecx
cmp dword [ebx + 0x38], eax
jbe 0x430825
mov esi, eax
push edi
lea ecx, [ebp - 0xb8]
call fcn.00406b7d
inc esi
cmp esi, dword [ebx + 0x38]
jb 0x43080d
mov esi, dword [ebp + 0x7c]
mov ecx, dword [ebp + 0x60]
mov eax, dword [esi]
inc edi
cmp edi, dword [eax + 0xc]
jb 0x4307e7
mov ebx, dword [ebp - 0xb4]
mov edi, 0x10000
push edi
call fcn.00566e05
mov dword [ebp - 0x4c], eax
push edi
push 0xff
push eax
call sub.msvcrt.dll_memset
mov edi, 0x100
lea eax, [ebp - 0x254]
push edi
push 0xff
push eax
call sub.msvcrt.dll_memset
add esp, 0x1c
cmp ebx, 0xff
jb 0x430879
xor eax, eax
lea ebx, [eax + 1]
jmp 0x4316bf
xor ebx, ebx
mov dword [ebp - 0xa4], ebx
mov dword [ebp - 0xa0], ebx
mov dword [ebp - 0x9c], ebx
push edi
mov byte [ebp - 4], 0x45
call fcn.00566e05
mov dword [ebp + 0x60], eax
push edi
push ebx
push eax
mov byte [ebp - 4], 0x46
call sub.msvcrt.dll_memset
mov edi, dword [ebp + 0x24]
add esp, 0x10
mov edx, ebx
mov dword [ebp + 0x58], edx
test edi, edi
je 0x43096f
mov eax, dword [ebp + 0x20]
mov edx, dword [eax + edx*4]
mov dword [ebp + 0x4c], edx
test edx, edx
js 0x430960
mov eax, dword [esi]
mov eax, dword [eax + 8]
mov ecx, dword [eax + edx*4]
mov dword [ebp + 0x18], ecx
mov ebx, dword [ecx]
mov eax, ebx
shr eax, 0xc
test al, 1
jne 0x43095d
cmp byte [ecx + 0x2d], 0
je 0x430945
xor eax, eax
shr ebx, 6
inc eax
and bl, al
xor eax, eax
mov edi, eax
cmp dword [ecx + 0x38], eax
jbe 0x43093e
mov esi, edx
mov eax, dword [ecx + 0x34]
mov eax, dword [eax + edi*4]
cmp dword [eax + 4], 2
jae 0x43090c
xor eax, eax
lea ebx, [eax + 1]
jmp 0x430932
mov eax, dword [eax]
movzx edx, word [eax]
mov eax, dword [ebp - 0xc4]
mov ecx, dword [eax + esi*4]
mov eax, dword [ebp - 0x4c]
add ecx, edi
mov al, byte [edx + eax]
mov byte [ebp + ecx - 0x254], al
mov eax, dword [ebp - 0x4c]
mov byte [edx + eax], cl
mov ecx, dword [ebp + 0x18]
inc edi
cmp edi, dword [ecx + 0x38]
jb 0x4308f9
mov esi, dword [ebp + 0x7c]
mov edx, dword [ebp + 0x4c]
mov edi, dword [ebp + 0x24]
test bl, bl
je 0x43095d
push edx
lea ecx, [ebp - 0xa4]
call fcn.00406b7d
mov eax, dword [ebp + 0x4c]
xor edx, edx
mov ecx, dword [ebp + 0x60]
inc edx
mov byte [eax + ecx], dl
mov eax, dword [ebp + 0x20]
mov edx, dword [ebp + 0x58]
inc edx
mov dword [ebp + 0x58], edx
cmp edx, edi
jb 0x4308bc
mov ecx, dword [esi + 0x30]
call fcn.004149ee
mov ebx, eax
test ebx, ebx
jne 0x4316aa
push 0x48
call fcn.00566d2f
pop ecx
mov ecx, eax
push ecx
mov dword [ebp - 0x40], ecx
mov dword [ebp - 0x1c], ecx
mov dword [ecx + 4], ebx
lea eax, [ecx + 0x3c]
mov dword [ecx], 0x57b0e4
lea esi, [ecx + 8]
mov dword [esi], ebx
mov dword [ebp - 0x3c], eax
mov dword [eax], ebx
mov dword [eax + 4], ebx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebp + 0x7c]
mov ecx, esi
mov byte [ebp - 4], 0x49
push dword [eax + 0x30]
call fcn.0040f64c
mov edi, ebx
mov dword [ebp - 0x54], ebx
mov dword [ebp - 0xc8], edi
mov esi, dword [ebp + 0x7c]
mov byte [ebp - 4], 0x4a
cmp dword [esi + 0x38], ebx
je 0x430a36
push 0x30
call fcn.00566d2f
pop ecx
mov ecx, eax
mov dword [ebp - 0x58], eax
call fcn.0042d0c8
mov ebx, eax
mov dword [ebp - 0x54], ebx
test ebx, ebx
je 0x4309f9
mov ecx, dword [ebx]
push ebx
call dword [ecx + 4]
mov eax, dword [ebp + 0x7c]
lea esi, [ebx + 0x10]
mov edi, ebx
mov ecx, esi
mov dword [ebp - 0xc8], edi
push dword [eax + 0x38]
call fcn.0040f64c
mov eax, dword [esi]
lea edx, [ebx + 0x14]
push edx
push 0x57d704
push eax
mov ecx, dword [eax]
call dword [ecx]
mov eax, dword [esi]
lea edx, [ebx + 0x28]
push edx
push 0x57d804
push eax
mov ecx, dword [eax]
call dword [ecx]
mov esi, dword [ebp + 0x7c]
xor ebx, ebx
mov ecx, dword [esi + 0x38]
test ecx, ecx
je 0x430a52
mov eax, dword [ecx]
lea edx, [ebp + 8]
push edx
push ebx
push ecx
call dword [eax + 0xc]
mov ebx, eax
test ebx, ebx
jne 0x43168f
mov ecx, dword [ebp - 0x3c]
push 0x400000
call fcn.00405117
xor eax, eax
xor ecx, ecx
xorps xmm0, xmm0
mov byte [ebp + 0x72], al
inc ecx
movlpd qword [ebp - 0xac], xmm0
mov ebx, eax
mov byte [ebp + 0x73], cl
movlpd qword [ebp - 0x68], xmm0
mov dword [ebp + 0x3c], ebx
movlpd qword [ebp - 0x5c], xmm0
cmp byte [esi + 0x1c], al
jne 0x430aaa
mov eax, dword [ebp + 0x38]
cmp dword [eax + 0x10], ecx
jne 0x430aaa
mov eax, dword [eax + 0xc]
mov ecx, dword [eax]
cmp byte [ecx + 0x6c], bl
jne 0x430aaa
mov eax, dword [ecx]
or eax, dword [ecx + 4]
jne 0x430aaa
mov edx, dword [ecx + 8]
mov ecx, dword [ecx + 0xc]
jmp 0x430ab0
mov ecx, dword [ebp - 0x58]
mov edx, dword [ebp - 0x5c]
mov eax, dword [ebp - 0xa8]
mov dword [ebp - 0x48], eax
mov eax, dword [ebp - 0xac]
mov dword [ebp - 0x6c], eax
mov eax, dword [ebp - 0x64]
mov dword [ebp], eax
mov eax, dword [ebp - 0x68]
mov dword [ebp + 0x64], edx
mov dword [ebp + 0x6c], ecx
mov dword [ebp + 0x1c], eax
jmp 0x430adf
mov ebx, dword [ebp + 0x3c]
mov eax, dword [ebp + 0x1c]
mov ecx, dword [ebp + 0x6c]
sub edx, eax
mov dword [ebp + 0x18], edx
sbb ecx, dword [ebp]
cmp byte [ebp + 0x72], 0
jne 0x430c64
mov eax, 0x400000
cmp ebx, eax
jae 0x430b9c
mov edx, dword [ebp + 0x1c]
sub eax, ebx
push 0
add edx, ebx
mov dword [ebp - 0x8c], eax
mov ebx, dword [ebp]
pop eax
adc ebx, eax
mov dword [ebp + 0x18], edx
mov eax, dword [esi + 0x30]
push 0
push 0
push ebx
mov ecx, dword [eax]
push edx
push eax
mov dword [ebp - 0x10], ebx
call dword [ecx + 0x10]
mov ebx, eax
test ebx, ebx
jne 0x43168f
mov ecx, dword [esi + 0x30]
lea eax, [ebp - 0x8c]
push eax
mov eax, dword [ebp - 0x3c]
mov edx, dword [eax]
add edx, dword [ebp + 0x3c]
call fcn.004149fb
mov ebx, eax
test ebx, ebx
jne 0x43168f
mov ecx, dword [ebp - 0x8c]
test ecx, ecx
jne 0x430b7a
mov eax, dword [ebp + 0x18]
mov edx, dword [ebp + 0x64]
mov ecx, dword [ebp + 0x6c]
mov dword [ebp + 8], eax
mov eax, dword [ebp - 0x10]
mov dword [ebp + 0xc], eax
xor eax, eax
inc eax
mov byte [ebp + 0x72], al
jmp 0x4315cd
mov edx, dword [ebp - 0x40]
mov ebx, dword [ebp + 0x3c]
add ebx, ecx
mov dword [ebp + 0x3c], ebx
mov eax, dword [edx + 0x3c]
mov dword [edx + 0x30], eax
mov eax, dword [ebp + 0x1c]
mov dword [edx + 0x34], ecx
mov dword [edx + 0x38], eax
mov edx, dword [ebp + 0x64]
jmp 0x430adc
xor eax, eax
cmp eax, ecx
ja 0x430c1a
jb 0x430ba8
cmp ebx, edx
jae 0x430c1a
sub edx, ebx
sbb ecx, eax
mov dword [ebp - 0x64], ecx
jne 0x430bf9
jb 0x430bbb
cmp edx, 0x10000
ja 0x430bf9
mov ecx, dword [ebp - 0x3c]
mov esi, 0x10000
sub esi, edx
push esi
mov eax, dword [ecx]
sub eax, esi
add eax, ebx
push eax
push dword [ecx]
call sub.msvcrt.dll_memmove
mov edx, dword [ebp + 0x64]
mov ebx, esi
mov ecx, dword [ebp + 0x6c]
add esp, 0xc
mov eax, edx
mov dword [ebp + 0x3c], ebx
sub eax, esi
mov esi, ecx
mov dword [ebp + 0x1c], eax
sbb esi, 0
mov dword [ebp], esi
mov esi, dword [ebp + 0x7c]
jmp 0x430adf
mov edx, dword [ebp + 0x64]
mov ebx, eax
mov ecx, dword [ebp + 0x6c]
mov eax, edx
add eax, 0xffff0000
mov dword [ebp], ecx
mov dword [ebp + 0x3c], ebx
adc dword [ebp], 0xffffffff
mov dword [ebp + 0x1c], eax
jmp 0x430adf
sub ebx, edx
sbb eax, ecx
mov dword [ebp - 0x64], eax
jne 0x430c64
jb 0x430c2d
cmp ebx, 0x100000
jae 0x430c64
mov eax, dword [ebp - 0x3c]
lea esi, [edx - 0x10000]
mov ebx, dword [ebp + 0x3c]
sub ebx, esi
push ebx
mov ecx, dword [eax]
mov dword [ebp + 0x3c], ebx
lea eax, [ecx + esi]
push eax
push ecx
call sub.msvcrt.dll_memmove
mov eax, dword [ebp + 0x1c]
add esp, 0xc
add eax, esi
mov esi, dword [ebp + 0x7c]
mov dword [ebp + 0x1c], eax
push 0
pop ecx
adc dword [ebp], ecx
jmp 0x430b94
mov eax, dword [ebp + 0x3c]
cmp eax, edx
jbe 0x431622
xor ecx, ecx
mov byte [ebp + 0x5f], cl
test edi, edi
je 0x430cf0
mov ebx, dword [ebp - 0x54]
mov ecx, dword [ebp + 0x38]
mov esi, dword [ebp - 0x54]
mov eax, dword [ecx + 0x10]
mov dword [ebx + 0x18], eax
mov eax, ebx
xor ebx, ebx
mov dword [eax + 0x1c], ebx
mov ebx, dword [ebp + 0x64]
mov dword [eax + 0x20], ebx
mov eax, dword [ebp + 0x6c]
mov dword [esi + 0x24], eax
xor eax, eax
mov esi, dword [ebp + 0x7c]
inc eax
cmp byte [esi + 0x19], 0
je 0x430cad
cmp dword [ecx + 0x10], eax
ja 0x430cad
xor eax, eax
mov ecx, dword [ebp - 0x6c]
mov byte [ebp + 0x5f], al
add ecx, 0x800000
mov eax, dword [ebp - 0x48]
adc eax, 0
cmp dword [ebp + 0x6c], eax
jb 0x430ced
ja 0x430cca
cmp ebx, ecx
jb 0x430ced
mov eax, dword [edi]
xor ecx, ecx
push ecx
push ecx
push edi
call dword [eax + 0x10]
mov ebx, eax
test ebx, ebx
jne 0x43168f
mov eax, dword [ebp + 0x64]
mov edx, dword [ebp + 0x18]
mov dword [ebp - 0x6c], eax
mov eax, dword [ebp + 0x6c]
mov dword [ebp - 0x48], eax
mov eax, dword [ebp + 0x3c]
xor ecx, ecx
add eax, dword [ebp + 0x1c]
mov dword [ebp + 0x18], eax
adc ecx, dword [ebp]
mov dword [ebp - 0x10], ecx
cmp dword [ebp + 0xc], ecx
ja 0x430d27
jb 0x430d0a
cmp dword [ebp + 8], eax
jae 0x430d27
mov ebx, dword [ebp + 0x68]
mov eax, dword [ebp + 8]
mov ecx, dword [ebp + 0xc]
mov dword [ebx + 0x68], eax
mov eax, dword [ebp + 0x18]
mov dword [ebp + 8], eax
mov eax, dword [ebp - 0x10]
mov dword [ebx + 0x6c], ecx
mov dword [ebp + 0xc], eax
jmp 0x430d2a
mov ebx, dword [ebp + 0x68]
mov ecx, dword [ebp + 0x3c]
sub ecx, edx
mov dword [ebp - 0x64], ecx
cmp ecx, 2
jb 0x431622
cmp ecx, 0x100000
sbb eax, eax
and eax, 0xfff00002
add eax, 0x100000
sub ecx, eax
cmp byte [esi + 0x1a], 0
jne 0x430d91
mov eax, dword [ebp - 0x70]
cmp dword [ebp + 0x6c], eax
ja 0x431622
mov eax, dword [ebp - 0x74]
jb 0x430d6f
cmp dword [ebp + 0x64], eax
ja 0x431622
sub eax, dword [ebp + 0x64]
mov esi, dword [ebp + 0x7c]
mov dword [ebp + 0x58], eax
mov eax, dword [ebp - 0x70]
sbb eax, dword [ebp + 0x6c]
cmp dword [ebp - 0xcc], eax
jb 0x430d91
mov eax, dword [ebp + 0x58]
ja 0x430d8f
cmp ecx, eax
jbe 0x430d91
mov ecx, eax
mov eax, dword [ebp - 0x3c]
inc ecx
and dword [ebp - 0x10], 0
mov eax, dword [eax]
add eax, edx
add ecx, eax
mov dword [ebp - 0x7c], eax
cmp byte [ebp + 0x73], 0
jne 0x430dee
cmp eax, ecx
jae 0x430dc7
mov esi, dword [ebp - 0x4c]
mov ebx, eax
movzx eax, word [ebx]
cmp byte [eax + esi], 0xff
jne 0x430dbf
inc ebx
cmp ebx, ecx
jb 0x430db1
mov esi, dword [ebp + 0x7c]
mov eax, ebx
mov dword [ebp - 0x7c], ebx
mov ebx, eax
sub ebx, edx
mov edx, dword [ebp - 0x3c]
push 0
sub ebx, dword [edx]
mov edx, dword [ebp + 0x64]
add edx, ebx
mov dword [ebp - 0x10], ebx
pop ebx
adc dword [ebp + 0x6c], ebx
mov ebx, dword [ebp + 0x68]
mov dword [ebp + 0x64], edx
cmp eax, ecx
je 0x430ad6
jmp 0x430df1
mov edx, dword [ebp + 0x64]
movzx eax, word [eax]
xor ecx, ecx
inc ecx
mov byte [ebp + 0x47], cl
mov ecx, dword [ebp - 0x4c]
movzx ecx, byte [eax + ecx]
xor eax, eax
mov dword [ebp + 0x34], ecx
mov dword [ebp + 0x30], eax
mov byte [ebp + 0x13], al
jmp 0x430e19
mov edx, dword [ebp + 0x64]
jmp 0x430e16
mov eax, dword [ebp + 0x30]
mov ecx, dword [ebp + 0x34]
cmp byte [ebp + 0x73], 0
je 0x430e40
cmp eax, dword [ebp - 0xa0]
jae 0x430e40
mov ecx, dword [ebp - 0xa4]
inc dword [ebp + 0x30]
mov eax, dword [ecx + eax*4]
mov dword [ebp - 0x24], eax
xor eax, eax
lea edx, [eax + 1]
jmp 0x430ee5
cmp ecx, 0xff
je 0x4315a7
mov eax, dword [ebp - 0xb8]
mov esi, dword [ebp - 0xc4]
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0x24], eax
sub ecx, dword [esi + eax*4]
cmp byte [ebp + 0x73], 0
mov esi, dword [ebp + 0x34]
movzx esi, byte [ebp + esi - 0x254]
mov dword [ebp + 0x34], esi
mov esi, dword [ebp + 0x7c]
je 0x430e87
mov ebx, dword [ebp + 0x60]
cmp byte [eax + ebx], 0
mov ebx, dword [ebp + 0x68]
mov eax, dword [ebp + 0x30]
jne 0x430e16
mov eax, dword [esi]
mov ebx, dword [ebp - 0x24]
mov eax, dword [eax + 8]
mov eax, dword [eax + ebx*4]
xor ebx, ebx
cmp dword [ebp + 0x6c], ebx
mov ebx, dword [ebp + 0x68]
jb 0x430e13
ja 0x430eab
cmp edx, dword [eax + 0x30]
jb 0x430e13
mov eax, dword [eax + 0x34]
mov edx, dword [eax + ecx*4]
mov eax, dword [ebp - 0x10]
mov ecx, dword [edx + 4]
add eax, ecx
cmp eax, dword [ebp - 0x64]
mov eax, dword [ebp + 0x30]
ja 0x430e0e
mov edx, dword [edx]
push ecx
mov ecx, dword [ebp - 0x7c]
call fcn.00432c57
mov edx, dword [ebp + 0x64]
test al, al
mov ecx, dword [ebp + 0x34]
mov eax, dword [ebp + 0x30]
je 0x430e19
xor eax, eax
mov dl, al
mov eax, dword [esi]
mov ecx, dword [ebp - 0x24]
mov eax, dword [eax + 8]
mov ecx, dword [eax + ecx*4]
mov dword [ebp + 0x50], ecx
test dl, dl
je 0x430f04
mov eax, dword [ebp + 0x64]
or eax, dword [ebp + 0x6c]
jne 0x430f04
add ecx, 0x30
jmp 0x430f18
mov eax, dword [ebp + 0x64]
add ecx, 0x30
cmp dword [ecx], eax
jne 0x430f31
xor ebx, ebx
cmp ebx, dword [ebp + 0x6c]
mov ebx, dword [ebp + 0x68]
jne 0x430f31
mov eax, dword [ebp + 0x40]
mov ebx, dword [ebp - 0x24]
cmp byte [ebx + eax], 0
mov ebx, dword [ebp + 0x68]
mov eax, dword [ebp + 0x30]
jne 0x430e0e
mov eax, dword [ebp + 0x64]
mov esi, dword [ebp + 0x6c]
mov dword [ebp + 0x48], esi
mov esi, dword [ebp + 0x7c]
mov dword [ebp - 0x28], eax
test dl, dl
jne 0x430f70
mov edx, dword [ebp + 0x64]
xor eax, eax
cmp dword [ebp + 0x6c], eax
mov eax, dword [ebp + 0x30]
jb 0x430e16
ja 0x430f5c
cmp edx, dword [ecx]
jb 0x430e16
mov eax, edx
sub eax, dword [ecx]
mov ecx, dword [ebp + 0x6c]
push 0
pop edx
sbb ecx, edx
mov dword [ebp - 0x28], eax
mov dword [ebp + 0x48], ecx
jmp 0x430f73
mov ecx, dword [ebp + 0x48]
mov edx, dword [ebp + 0x50]
mov edx, dword [edx + 0xc]
test edx, edx
je 0x430fb9
cmp ecx, dword [ebp]
jb 0x430fb9
ja 0x430f89
cmp eax, dword [ebp + 0x1c]
jb 0x430fb9
mov ecx, eax
mov eax, dword [ebp + 0x3c]
sub ecx, dword [ebp + 0x1c]
cmp ecx, eax
jae 0x430fb9
sub eax, ecx
push eax
mov eax, dword [ebp - 0x3c]
mov eax, dword [eax]
add eax, ecx
push eax
call edx
test eax, eax
je 0x431171
cmp eax, 2
jne 0x430fb9
cmp byte [ebp + 0x72], 0
jne 0x431171
mov eax, dword [ebp - 0x44]
mov ecx, dword [ebp - 0x24]
push dword [ebp - 0x60]
mov al, byte [ecx + eax]
lea ecx, [esi + 8]
mov byte [ebp - 0xa8], al
push dword [ebp - 0xa8]
push dword [ebp - 0x50]
call fcn.0042edc1
mov dword [ebp + 0x4c], eax
xor eax, eax
mov dword [ebp - 0x78], eax
lea eax, [ebp - 0x78]
mov byte [ebp - 4], 0x5b
push eax
push dword [ebp - 0x24]
mov ecx, ebx
push esi
call fcn.00431dea
mov esi, dword [ebp - 0x78]
mov ebx, eax
test ebx, ebx
jne 0x431612
test esi, esi
je 0x43160d
mov eax, dword [ebp + 0x50]
xorps xmm0, xmm0
mov ecx, dword [ebp + 8]
mov ebx, dword [ebp - 0x28]
sub ecx, ebx
mov edx, dword [ebp + 0xc]
sbb edx, dword [ebp + 0x48]
mov eax, dword [eax]
shr eax, 5
movlpd qword [ebp + 0x14], xmm0
test al, 1
je 0x43107b
push dword [ebp + 0xc]
mov ecx, dword [ebp - 0x40]
xor eax, eax
push dword [ebp + 8]
push eax
push eax
call fcn.004115cc
mov ebx, eax
test ebx, ebx
jne 0x431612
mov ecx, dword [ebp - 0x40]
xor edx, edx
push edx
push edx
push dword [ebp + 0x48]
mov eax, dword [ecx]
push dword [ebp - 0x28]
push ecx
call dword [eax + 0x10]
mov ebx, eax
test ebx, ebx
jne 0x431612
mov eax, dword [ebp + 0x18]
mov ecx, dword [ebp - 0x28]
mov edx, dword [ebp + 0x48]
mov dword [ebp + 0x58], eax
mov eax, dword [ebp + 0x14]
mov dword [ebp - 0x14], eax
jmp 0x43109f
push edx
push ecx
push dword [ebp + 0x48]
mov ecx, dword [ebp - 0x40]
push ebx
call fcn.004115cc
mov ebx, eax
test ebx, ebx
jne 0x431612
mov ecx, dword [ebp - 0x28]
mov edx, dword [ebp + 0x48]
mov dword [ebp - 0x14], ecx
mov dword [ebp + 0x58], edx
xorps xmm0, xmm0
movlpd qword [ebp - 0x34], xmm0
test edi, edi
je 0x4310c4
mov ebx, dword [ebp - 0x54]
mov eax, dword [ebp + 0x38]
mov eax, dword [eax + 0x10]
mov dword [ebx + 0x18], eax
xor eax, eax
mov dword [ebx + 0x1c], eax
mov dword [ebx + 0x20], ecx
mov dword [ebx + 0x24], edx
jmp 0x4310c6
xor eax, eax
cmp byte [ebp + 0x5f], 0
mov ebx, dword [ebp + 0x2c]
mov dword [ebx + 0x10], eax
mov dword [ebx + 0x14], eax
mov dword [ebx + 0x18], ecx
mov dword [ebx + 0x1c], edx
je 0x4310df
mov eax, edi
jmp 0x4310e5
mov eax, dword [ebp + 0x7c]
mov eax, dword [eax + 0x38]
push ebx
push eax
lea eax, [ebp - 0x34]
mov ecx, esi
push eax
push dword [ebp - 0x40]
xor eax, eax
lea edx, [eax + 1]
call fcn.0042f798
mov ebx, eax
xor ecx, ecx
mov eax, dword [ebp + 0x50]
inc ecx
mov eax, dword [eax]
shr eax, 5
test cl, al
je 0x43111b
xorps xmm0, xmm0
movlpd qword [ebp + 0x14], xmm0
mov eax, dword [ebp + 0x18]
mov ecx, dword [ebp + 0x14]
jmp 0x431121
mov ecx, dword [ebp - 0x28]
mov eax, dword [ebp + 0x48]
push ebx
push eax
push ecx
mov ecx, dword [ebp + 0x68]
push esi
call fcn.00432555
test eax, eax
jne 0x431609
xor edx, edx
mov byte [ebp + 0x71], al
inc edx
cmp ebx, edx
jne 0x431198
mov eax, dword [ebp + 0x54]
mov ebx, dword [ebp + 0x68]
cmp byte [eax + 0x12], 0
jne 0x431179
cmp dword [ebp - 0x2c], 0
jge 0x431160
cmp byte [ebx + 0x7b], 0
je 0x431160
test byte [ebx + 0x7c], dl
je 0x4315d8
mov byte [ebp - 4], 0x7f
mov eax, dword [esi]
push esi
call dword [eax + 8]
mov esi, dword [ebp + 0x7c]
mov byte [ebp - 4], 0x4a
mov edx, dword [ebp + 0x64]
jmp 0x430e13
cmp byte [ebx + 0x7b], 0
je 0x431192
test byte [ebx + 0x7c], dl
jne 0x431192
cmp byte [ebx + 0x60], 0
je 0x431192
mov eax, dword [ebx + 0x58]
or eax, dword [ebx + 0x5c]
jne 0x4311c4
mov byte [ebp - 4], 0x80
jmp 0x431164
mov ecx, dword [ebp + 0x68]
cmp byte [ecx + 0x60], al
je 0x4311b7
mov eax, dword [ecx + 0x58]
or eax, dword [ecx + 0x5c]
jne 0x4311b7
mov eax, dword [esi]
push esi
mov byte [ebp - 4], 0x81
call dword [eax + 8]
mov ebx, dword [ebp + 0x68]
jmp 0x43116a
mov byte [ebp + 0x71], dl
test ebx, ebx
jne 0x431612
mov ebx, ecx
lea ecx, [ebp - 0x148]
call fcn.0042d2e4
mov eax, dword [ebp + 0x50]
mov ecx, dword [ebp - 0x28]
mov edx, dword [ebp + 0x48]
mov dword [ebp - 0x148], ecx
mov dword [ebp - 0x144], edx
mov eax, dword [eax]
shr eax, 5
mov byte [ebp - 4], 0x87
test al, 1
je 0x431205
mov ecx, dword [ebx + 0x50]
mov edx, dword [ebx + 0x54]
mov dword [ebp - 0x148], ecx
mov dword [ebp - 0x144], edx
jmp 0x431211
mov eax, dword [ebx + 0x50]
or eax, dword [ebx + 0x54]
jne 0x4315f7
mov eax, dword [ebx + 0x68]
mov esi, dword [ebx + 0x6c]
sub eax, ecx
mov dword [ebp - 0x80], eax
sbb esi, edx
mov dword [ebp + 4], eax
mov al, byte [ebx + 0x60]
mov dword [ebp + 0x18], esi
test al, al
mov dword [ebp - 0x18], esi
mov esi, dword [ebp - 0x78]
mov byte [ebp + 0x12], al
mov eax, dword [ebp + 4]
je 0x43126c
mov eax, dword [ebx + 0x58]
add ecx, eax
mov esi, dword [ebx + 0x5c]
adc edx, esi
mov dword [ebp - 0x18], esi
mov esi, dword [ebp - 0x78]
mov dword [ebp + 4], eax
cmp edx, dword [ebx + 0x6c]
jb 0x43126c
ja 0x431256
cmp ecx, dword [ebx + 0x68]
jbe 0x43126c
mov edx, dword [ebp - 0x80]
mov eax, edx
mov ecx, dword [ebp + 0x18]
mov dword [ebx + 0x58], edx
mov dword [ebx + 0x5c], ecx
mov dword [ebp + 4], edx
mov dword [ebp - 0x18], ecx
jmp 0x43126f
mov edx, dword [ebp - 0x80]
mov ecx, dword [ebp - 0x18]
or eax, ecx
je 0x4315f7
cmp ecx, 0x80000000
ja 0x4315f7
mov eax, dword [ebp + 4]
jb 0x431293
test eax, eax
jne 0x4315f7
cmp byte [ebp + 0x71], 0
mov byte [ebp + 0x11], 0
je 0x4312b9
cmp byte [ebp + 0x12], 0
jne 0x4312b9
mov ecx, dword [ebp + 0x18]
xor eax, eax
inc eax
mov byte [ebp - 0xdc], al
mov byte [ebp + 0x11], al
mov eax, edx
xor edx, edx
mov byte [ebp + 0x47], dl
mov dword [ebp - 0x13c], ecx
lea ecx, [ebp - 0x148]
mov dword [ebp - 0x140], eax
call fcn.0042f03d
mov eax, dword [ebp - 0x148]
or eax, dword [ebp - 0x144]
mov eax, dword [ebp - 0x13c]
mov ecx, dword [ebp - 0x140]
jne 0x43131c
cmp byte [ebp - 0xdc], 0
jne 0x43131c
cmp eax, dword [ebx + 0x6c]
jb 0x43131c
ja 0x4312ff
cmp ecx, dword [ebx + 0x68]
jb 0x43131c
mov edx, dword [ebp + 0x54]
cmp byte [edx + 0x11], 0
jne 0x43131c
lea ecx, [ebp - 0x148]
call fcn.0042d4ac
mov byte [ebp - 4], 0x92
jmp 0x431164
mov ebx, dword [ebp + 0x54]
cmp byte [ebx + 0x14], 0
jne 0x43132b
cmp byte [ebp + 0x11], 0
je 0x431339
xor eax, eax
inc eax
add dword [ebp + 0x64], eax
push 0
pop eax
adc dword [ebp + 0x6c], eax
jmp 0x43134b
add ecx, dword [ebp - 0x148]
mov dword [ebp + 0x64], ecx
adc eax, dword [ebp - 0x144]
mov dword [ebp + 0x6c], eax
mov edx, dword [ebp + 0x50]
lea eax, [ebp - 0x148]
push eax
mov ecx, esi
call fcn.0043277e
mov ebx, eax
test ebx, ebx
jne 0x4315fc
mov eax, dword [ebp + 0x48]
mov edx, dword [ebp - 0x148]
cmp dword [ebp - 0x144], eax
ja 0x4313fd
jb 0x431382
cmp edx, dword [ebp - 0x28]
jae 0x4313fd
mov eax, dword [ebp + 0x54]
xor ecx, ecx
cmp byte [eax + 0x14], cl
jne 0x431402
mov eax, dword [ebp + 0x38]
cmp dword [eax + 0x10], ecx
je 0x4313ff
add eax, 0xc
mov dword [ebp + 0x18], eax
mov ecx, dword [eax + 4]
mov eax, dword [eax]
mov ecx, dword [eax + ecx*4 - 4]
mov eax, dword [ecx + 4]
mov ebx, dword [ecx]
cmp eax, dword [ebp - 0x144]
jb 0x4313fd
ja 0x4313b6
cmp ebx, edx
jb 0x4313fd
add ebx, dword [ecx + 8]
mov ecx, dword [ecx + 0xc]
adc ecx, eax
mov eax, dword [ebp - 0x140]
add eax, edx
mov dword [ebp - 0x64], eax
mov eax, dword [ebp - 0x13c]
adc eax, dword [ebp - 0x144]
cmp ecx, eax
ja 0x4313fd
jb 0x4313e0
cmp ebx, dword [ebp - 0x64]
ja 0x4313fd
mov ecx, dword [ebp + 0x18]
call fcn.0042dc76
mov eax, dword [ebp + 0x38]
xor ecx, ecx
mov edx, dword [ebp - 0x148]
cmp dword [eax + 0x10], ecx
je 0x4313ff
mov eax, dword [ebp + 0x18]
jmp 0x43139a
xor ecx, ecx
mov eax, dword [ebp + 0x54]
cmp byte [ebp + 0x71], 0
je 0x431564
cmp byte [eax + 0x11], 0
je 0x431564
cmp byte [ebp + 0x12], 0
je 0x431564
mov ebx, dword [ebp + 0x68]
mov byte [ebp - 0x58], cl
mov cl, byte [ebx + 0x78]
mov dword [ebp - 0x64], ecx
test cl, cl
je 0x431473
cmp byte [eax + 0x15], 0
je 0x431473
mov ecx, dword [ebx + 0x58]
add ecx, dword [ebx + 0x50]
mov eax, dword [ebx + 0x5c]
adc eax, dword [ebx + 0x54]
add ecx, dword [ebp - 0x14]
adc eax, dword [ebp + 0x58]
push eax
push ecx
push dword [ebp + 0x7c]
mov ecx, ebx
call fcn.0042da69
mov ebx, eax
test ebx, ebx
jne 0x4315fc
mov ebx, dword [ebp + 0x68]
mov ecx, dword [ebp - 0x64]
mov edx, dword [ebp - 0x148]
movzx ecx, cl
cmp byte [ebx + 0x7a], al
cmovne ecx, eax
mov eax, edx
or eax, dword [ebp - 0x144]
je 0x431497
cmp byte [ebp - 0xfb], 0
jne 0x4314b5
mov eax, dword [ebp + 0x4c]
test cl, cl
je 0x431492
mov al, byte [eax + 2]
jmp 0x4314b8
mov al, byte [eax + 1]
jmp 0x4314b8
test cl, cl
jne 0x4314a0
xor eax, eax
inc eax
jmp 0x4314a5
mov eax, dword [ebp + 0x4c]
mov al, byte [eax]
cmp dword [ebp - 0x2c], 0xfffffffe
movzx eax, al
cmovge eax, dword [ebp - 0xd0]
jmp 0x4314b8
mov eax, dword [ebp - 0x58]
cmp dword [ebp - 0x2c], 0
jge 0x4314cb
cmp byte [ebp - 0xfc], 0
jne 0x431564
test al, al
jne 0x431505
cmp byte [ebp - 0xfc], al
jne 0x431564
test cl, cl
jne 0x431564
cmp byte [ebp - 0xfb], cl
je 0x4314f3
or edx, dword [ebp - 0x144]
jne 0x431564
mov ecx, dword [ebp + 0x38]
cmp dword [ecx + 0x10], 0
jne 0x431548
mov eax, dword [ebp + 0x4c]
cmp byte [eax + 1], 0
je 0x431567
mov eax, dword [ebp + 0x7c]
lea ecx, [ebx + 4]
push dword [eax + 0x30]
call fcn.0040f64c
mov eax, dword [esi]
push esi
call dword [eax + 4]
mov ecx, dword [ebx]
test ecx, ecx
je 0x431525
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov eax, dword [ebp - 0x24]
mov dword [ebx], esi
mov dword [ebx + 0x3c], eax
mov eax, dword [ebp - 0x14]
mov dword [ebx + 0xd8], eax
mov eax, dword [ebp + 0x58]
mov dword [ebx + 0xdc], eax
xor eax, eax
mov ebx, eax
jmp 0x4315fc
xor eax, eax
inc eax
cmp dword [ecx + 0x10], eax
jne 0x431567
mov eax, dword [ecx + 0xc]
mov eax, dword [eax]
cmp byte [eax + 0x4c], 0
je 0x431567
mov eax, dword [ebp + 0x54]
cmp byte [eax + 0xe], 0
jmp 0x431503
mov ecx, dword [ebp + 0x38]
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0xe0], eax
lea eax, [ebp - 0x148]
push eax
call fcn.0042d718
xor eax, eax
lea ecx, [ebp - 0x148]
lea ebx, [eax + 1]
call fcn.0042d4ac
mov eax, dword [esi]
push esi
mov byte [ebp - 4], 0xa2
call dword [eax + 8]
mov esi, dword [ebp + 0x7c]
xor eax, eax
mov edx, dword [ebp + 0x64]
mov ecx, dword [ebp + 0x6c]
mov byte [ebp - 4], 0x4a
jmp 0x4315bd
mov ecx, dword [ebp + 0x6c]
xor eax, eax
mov bl, byte [ebp + 0x13]
inc eax
add edx, eax
push 0
pop eax
adc ecx, eax
mov dword [ebp + 0x64], edx
mov dword [ebp + 0x6c], ecx
cmp byte [ebp + 0x47], 0
je 0x4315ca
test bl, bl
je 0x4315ca
xor eax, eax
inc eax
mov byte [ebp + 0x73], al
mov ebx, dword [ebp + 0x3c]
mov eax, dword [ebp + 0x1c]
jmp 0x430adf
mov eax, dword [ebp - 0x24]
lea ecx, [ebx + 0xa8]
mov dword [ebx + 0x84], eax
lea eax, [ebx + 0x78]
push eax
call fcn.0042d538
xor eax, eax
lea ebx, [eax + 1]
jmp 0x431612
mov ebx, 0x80004005
lea ecx, [ebp - 0x148]
call fcn.0042d4ac
jmp 0x431612
mov ebx, eax
jmp 0x431612
mov ebx, 0x80004005
mov byte [ebp - 4], 0x9d
test esi, esi
je 0x43168f
mov eax, dword [esi]
push esi
call dword [eax + 8]
jmp 0x43168f
cmp byte [esi + 0x1a], 0
je 0x4316ca
mov eax, dword [ebp + 0x38]
mov ecx, eax
push dword [ebp + 0xc]
push dword [ebp + 8]
mov ebx, dword [eax + 0x10]
call fcn.0042d792
mov eax, dword [ebp + 0x38]
cmp dword [eax + 0x10], 0
jne 0x43164f
xor eax, eax
lea ebx, [eax + 1]
jmp 0x43168f
xor ecx, ecx
inc ecx
cmp ebx, ecx
je 0x43165b
cmp dword [eax + 0x10], ecx
je 0x4316ca
push dword [esi + 0x30]
lea ecx, [eax + 0x20]
call fcn.0040f64c
push dword [ebp + 0x38]
mov ebx, dword [ebp + 0x68]
mov ecx, ebx
call fcn.0040f64c
lea ecx, [ebx + 0x78]
call fcn.0042db45
or dword [ebx + 0x3c], 0xffffffff
xor eax, eax
inc eax
mov byte [ebx + 0x10], al
xor eax, eax
mov dword [ebx + 0x50], eax
mov dword [ebx + 0x54], eax
mov ebx, eax
mov byte [ebp - 4], 0xa8
test edi, edi
je 0x43169d
mov eax, dword [edi]
push edi
call dword [eax + 8]
mov ecx, dword [ebp - 0x40]
push ecx
mov byte [ebp - 4], 0xa9
mov eax, dword [ecx]
call dword [eax + 8]
push dword [ebp + 0x60]
call fcn.00566e0e
push dword [ebp - 0xa4]
call fcn.00566e0e
pop ecx
pop ecx
push dword [ebp - 0x4c]
call fcn.00566e0e
pop ecx
jmp 0x431715
mov byte [ebp - 4], 0xac
test edi, edi
je 0x4316d8
mov eax, dword [edi]
push edi
call dword [eax + 8]
mov ecx, dword [ebp - 0x40]
push ecx
mov byte [ebp - 4], 0xad
mov eax, dword [ecx]
call dword [eax + 8]
push dword [ebp + 0x60]
call fcn.00566e0e
push dword [ebp - 0xa4]
call fcn.00566e0e
push dword [ebp - 0x4c]
call fcn.00566e0e
mov eax, dword [ebp + 0x68]
xor ecx, ecx
add esp, 0xc
cmp dword [eax], ecx
jne 0x431713
xor eax, eax
lea ebx, [eax + 1]
jmp 0x431715
mov ebx, ecx
push dword [ebp - 0xb8]
call fcn.00566e0e
push dword [ebp - 0xc4]
call fcn.00566e0e
pop ecx
pop ecx
mov ecx, dword [ebp + 0x2c]
push ecx
mov byte [ebp - 4], 0xb0
mov eax, dword [ecx]
call dword [eax + 8]
mov ecx, dword [ebp + 0x38]
mov byte [ebp - 4], 0xb1
test ecx, ecx
je 0x43174b
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
push dword [ebp + 0x40]
call fcn.00566e0e
pop ecx
push dword [ebp - 0x44]
call fcn.00566e0e
push dword [ebp + 0x20]
call fcn.00566e0e
push dword [ebp - 0x98]
call fcn.00566e0e
push dword [ebp - 0x154]
call fcn.00566e0e
mov ecx, dword [ebp - 0xc]
add esp, 0x10
mov eax, ebx
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
add ebp, 0x74
leave
ret 4