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

Disassembly:
push 0xffffffffffffffff
mov eax, dword fs:[0]
push 0x48dc35
push eax
mov eax, 0x1480
mov dword fs:[0], esp
call fcn.0047fbc0
push ebx
push ebp
mov ebp, ecx
push esi
xor ebx, ebx
push edi
lea ecx, [esp + 0x50]
mov dword [esp + 0x7c], ebx
call fcn.00410af0
lea ecx, [esp + 0x300]
mov dword [esp + 0x1498], ebx
call fcn.0044a660
mov edi, dword [esp + 0x14a4]
mov byte [esp + 0x1498], 1
mov eax, dword [edi + 0x14]
cmp eax, 0xffffffff
je 0x4419cb
mov ecx, dword [ebp + 0xcc]
push ecx
push eax
lea ecx, [esp + 0x308]
call fcn.0044ae20
mov ebx, eax
xor esi, esi
test ebx, ebx
jle 0x4419c9
push esi
lea ecx, [esp + 0x304]
call fcn.0044af60
mov edx, dword [ebp]
lea eax, [esp + 0x50]
lea ecx, [esp + 0x7c]
push eax
push ecx
lea eax, [esp + 0x1c4]
push 0
lea ecx, [esp + 0x30c]
push eax
push ecx
mov ecx, ebp
call dword [edx + 8]
cmp eax, 1
jne 0x441a55
inc esi
cmp esi, ebx
jl 0x44198a
xor ebx, ebx
mov ecx, dword [esp + 0x14a0]
mov word [ebp + 0xf8], bx
mov dword [ebp + 0x130], ecx
mov ecx, dword [ebp + 0xcc]
mov word [ebp + 0xfa], bx
mov word [ebp + 0xfc], bx
mov dx, word [edi + 0x38]
push ecx
mov word [ebp + 0x134], dx
mov edx, dword [edi + 0x18]
mov eax, dword [edi + 0x3c]
push edx
lea ecx, [esp + 0x308]
mov dword [esp + 0xc4], ebx
mov dword [esp + 0x38], eax
call fcn.0044ae20
cmp ax, bx
jg 0x441ad4
lea ecx, [esp + 0x300]
mov byte [esp + 0x1498], 0
call fcn.0044a770
lea ecx, [esp + 0x50]
mov dword [esp + 0x1498], 0xffffffff
call fcn.00410bf0
xor eax, eax
jmp 0x44467d
push 0
push 1
sub esp, 0x10
mov ecx, 0x4a6710
mov edx, esp
mov dword [esp + 0x100], esp
push 1
push edx
call fcn.00426540
sub esp, 0x10
mov ecx, 0x4a6710
mov eax, esp
mov dword [esp + 0xe4], esp
push 1
push eax
mov byte [esp + 0x14c8], 2
call fcn.00426540
mov ecx, 0x4a6290
mov byte [esp + 0x14c0], 1
call fcn.00412b80
lea ecx, [esp + 0x300]
mov byte [esp + 0x1498], 0
call fcn.0044a770
lea ecx, [esp + 0x50]
mov dword [esp + 0x1498], 0xffffffff
call fcn.00410bf0
xor eax, eax
jmp 0x44467d
movsx eax, ax
xor edi, edi
cmp eax, ebx
mov dword [esp + 0xa0], eax
jle 0x441b9c
push edi
lea ecx, [esp + 0x304]
call fcn.0044af60
lea ecx, [esp + 0x300]
call fcn.0044b550
cmp eax, 8
lea ecx, [esp + 0x300]
jbe 0x441b53
call fcn.0044b550
mov esi, eax
lea ecx, [esp + 0x300]
add word [ebp + 0xfa], si
call fcn.0044b540
lea ecx, [eax + 8]
cmp esi, ebx
mov word [ebp + 0xfc], cx
jle 0x441b8c
mov dx, word [ebp + 0xf8]
mov eax, 1
shl eax, cl
or dx, ax
dec ecx
dec esi
jne 0x441b3c
mov word [ebp + 0xf8], dx
jmp 0x441b8c
call fcn.0044b550
mov esi, eax
lea ecx, [esp + 0x300]
add word [ebp + 0xfa], si
call fcn.0044b540
cmp esi, ebx
mov word [ebp + 0xfc], ax
mov ecx, eax
jle 0x441b8c
mov edx, 1
shl edx, cl
or word [ebp + 0xf8], dx
dec ecx
dec esi
jne 0x441b7a
mov eax, dword [esp + 0xa0]
inc edi
cmp edi, eax
jl 0x441ae8
cmp eax, ebx
mov dword [esp + 0x78], ebx
jle 0x444650
mov esi, ebx
mov ecx, 0x3f
xor eax, eax
lea edi, [esp + 0x1bc]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
lea ecx, [esp + 0x50]
mov edi, 1
call fcn.004110f0
push esi
lea ecx, [esp + 0x304]
call fcn.0044af60
test esi, esi
jne 0x441c1f
lea ecx, [esp + 0x300]
call fcn.0044b550
shr eax, 3
jne 0x441c19
mov cx, word [ebp + 0xfa]
test cx, cx
jbe 0x441c19
and ecx, 0xffff
mov eax, 0x38e38e39
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
lea ecx, [edx + eax + 1]
mov dword [ebp + 0x138], ecx
jmp 0x441c1f
mov dword [ebp + 0x138], eax
lea ecx, [esp + 0x300]
call fcn.0044b530
lea edx, [esp + 0xd4]
lea ebx, [ebp + 0xe4]
push edx
mov ecx, ebx
mov dword [esp + 0xd8], eax
call fcn.004474d0
mov ecx, dword [ebx + 4]
mov dword [esp + 0x14], eax
cmp eax, ecx
je 0x441c66
mov edx, dword [esp + 0xd4]
mov esi, dword [eax + 0xc]
cmp edx, esi
jb 0x441c66
lea eax, [esp + 0x14]
jmp 0x441c74
mov dword [esp + 0xe8], ecx
lea eax, [esp + 0xe8]
mov eax, dword [eax]
mov ecx, dword [ebp + 0xe8]
cmp eax, ecx
mov dword [esp + 0x84], eax
je 0x441c89
xor edi, edi
mov esi, dword [esp + 0x30]
cmp esi, 0x29
jne 0x441caa
cmp byte [ebp + 0xe0], 1
jbe 0x441caa
cmp dword [ebp + 0x168], 1
je 0x444650
jmp 0x441cc7
test edi, edi
je 0x44203f
cmp esi, 2
je 0x441cbc
cmp esi, 3
jne 0x441cc7
mov dword [esp + 0x318], 0xff
mov eax, dword [esp + 0x14a4]
push 0
mov ecx, dword [eax + 0x4c]
push ecx
mov ecx, dword [ebp + 0xd4]
call fcn.00431890
lea edx, [esp + 0x50]
push 0
push edx
lea eax, [esp + 0x84]
push 3
push eax
push 0
lea ecx, [esp + 0x1d0]
push 0
lea edx, [esp + 0x318]
push ecx
mov ecx, dword [ebp + 0xd4]
push edx
call fcn.00435870
cmp eax, 1
jne 0x44201d
lea ecx, [esp + 0x188]
call fcn.00404120
lea ecx, [esp + 0x18c]
mov byte [esp + 0x1498], 3
call fcn.00410af0
push ecx
lea ecx, [esp + 0x54]
mov eax, esp
mov dword [esp + 0x18], esp
push eax
mov byte [esp + 0x14a0], 4
call fcn.00411010
lea ecx, [esp + 0x18c]
call fcn.004042d0
mov cl, byte [esp + 0x50]
sub esp, 0x24
mov esi, esp
mov dword [esp + 0x38], esp
mov dword [esp + 0x38], esi
mov byte [esi], cl
mov ecx, dword [esp + 0x78]
test ecx, ecx
jne 0x441d7c
xor eax, eax
jmp 0x441d85
mov eax, dword [esp + 0x7c]
sub eax, ecx
sar eax, 4
test eax, eax
jge 0x441d8b
xor eax, eax
shl eax, 4
push eax
call fcn.0047e9c2
add esp, 4
mov dword [esi + 4], eax
mov edx, dword [esp + 0x7c]
mov ecx, esi
push eax
mov eax, dword [esp + 0x7c]
push edx
push eax
call fcn.0040f5e0
mov dword [esi + 8], eax
mov dword [esi + 0xc], eax
lea ecx, [esp + 0x84]
add esi, 0x10
push ecx
mov ecx, esi
mov byte [esp + 0x14c0], 5
call fcn.0040f280
mov dl, byte [esp + 0x94]
lea ecx, [esp + 0x1b0]
mov byte [esi + 0x10], dl
mov byte [esp + 0x14bc], 4
call fcn.00410ca0
lea ecx, [esp + 0x300]
call fcn.0044b530
lea ecx, [esp + 0x188]
mov dword [esp + 0x114], eax
lea eax, [esp + 0x118]
push ecx
lea ecx, [esp + 0x11c]
mov dword [esp + 0x18], eax
call fcn.00404130
mov al, byte [esp + 0x18c]
lea edx, [esp + 0x11c]
lea ecx, [esp + 0x18c]
mov byte [esp + 0x1498], 6
mov dword [esp + 0x20], edx
mov byte [esp + 0x11c], al
call fcn.00429bd0
test eax, eax
jge 0x441e4f
xor eax, eax
shl eax, 4
push eax
call fcn.0047e9c2
mov ecx, dword [esp + 0x198]
mov edx, dword [esp + 0x194]
add esp, 4
mov dword [esp + 0x120], eax
push eax
push ecx
push edx
lea ecx, [esp + 0x128]
call fcn.0040f5e0
mov dword [esp + 0x124], eax
mov dword [esp + 0x128], eax
lea eax, [esp + 0x19c]
lea ecx, [esp + 0x12c]
push eax
mov byte [esp + 0x149c], 7
call fcn.00405830
mov ecx, dword [esp + 0x114]
lea eax, [esp + 0x118]
mov dword [esp + 0x150], ecx
lea edx, [esp + 0x154]
push eax
lea ecx, [esp + 0x158]
mov byte [esp + 0x149c], 8
mov dword [esp + 0x18], edx
call fcn.00404130
mov dl, byte [esp + 0x11c]
lea ecx, [esp + 0x158]
mov dword [esp + 0x20], ecx
lea ecx, [esp + 0x11c]
mov byte [esp + 0x1498], 9
mov byte [esp + 0x158], dl
call fcn.00429bd0
test eax, eax
jge 0x441f11
xor eax, eax
shl eax, 4
push eax
call fcn.0047e9c2
mov ecx, dword [esp + 0x124]
add esp, 4
mov dword [esp + 0x15c], eax
push eax
mov eax, dword [esp + 0x128]
push eax
push ecx
lea ecx, [esp + 0x164]
call fcn.0040f5e0
mov dword [esp + 0x160], eax
mov dword [esp + 0x164], eax
lea edx, [esp + 0x12c]
lea ecx, [esp + 0x168]
push edx
mov byte [esp + 0x149c], 0xa
call fcn.00405830
lea eax, [esp + 0x150]
lea ecx, [esp + 0x2f8]
push eax
push ecx
mov ecx, ebx
mov byte [esp + 0x14a0], 0xb
call fcn.004464b0
lea edx, [esp + 0x154]
mov dword [esp + 0x14], edx
lea ecx, [esp + 0x158]
mov byte [esp + 0x1498], 0xc
call fcn.00410bf0
lea ecx, [esp + 0x154]
mov byte [esp + 0x1498], 8
call fcn.00404260
lea eax, [esp + 0x118]
mov dword [esp + 0x14], eax
lea ecx, [esp + 0x11c]
mov byte [esp + 0x1498], 0xd
call fcn.00410bf0
lea ecx, [esp + 0x118]
mov byte [esp + 0x1498], 4
call fcn.00404260
lea ecx, [esp + 0x18c]
mov byte [esp + 0x1498], 0xe
call fcn.00410bf0
lea ecx, [esp + 0x188]
mov byte [esp + 0x1498], 1
call fcn.00404260
jmp 0x44213c
or edi, 0xffffffff
cmp eax, edi
je case.0x442157.13
cmp esi, 0x23
je case.0x442157.13
cmp esi, 0x10
jne 0x4446f5
jmp 0x442143
lea ecx, [eax + 0x10]
xor esi, esi
call fcn.00404470
test ax, ax
jle 0x44207c
mov ecx, dword [esp + 0x84]
push esi
add ecx, 0x10
call fcn.004043e0
mov edx, dword [esp + 0x84]
mov byte [esp + esi + 0x1bc], al
inc esi
lea ecx, [edx + 0x10]
call fcn.00404470
movsx eax, ax
cmp esi, eax
jl 0x44204e
mov ecx, dword [esp + 0x84]
add ecx, 0x10
call fcn.00404470
lea ecx, [esp + 0x84]
mov dword [esp + 0x7c], eax
call fcn.004461e0
mov esi, eax
sub esp, 0x24
add esi, 8
mov eax, esp
mov dword [esp + 0x38], esp
mov dword [esp + 0x38], eax
mov dl, byte [esi]
mov byte [eax], dl
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x4420bc
xor eax, eax
jmp 0x4420c4
mov eax, dword [esi + 8]
sub eax, ecx
sar eax, 4
test eax, eax
jge 0x4420ca
xor eax, eax
shl eax, 4
push eax
call fcn.0047e9c2
mov ecx, dword [esp + 0x3c]
add esp, 4
mov edi, eax
mov dword [ecx + 4], eax
mov ecx, dword [esi + 8]
mov ebx, dword [esi + 4]
mov dword [esp + 0x44], ecx
cmp ebx, ecx
je 0x442105
push ebx
push edi
call fcn.0040fdb0
mov eax, dword [esp + 0x4c]
add ebx, 0x10
add esp, 8
add edi, 0x10
cmp ebx, eax
jne 0x4420ed
mov eax, dword [esp + 0x38]
mov dword [eax + 8], edi
mov dword [eax + 0xc], edi
add esi, 0x10
lea edi, [eax + 0x10]
push esi
mov ecx, edi
mov byte [esp + 0x14c0], 0xf
call fcn.0040f280
mov dl, byte [esi + 0x10]
lea ecx, [esp + 0x74]
mov byte [edi + 0x10], dl
mov byte [esp + 0x14bc], 1
call fcn.00410ca0
mov esi, dword [esp + 0x30]
or edi, 0xffffffff
lea eax, [esi - 1]
cmp eax, 0x29
ja case.0x442157.13
xor ecx, ecx
mov cl, byte [eax + 0x444988]
jmp dword [ecx*4 + 0x444954]
lea edx, [esp + 0x2c]
lea ecx, [esp + 0x50]
push edx
call fcn.00411010
lea ecx, [esp + 0x2c]
mov byte [esp + 0x1498], 0x10
xor esi, esi
call fcn.00404470
test ax, ax
jle 0x4421a6
push esi
lea ecx, [esp + 0x30]
call fcn.004043e0
mov byte [esp + esi + 0x1bc], al
lea ecx, [esp + 0x2c]
inc esi
call fcn.00404470
movsx eax, ax
cmp esi, eax
jl 0x442184
lea ecx, [esp + 0x300]
call fcn.0044b550
mov esi, eax
lea ecx, [esp + 0x300]
shr esi, 3
call fcn.0044b550
test al, 7
jbe 0x4421ec
mov ax, word [ebp + 0xfa]
test ax, ax
jbe 0x4421ec
and eax, 0xffff
mov ecx, eax
mov eax, 0x38e38e39
imul ecx
sar edx, 1
mov ecx, edx
shr ecx, 0x1f
lea esi, [edx + ecx + 1]
test esi, esi
jle 0x442364
lea ecx, [esp + 0x300]
call fcn.00454390
mov edi, eax
mov eax, dword [ebp + 0x130]
cmp eax, 0xffffffff
je 0x442288
xor ebx, ebx
test eax, eax
jle 0x442364
cmp dword [esp + 0x30], 0x28
jne 0x44223a
xor eax, eax
test esi, esi
jle 0x442236
lea ecx, [esp + edi + 0x1bc]
cmp byte [ecx + eax], 0
jne 0x44223a
inc eax
cmp eax, esi
jl 0x44222b
add edi, esi
jmp 0x442278
push 0
push ebx
lea edx, [esp + edi + 0x1c4]
push esi
push edx
mov ecx, ebp
call fcn.004410f0
mov ax, word [ebp + 0x134]
test ax, ax
je 0x442364
and eax, 0xffff
lea ecx, [esp + 0x2c]
add edi, eax
call fcn.00404470
movsx eax, ax
cmp edi, eax
jg 0x442364
mov eax, dword [ebp + 0x130]
inc ebx
cmp ebx, eax
jl 0x442217
jmp 0x442364
cmp word [ebp + 0x134], 0
jne 0x4422df
mov eax, dword [esp + 0x30]
cmp eax, 0x28
jne 0x4422bd
xor eax, eax
test esi, esi
jle 0x442455
lea ecx, [esp + edi + 0x1bc]
cmp byte [ecx], 0
jne 0x4422c6
inc eax
inc ecx
cmp eax, esi
jge 0x442455
jmp 0x4422ac
cmp eax, 0x2a
je 0x444698
push 0
push 0
lea ecx, [esp + edi + 0x1c4]
push esi
push ecx
mov ecx, ebp
call fcn.004410f0
jmp 0x442364
lea ecx, [esp + 0x2c]
xor ebx, ebx
call fcn.00404470
movsx edx, ax
xor eax, eax
mov ax, word [ebp + 0x134]
add eax, edi
cmp eax, edx
jg 0x442364
mov eax, dword [esp + 0x30]
cmp eax, 0x28
jne 0x442321
xor eax, eax
test esi, esi
jle 0x44231d
lea ecx, [esp + edi + 0x1bc]
cmp byte [ecx], 0
jne 0x44232a
inc eax
inc ecx
cmp eax, esi
jl 0x442312
add edi, esi
jmp 0x442349
cmp eax, 0x2a
je 0x4445e2
push 0
push ebx
lea ecx, [esp + edi + 0x1c4]
push esi
push ecx
mov ecx, ebp
call fcn.004410f0
xor edx, edx
mov dx, word [ebp + 0x134]
add edi, edx
inc ebx
lea ecx, [esp + 0x2c]
call fcn.00404470
xor ecx, ecx
mov cx, word [ebp + 0x134]
movsx eax, ax
add ecx, edi
cmp ecx, eax
jle 0x4422fc
mov edx, dword [esp + 0x14a4]
mov eax, dword [edx + 0x20]
cmp eax, 0xffffffff
je 0x44237b
push eax
mov ecx, ebp
call fcn.004408a0
cmp dword [esp + 0x30], 0xb
jne 0x442455
lea ecx, [esp + 0x300]
call fcn.00454390
mov cl, byte [esp + eax + 0x1bc]
test cl, cl
je 0x442455
lea ecx, [esp + 0x300]
call fcn.00454390
cmp byte [esp + eax + 0x1bb], 0x28
je 0x442455
lea ecx, [esp + 0x300]
call fcn.00454390
cmp byte [esp + eax + 0x1bb], 8
je 0x442455
lea ecx, [esp + 0x300]
call fcn.00454390
mov cl, byte [esp + eax + 0x1bb]
test cl, cl
je 0x442455
lea ecx, [esp + 0x50]
call fcn.004110f0
lea eax, [esp + 0x50]
push 0
push eax
lea ecx, [esp + 0x84]
push 3
push ecx
mov ecx, dword [ebp + 0xd4]
push 0
lea edx, [esp + 0x1d0]
push 0
lea eax, [esp + 0x318]
push edx
push eax
call fcn.00435870
mov eax, dword [esp + 0xbc]
mov byte [esp + 0x1498], 1
inc eax
lea ecx, [esp + 0x2c]
cmp eax, 0xff
mov dword [esp + 0xbc], eax
jg 0x4445c3
call fcn.00404260
jmp case.0x442157.1
mov byte [esp + 0x1498], 1
lea ecx, [esp + 0x2c]
jmp 0x4445c3
mov ecx, dword [ebp + 0xd4]
call fcn.00430ab0
lea ecx, [esp + 0x300]
call fcn.0044b550
shr eax, 3
mov dword [esp + 0x14], eax
jne 0x4424af
mov ax, word [ebp + 0xfa]
test ax, ax
jbe 0x4424af
and eax, 0xffff
mov ecx, eax
mov eax, 0x38e38e39
imul ecx
sar edx, 1
mov ecx, edx
shr ecx, 0x1f
lea edx, [edx + ecx + 1]
mov dword [esp + 0x14], edx
xor ebx, ebx
xor edi, edi
mov dword [esp + 0x1c], ebx
push 0
lea ecx, [esp + 0x54]
call fcn.004110c0
mov ecx, dword [eax + 4]
test ecx, ecx
je 0x442531
mov eax, dword [eax + 8]
sub eax, ecx
sar eax, 2
cmp edi, eax
jae 0x442531
xor esi, esi
lea ecx, [esp + 0x50]
push esi
call fcn.004110c0
mov eax, dword [eax + 4]
lea ecx, [eax + edi*4]
call fcn.00404470
test ax, ax
jle 0x44252e
push 0
lea ecx, [esp + 0x54]
call fcn.004110c0
mov eax, dword [eax + 4]
push esi
lea ecx, [eax + edi*4]
call fcn.004043e0
mov byte [esp + ebx + 0x1bc], al
inc ebx
push 0
lea ecx, [esp + 0x54]
inc esi
call fcn.004110c0
mov eax, dword [eax + 4]
lea ecx, [eax + edi*4]
call fcn.00404470
movsx ecx, ax
cmp esi, ecx
jl 0x4424f1
inc edi
jmp 0x4424b7
mov edi, dword [esp + 0x14]
mov dword [esp + 0x1c], ebx
test edi, edi
jle 0x442773
lea ecx, [esp + 0x300]
call fcn.00454390
mov esi, eax
mov eax, dword [ebp + 0x130]
cmp eax, 0xffffffff
mov dword [esp + 0x20], esi
je 0x44262c
xor ebx, ebx
test eax, eax
jle 0x442773
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x1c]
cmp eax, ecx
jge 0x442773
mov ecx, dword [esp + 0x14]
test ecx, ecx
jle 0x4425a0
mov edx, ecx
lea esi, [esp + eax + 0x1bc]
lea edi, [esp + 0x2bc]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
test ebx, ebx
jne 0x4425b0
cmp dword [esp + 0x30], 3
jne 0x4425b0
dec eax
mov dword [esp + 0x20], eax
mov al, byte [esp + 0x2bc]
cmp al, 0xff
jne 0x4425cb
cmp byte [esp + 0x2bd], 0xff
je 0x442773
jmp 0x4425de
test al, al
jne 0x4425de
mov al, byte [esp + 0x2bd]
test al, al
je 0x442773
push 0
lea ecx, [esp + 0x54]
call fcn.004110c0
mov eax, dword [eax + 4]
mov ecx, dword [esp + 0x14]
lea edx, [esp + 0x2bc]
lea eax, [eax + ebx*4]
push eax
push ebx
push ecx
push edx
mov ecx, ebp
call fcn.004410f0
mov edx, dword [esp + 0x20]
xor eax, eax
mov ax, word [ebp + 0x134]
add edx, eax
mov eax, dword [ebp + 0x130]
inc ebx
mov dword [esp + 0x20], edx
cmp ebx, eax
jl 0x44256c
jmp 0x442773
push 0
lea ecx, [esp + 0x54]
mov dword [esp + 0x28], 0
call fcn.004110c0
mov ecx, dword [eax + 4]
test ecx, ecx
je 0x442773
mov edx, dword [eax + 8]
sub edx, ecx
sar edx, 2
je 0x442773
add esi, edi
cmp esi, ebx
jge 0x442773
mov ebx, dword [esp + 0x20]
mov ecx, dword [esp + 0x14]
test ecx, ecx
jle 0x44268a
mov eax, ecx
lea esi, [esp + ebx + 0x1bc]
lea edi, [esp + 0x2d0]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [esp + 0x24]
test eax, eax
jne 0x44269a
cmp dword [esp + 0x30], 3
jne 0x44269a
dec ebx
mov al, byte [esp + 0x2d0]
cmp al, 0xff
jne 0x4426b5
cmp byte [esp + 0x2d1], 0xff
je 0x442773
jmp 0x4426c8
test al, al
jne 0x4426c8
mov al, byte [esp + 0x2d1]
test al, al
je 0x442773
push 0
lea ecx, [esp + 0x54]
call fcn.004110c0
mov eax, dword [eax + 4]
mov esi, dword [esp + 0x24]
mov edi, dword [esp + 0x14]
lea edx, [esp + 0x2d0]
lea ecx, [eax + esi*4]
push ecx
push esi
push edi
push edx
mov ecx, ebp
call fcn.004410f0
cmp word [ebp + 0x134], 0
jne 0x442735
push 0
lea ecx, [esp + 0x54]
call fcn.004110c0
mov ecx, dword [eax + 4]
test ecx, ecx
je 0x44271b
mov eax, dword [eax + 8]
sub eax, ecx
and al, 0xfc
cmp eax, 4
je 0x442773
push 0
lea ecx, [esp + 0x54]
call fcn.004110c0
mov ecx, dword [eax + 4]
call fcn.00404470
mov word [ebp + 0x134], ax
xor ecx, ecx
push 0
mov cx, word [ebp + 0x134]
add ebx, ecx
lea ecx, [esp + 0x54]
call fcn.004110c0
mov ecx, dword [eax + 4]
call fcn.00404470
movsx ecx, ax
mov eax, ebx
cdq
idiv ecx
cmp eax, esi
jle 0x442764
inc esi
mov dword [esp + 0x24], esi
mov eax, dword [esp + 0x1c]
lea edx, [ebx + edi]
cmp edx, eax
jl 0x442666
mov eax, dword [esp + 0x14a4]
mov eax, dword [eax + 0x20]
cmp eax, 0xffffffff
je case.0x442157.13
push eax
mov ecx, ebp
call fcn.004408a0
jmp case.0x442157.13
lea ecx, [esp + 0x300]
call fcn.00454390
lea ecx, [esp + 0x80]
mov edi, eax
push ecx
lea ecx, [esp + 0x54]
mov dword [esp + 0x18], edi
call fcn.00411010
lea ecx, [esp + 0x80]
mov byte [esp + 0x1498], 0x11
xor ebx, ebx
xor esi, esi
call fcn.00404470
test ax, ax
jle 0x4427fb
push esi
lea ecx, [esp + 0x84]
call fcn.004043e0
mov byte [esp + esi + 0x1bc], al
lea ecx, [esp + 0x80]
inc esi
call fcn.00404470
movsx edx, ax
cmp esi, edx
jl 0x4427d3
lea ecx, [esp + 0x300]
call fcn.0044b550
shr eax, 3
mov dword [esp + 0x20], eax
jne 0x442839
mov ax, word [ebp + 0xfa]
cmp ax, bx
jbe 0x442839
and eax, 0xffff
mov ecx, eax
mov eax, 0x38e38e39
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
lea ecx, [edx + eax + 1]
mov dword [esp + 0x20], ecx
mov eax, dword [esp + 0x30]
sub eax, 4
je 0x442a9c
dec eax
je 0x442957
sub eax, 2
jne 0x442b83
mov eax, dword [esp + 0x20]
cmp eax, ebx
jle 0x442b83
cmp dword [ebp + 0x130], 0xffffffff
je 0x4428e1
cmp eax, ebx
mov dword [esp + 0x1c], ebx
jle 0x442b83
lea edi, [esp + edi + 0x1bc]
mov edx, dword [esp + 0x1c]
xor ebx, ebx
mov al, byte [edi + edx]
mov byte [esp + 0x13], al
mov dl, byte [esp + 0x13]
mov cl, bl
shr dl, cl
test dl, 1
je 0x4428c5
mov al, byte [esp + 0x14]
mov cl, byte [esp + 0x1c]
add al, cl
push 0
push 0
lea ecx, [esp + 0x184]
push 2
push ecx
mov ecx, ebp
mov byte [esp + 0x18c], al
mov byte [esp + 0x18d], bl
call fcn.004410f0
inc ebx
cmp ebx, 8
jl 0x44288b
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
inc eax
cmp eax, ecx
mov dword [esp + 0x1c], eax
jl 0x44287e
jmp 0x442b83
cmp eax, ebx
mov dword [esp + 0x24], ebx
jle 0x442b83
lea edi, [esp + edi + 0x1bc]
mov edx, dword [esp + 0x24]
xor ebx, ebx
mov al, byte [edi + edx]
mov byte [esp + 0x13], al
mov dl, byte [esp + 0x13]
mov cl, bl
shr dl, cl
test dl, 1
je 0x44293b
mov al, byte [esp + 0x24]
mov cl, byte [esp + 0x14]
add al, cl
push 0
push 0
lea ecx, [esp + 0x1b8]
push 2
push ecx
mov ecx, ebp
mov byte [esp + 0x1c0], al
mov byte [esp + 0x1c1], bl
call fcn.004410f0
inc ebx
cmp ebx, 8
jl 0x442901
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x20]
inc eax
cmp eax, ecx
mov dword [esp + 0x24], eax
jl 0x4428f4
jmp 0x442b83
mov eax, dword [esp + 0x20]
cmp eax, ebx
jle 0x442b83
cmp dword [ebp + 0x130], 0xffffffff
je 0x442a08
cmp eax, ebx
mov dword [esp + 0x1c], ebx
jle 0x442b83
lea esi, [esp + 0x1bc]
jmp 0x442989
mov edi, dword [esp + 0x14]
mov edx, dword [esp + 0x1c]
lea eax, [edi + edx]
mov cl, byte [eax + esi]
and eax, 0x80000001
mov byte [esp + 0x13], cl
jns 0x4429a3
dec eax
or eax, 0xfffffffe
inc eax
jne 0x4429e2
xor ebx, ebx
mov dl, byte [esp + 0x13]
mov cl, bl
shr dl, cl
test dl, 1
je 0x4429da
mov al, byte [esp + 0x14]
mov dl, byte [esp + 0x1c]
add al, dl
mov cl, 0xa
imul cl
push 0
push 0
lea edx, [esp + 0x23]
add al, bl
push 1
push edx
mov ecx, ebp
mov byte [esp + 0x2b], al
call fcn.004410f0
inc ebx
cmp ebx, 8
jl 0x4429a7
jmp 0x4429f2
push 0
push 0
push 0x9901
mov ecx, ebp
call fcn.00440960
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
inc eax
cmp eax, ecx
mov dword [esp + 0x1c], eax
jl 0x442985
jmp 0x442b83
cmp eax, ebx
mov dword [esp + 0x24], ebx
jle 0x442b83
lea edi, [esp + 0x1bc]
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x24]
add eax, ecx
mov dl, byte [eax + edi]
and eax, 0x80000001
mov byte [esp + 0x1b], dl
jns 0x442a38
dec eax
or eax, 0xfffffffe
inc eax
jne 0x442a76
xor ebx, ebx
mov al, byte [esp + 0x1b]
mov cl, bl
shr al, cl
test al, 1
je 0x442a6e
mov al, byte [esp + 0x24]
mov dl, byte [esp + 0x14]
add al, dl
mov cl, 0xa
imul cl
push 0
push 0
lea edx, [esp + 0x1b]
add al, bl
push 1
push edx
mov ecx, ebp
mov byte [esp + 0x23], al
call fcn.004410f0
inc ebx
cmp ebx, 8
jl 0x442a3c
jmp 0x442a86
push 0
push 0
push 0x9901
mov ecx, ebp
call fcn.00440960
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x20]
inc eax
cmp eax, ecx
mov dword [esp + 0x24], eax
jl 0x442a1b
jmp 0x442b83
mov eax, dword [esp + 0x20]
cmp eax, ebx
jle 0x442b83
cmp dword [ebp + 0x130], 0xffffffff
je 0x442b1d
cmp eax, ebx
mov dword [esp + 0x1c], ebx
jle 0x442b83
lea edi, [esp + edi + 0x1bc]
mov eax, dword [esp + 0x1c]
xor ebx, ebx
mov cl, byte [edi + eax]
mov byte [esp + 0x1b], cl
mov dl, byte [esp + 0x1b]
mov cl, bl
shr dl, cl
test dl, 1
je 0x442b04
mov al, byte [esp + 0x14]
mov dl, byte [esp + 0x1c]
add al, dl
mov cl, 0xa
imul cl
push 0
push 0
lea edx, [esp + 0x1b]
add al, bl
push 1
push edx
mov ecx, ebp
mov byte [esp + 0x23], al
call fcn.004410f0
inc ebx
cmp ebx, 8
jl 0x442ad1
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
inc eax
cmp eax, ecx
mov dword [esp + 0x1c], eax
jl 0x442ac4
jmp 0x442b83
cmp eax, ebx
mov dword [esp + 0x24], ebx
jle 0x442b83
lea edi, [esp + edi + 0x1bc]
mov eax, dword [esp + 0x24]
xor ebx, ebx
mov cl, byte [edi + eax]
mov byte [esp + 0x1b], cl
mov dl, byte [esp + 0x1b]
mov cl, bl
shr dl, cl
test dl, 1
je 0x442b6c
mov al, byte [esp + 0x24]
mov dl, byte [esp + 0x14]
add al, dl
mov cl, 0xa
imul cl
push 0
push 0
lea edx, [esp + 0x1b]
add al, bl
push 1
push edx
mov ecx, ebp
mov byte [esp + 0x23], al
call fcn.004410f0
inc ebx
cmp ebx, 8
jl 0x442b39
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x20]
inc eax
cmp eax, ecx
mov dword [esp + 0x24], eax
jl 0x442b2c
mov eax, dword [esp + 0x14a4]
mov eax, dword [eax + 0x20]
cmp eax, 0xffffffff
je 0x442b9a
push eax
mov ecx, ebp
call fcn.004408a0
mov byte [esp + 0x1498], 1
lea ecx, [esp + 0x80]
jmp 0x4445c3
lea ecx, [esp + 0x88]
push ecx
lea ecx, [esp + 0x54]
call fcn.00411010
lea ecx, [esp + 0x88]
mov byte [esp + 0x1498], 0x12
xor esi, esi
call fcn.00404470
test ax, ax
jle 0x442c02
push esi
lea ecx, [esp + 0x8c]
call fcn.004043e0
mov byte [esp + esi + 0x1bc], al
lea ecx, [esp + 0x88]
inc esi
call fcn.00404470
movsx edx, ax
cmp esi, edx
jl 0x442bda
lea ecx, [esp + 0x300]
call fcn.0044b550
shr eax, 3
mov dword [esp + 0x14], eax
jne 0x442c44
mov ax, word [ebp + 0xfa]
test ax, ax
jbe 0x442dfc
and eax, 0xffff
mov ecx, eax
mov eax, 0x38e38e39
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
lea eax, [edx + eax + 1]
mov dword [esp + 0x14], eax
test eax, eax
jle 0x442dfc
lea ecx, [esp + 0x300]
call fcn.00454390
mov cl, byte [esp + 0x2b]
mov dword [esp + 0x20], eax
mov byte [esp + 0xd8], cl
mov edi, 0x4a643c
or ecx, 0xffffffff
xor eax, eax
xor esi, esi
push 1
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov dword [esp + 0xe0], esi
mov ebx, ecx
lea ecx, [esp + 0xdc]
push ebx
mov dword [esp + 0xe8], esi
mov dword [esp + 0xec], esi
call fcn.00402900
test al, al
je 0x442cd2
mov edi, dword [esp + 0xdc]
mov ecx, ebx
mov edx, ecx
mov esi, 0x4a643c
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [esp + 0xdc]
mov dword [esp + 0xe0], ebx
xor esi, esi
mov byte [eax + ebx], 0
mov eax, dword [esp + 0x14]
xor edi, edi
cmp eax, esi
jle 0x442db5
mov ecx, dword [esp + 0x20]
lea edx, [esp + ecx + 0x1bc]
mov dword [esp + 0x20], edx
mov eax, dword [esp + 0x20]
xor esi, esi
xor ebx, ebx
mov cl, byte [eax + edi]
mov byte [esp + 0x1b], cl
mov dl, byte [esp + 0x1b]
mov cl, bl
shr dl, cl
test dl, 1
je 0x442d9e
mov al, byte [esp + 0x2b]
mov dword [esp + 0xf0], esi
mov byte [esp + 0xec], al
mov dword [esp + 0xf4], esi
mov dword [esp + 0xf8], esi
lea ecx, [esp + 0xec]
mov byte [esp + 0x1498], 0x14
push ecx
lea ecx, [esp + 0x304]
call fcn.0044b3e0
mov edx, dword [esp + 0xf0]
mov cl, bl
inc cl
push esi
mov al, byte [edx]
push esi
lea edx, [esp + 0x2ec]
mov byte [esp + 0x2ed], cl
push 2
push edx
mov ecx, ebp
mov byte [esp + 0x2f4], al
call fcn.004410f0
mov eax, dword [esp + 0xf0]
push eax
call fcn.0047e190
add esp, 4
mov dword [esp + 0xf0], esi
mov dword [esp + 0xf4], esi
mov dword [esp + 0xf8], esi
inc ebx
cmp ebx, 8
jl 0x442cfe
mov eax, dword [esp + 0x14]
inc edi
cmp edi, eax
jl 0x442cef
mov eax, dword [esp + 0xdc]
xor esi, esi
cmp eax, esi
mov byte [esp + 0x1498], 0x12
je 0x442de7
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x442dde
cmp al, 0xff
je 0x442dde
dec al
mov byte [ecx], al
jmp 0x442de7
push ecx
call fcn.0047e190
add esp, 4
mov dword [esp + 0xdc], esi
mov dword [esp + 0xe0], esi
mov dword [esp + 0xe4], esi
mov ecx, dword [esp + 0x14a4]
mov eax, dword [ecx + 0x20]
cmp eax, 0xffffffff
je 0x442e13
push eax
mov ecx, ebp
call fcn.004408a0
mov byte [esp + 0x1498], 1
lea ecx, [esp + 0x88]
jmp 0x4445c3
cmp dword [ebp + 0x130], edi
je 0x444702
mov byte [esp + 0xb4], 1
lea edx, [esp + 0x40]
lea ecx, [esp + 0x50]
push edx
call fcn.00411010
lea ecx, [esp + 0x40]
mov byte [esp + 0x1498], 0x15
call fcn.00404470
test ax, ax
jle 0x442f30
lea ecx, [esp + 0x40]
xor esi, esi
call fcn.00404470
test ax, ax
jle 0x442e95
push esi
lea ecx, [esp + 0x44]
call fcn.004043e0
mov byte [esp + esi + 0x1bc], al
lea ecx, [esp + 0x40]
inc esi
call fcn.00404470
movsx eax, ax
cmp esi, eax
jl 0x442e73
lea ecx, [esp + 0x300]
call fcn.0044b550
mov ebx, eax
shr ebx, 3
jne 0x442ecd
mov ax, word [ebp + 0xfa]
test ax, ax
jbe 0x442f30
and eax, 0xffff
mov ecx, eax
mov eax, 0x38e38e39
imul ecx
sar edx, 1
mov ecx, edx
shr ecx, 0x1f
lea ebx, [edx + ecx + 1]
test ebx, ebx
jle 0x442f30
lea ecx, [esp + 0x300]
call fcn.00454390
mov esi, eax
mov eax, dword [ebp + 0x130]
test eax, eax
jle 0x442f30
xor edi, edi
test eax, eax
jle 0x442f30
push 0
push edi
lea edx, [esp + esi + 0x1c4]
push ebx
push edx
mov ecx, ebp
call fcn.004410f0
mov ax, word [ebp + 0x134]
test ax, ax
je 0x442f30
and eax, 0xffff
lea ecx, [esp + 0x40]
add esi, eax
call fcn.00404470
movsx eax, ax
cmp esi, eax
jg 0x442f30
mov eax, dword [ebp + 0x130]
inc edi
cmp edi, eax
jl 0x442eef
mov ecx, dword [esp + 0xb4]
mov eax, dword [ebp + 0x130]
and ecx, 0xff
cmp ecx, eax
jge 0x443077
mov dl, byte [esp + 0x2b]
xor esi, esi
mov byte [esp + 0x8c], dl
mov dword [esp + 0x90], esi
mov dword [esp + 0x94], esi
mov dword [esp + 0x98], esi
lea eax, [esp + 0x8c]
lea ecx, [esp + 0x300]
push eax
mov byte [esp + 0x149c], 0x16
call fcn.0044b3e0
mov ecx, dword [esp + 0x90]
cmp ecx, esi
jne 0x442f98
xor eax, eax
jmp 0x442fa1
mov eax, dword [esp + 0x94]
sub eax, ecx
mov bl, byte [ecx + eax - 1]
inc bl
mov byte [ecx + eax - 1], bl
lea ecx, [esp + 0x8c]
push ecx
lea ecx, [esp + 0x304]
call fcn.0044b210
mov cl, byte [esp + 0xb4]
lea edx, [esp + 0x50]
push esi
inc cl
push edx
lea eax, [esp + 0x84]
push 3
mov byte [esp + 0xc0], cl
push eax
push esi
lea ecx, [esp + 0x1d0]
push esi
lea edx, [esp + 0x318]
push ecx
mov ecx, dword [ebp + 0xd4]
push edx
call fcn.00435870
cmp eax, 1
je 0x44303c
cmp eax, 0xffffffff
jne 0x44472d
mov eax, dword [esp + 0x90]
mov byte [esp + 0x1498], 0x15
push eax
call fcn.0047e190
add esp, 4
mov dword [esp + 0x90], esi
mov dword [esp + 0x94], esi
mov dword [esp + 0x98], esi
jmp 0x442f30
mov ecx, dword [esp + 0x90]
push ecx
call fcn.0047e190
add esp, 4
lea ecx, [esp + 0x40]
mov dword [esp + 0x90], esi
mov dword [esp + 0x94], esi
mov dword [esp + 0x98], esi
mov byte [esp + 0x1498], 1
call fcn.00404260
jmp 0x442e3b
mov edx, dword [esp + 0x14a4]
mov eax, dword [edx + 0x20]
cmp eax, 0xffffffff
je 0x44308e
push eax
mov ecx, ebp
call fcn.004408a0
mov byte [esp + 0x1498], 1
lea ecx, [esp + 0x40]
jmp 0x4445c3
lea eax, [esp + 0x34]
lea ecx, [esp + 0x50]
push eax
call fcn.00411010
xor ebx, ebx
lea ecx, [esp + 0x34]
mov byte [esp + 0x1498], 0x17
mov dword [esp + 0x24], ebx
call fcn.00404470
test ax, ax
jle 0x4430ef
push ebx
lea ecx, [esp + 0x38]
call fcn.004043e0
mov byte [esp + ebx + 0x1bc], al
lea ecx, [esp + 0x34]
inc ebx
call fcn.00404470
movsx ecx, ax
cmp ebx, ecx
jl 0x4430c9
mov dword [esp + 0x24], ebx
lea ecx, [esp + 0x300]
call fcn.0044b550
mov edi, eax
shr edi, 3
mov dword [esp + 0x14], edi
jne 0x443133
mov ax, word [ebp + 0xfa]
test ax, ax
jbe 0x443b8b
and eax, 0xffff
mov ecx, eax
mov eax, 0x38e38e39
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
lea edi, [edx + eax + 1]
mov dword [esp + 0x14], edi
test edi, edi
jle 0x443b8b
lea ecx, [esp + 0x300]
call fcn.00454390
mov ecx, eax
mov eax, esi
sub eax, 0x14
mov dword [esp + 0x1c], ecx
je 0x443843
dec eax
je 0x4434e0
dec eax
jne 0x443b8b
mov eax, dword [0x4a6784]
test eax, eax
jne 0x44331d
mov dl, 0x10
cmp ecx, ebx
mov dword [0x4a6784], 1
mov byte [esp + 0x13], dl
jge 0x443b8b
jmp 0x443191
mov edi, dword [esp + 0x14]
cmp edi, 2
jne 0x4431af
movzx ax, byte [esp + ecx + 0x1bc]
movzx si, byte [esp + ecx + 0x1bd]
shl eax, 8
add eax, esi
jmp 0x4431c1
cmp edi, 1
jne 0x44479f
movzx ax, byte [esp + ecx + 0x1bc]
test ax, ax
jne 0x4431f2
mov eax, dword [ebp + 0x38]
test eax, eax
je 0x443b8b
mov edx, dword [ebp + 0x3c]
sub edx, eax
mov eax, 0x6bca1af3
imul edx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
je 0x443b8b
jmp 0x4432f3
movzx si, dl
sub dl, 0x10
push 0
and edx, 0xff
mov ecx, ebp
push edx
push esi
call fcn.00440960
and esi, 0xffff
lea ecx, [esp + 0xac]
push esi
push 0x49ca68
push ecx
call fcn.0047edef
mov eax, dword [ebp + 0x38]
add esp, 0xc
test eax, eax
jne 0x443231
xor edx, edx
jmp 0x443247
mov ecx, dword [ebp + 0x3c]
sub ecx, eax
mov eax, 0x6bca1af3
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, dword [ebp + 0x38]
lea ecx, [edx + edx*8]
lea edi, [esp + 0xac]
lea edx, [edx + ecx*2]
or ecx, 0xffffffff
lea esi, [eax + edx*4 - 0x4c]
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov dword [esp + 0x20], esi
mov ebx, ecx
cmp ebx, 0xfffffffd
jbe 0x443275
call fcn.0047e19b
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x44329a
mov al, byte [ecx - 1]
test al, al
je 0x44329a
cmp al, 0xff
je 0x44329a
test ebx, ebx
jne 0x4432be
dec al
push ebx
mov byte [ecx - 1], al
mov ecx, esi
call fcn.004024d0
jmp 0x4432ef
test ebx, ebx
jne 0x4432a9
push 1
mov ecx, esi
call fcn.004024d0
jmp 0x4432ef
mov eax, dword [esi + 0xc]
cmp eax, 0x1f
ja 0x4432b5
cmp eax, ebx
jae 0x4432c6
push 1
mov ecx, esi
call fcn.004024d0
push ebx
mov ecx, esi
call fcn.004031a0
mov eax, dword [esp + 0x20]
mov ecx, ebx
mov edx, ecx
lea esi, [esp + 0xac]
mov edi, dword [eax + 4]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [eax + 4]
mov dword [eax + 8], ebx
add ebx, ecx
mov byte [ebx], 0
mov ecx, dword [esp + 0x1c]
mov dl, byte [esp + 0x13]
xor eax, eax
mov ax, word [ebp + 0x134]
inc dl
add ecx, eax
mov eax, dword [esp + 0x24]
cmp ecx, eax
mov byte [esp + 0x13], dl
mov dword [esp + 0x1c], ecx
jl 0x44318d
jmp 0x443b8b
cmp eax, 1
jne 0x443b8b
mov eax, dword [ebp + 0x38]
test eax, eax
je 0x443b8b
mov edx, dword [ebp + 0x3c]
sub edx, eax
mov eax, 0x6bca1af3
imul edx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
je 0x443b8b
xor dl, dl
mov dword [0x4a6784], 0
mov byte [esp + 0x9c], dl
jmp 0x44336a
mov edi, dword [esp + 0x14]
mov ebx, dword [esp + 0x24]
cmp ecx, ebx
jge 0x443b8b
cmp edi, 2
jne 0x443390
movzx ax, byte [esp + ecx + 0x1bc]
movzx si, byte [esp + ecx + 0x1bd]
shl eax, 8
add eax, esi
jmp 0x4433a2
cmp edi, 1
jne 0x44479f
movzx ax, byte [esp + ecx + 0x1bc]
test ax, ax
je 0x4434b3
mov ecx, dword [esp + 0x9c]
add dl, 0x20
movzx si, dl
and ecx, 0xff
push 0
push ecx
push esi
mov ecx, ebp
call fcn.00440960
and esi, 0xffff
lea edx, [esp + 0x10c]
push esi
push 0x49ca68
push edx
call fcn.0047edef
mov eax, dword [ebp + 0x38]
add esp, 0xc
test eax, eax
jne 0x4433f1
xor edx, edx
jmp 0x443407
mov ecx, dword [ebp + 0x3c]
sub ecx, eax
mov eax, 0x6bca1af3
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
lea ecx, [edx + edx*8]
lea edi, [esp + 0x10c]
xor eax, eax
mov ebx, dword [ebp + 0x38]
lea edx, [edx + ecx*2]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea ebx, [ebx + edx*4 - 0x4c]
mov esi, ecx
cmp esi, 0xfffffffd
mov dword [esp + 0x20], esi
jbe 0x443435
call fcn.0047e19b
mov ecx, dword [ebx + 4]
test ecx, ecx
je 0x44345a
mov al, byte [ecx - 1]
test al, al
je 0x44345a
cmp al, 0xff
je 0x44345a
test esi, esi
jne 0x44347e
dec al
push esi
mov byte [ecx - 1], al
mov ecx, ebx
call fcn.004024d0
jmp 0x4434af
test esi, esi
jne 0x443469
push 1
mov ecx, ebx
call fcn.004024d0
jmp 0x4434af
mov eax, dword [ebx + 0xc]
cmp eax, 0x1f
ja 0x443475
cmp eax, esi
jae 0x443486
push 1
mov ecx, ebx
call fcn.004024d0
push esi
mov ecx, ebx
call fcn.004031a0
mov eax, dword [esp + 0x20]
mov edi, dword [ebx + 4]
mov ecx, eax
lea esi, [esp + 0x10c]
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov dword [ebx + 8], eax
mov ebx, dword [ebx + 4]
add ebx, eax
mov byte [ebx], 0
mov ecx, dword [esp + 0x1c]
mov dl, byte [esp + 0x9c]
xor eax, eax
mov ax, word [ebp + 0x134]
add ecx, eax
inc dl
cmp dl, 0xff
mov dword [esp + 0x1c], ecx
mov byte [esp + 0x9c], dl
jb 0x443362
jmp 0x443b8b
mov eax, dword [0x4a6784]
test eax, eax
jne 0x4436a6
xor dl, dl
mov dword [0x4a6784], 1
mov byte [esp + 0x13], dl
mov byte [esp + 0xb0], dl
jmp 0x443512
mov edi, dword [esp + 0x14]
mov ebx, dword [esp + 0x24]
mov dl, byte [esp + 0x13]
cmp ecx, ebx
jge 0x443b8b
cmp edi, 2
jne 0x443538
movzx ax, byte [esp + ecx + 0x1bc]
movzx si, byte [esp + ecx + 0x1bd]
shl eax, 8
add eax, esi
jmp 0x44354a
cmp edi, 1
jne 0x44479f
movzx ax, byte [esp + ecx + 0x1bc]
cmp ax, 1
jbe 0x443667
test dl, dl
jne 0x443562
cmp ax, 0x10
sbb esi, esi
neg esi
jmp 0x443566
movzx si, dl
mov ecx, dword [esp + 0xb0]
push 0
and ecx, 0xff
push ecx
push esi
mov ecx, ebp
call fcn.00440960
and esi, 0xffff
lea edx, [esp + 0xd0]
push esi
push 0x49ca68
push edx
call fcn.0047edef
mov eax, dword [ebp + 0x38]
add esp, 0xc
test eax, eax
jne 0x4435a5
xor edx, edx
jmp 0x4435bb
mov ecx, dword [ebp + 0x3c]
sub ecx, eax
mov eax, 0x6bca1af3
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, dword [ebp + 0x38]
lea ecx, [edx + edx*8]
lea edi, [esp + 0xd0]
lea edx, [edx + ecx*2]
or ecx, 0xffffffff
lea esi, [eax + edx*4 - 0x4c]
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov dword [esp + 0x20], esi
mov ebx, ecx
cmp ebx, 0xfffffffd
jbe 0x4435e9
call fcn.0047e19b
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x44360e
mov al, byte [ecx - 1]
test al, al
je 0x44360e
cmp al, 0xff
je 0x44360e
test ebx, ebx
jne 0x443632
dec al
push ebx
mov byte [ecx - 1], al
mov ecx, esi
call fcn.004024d0
jmp 0x443663
test ebx, ebx
jne 0x44361d
push 1
mov ecx, esi
call fcn.004024d0
jmp 0x443663
mov eax, dword [esi + 0xc]
cmp eax, 0x1f
ja 0x443629
cmp eax, ebx
jae 0x44363a
push 1
mov ecx, esi
call fcn.004024d0
push ebx
mov ecx, esi
call fcn.004031a0
mov eax, dword [esp + 0x20]
mov ecx, ebx
mov edx, ecx
lea esi, [esp + 0xd0]
mov edi, dword [eax + 4]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [eax + 4]
mov dword [eax + 8], ebx
add ebx, ecx
mov byte [ebx], 0
mov ecx, dword [esp + 0x1c]
mov al, byte [esp + 0x13]
test al, al
jne 0x443676
mov byte [esp + 0x13], 2
jmp 0x44367a
inc byte [esp + 0x13]
xor eax, eax
mov ax, word [ebp + 0x134]
add ecx, eax
mov al, byte [esp + 0xb0]
inc al
mov dword [esp + 0x1c], ecx
cmp al, 8
mov byte [esp + 0xb0], al
jb 0x443506
jmp 0x443b8b
cmp eax, 1
jne 0x443b8b
xor dl, dl
mov dword [0x4a6784], 0
mov byte [esp + 0xc0], dl
jmp 0x4436cc
mov edi, dword [esp + 0x14]
mov ebx, dword [esp + 0x24]
cmp ecx, ebx
jge 0x443b8b
cmp edi, 2
jne 0x4436f2
movzx ax, byte [esp + ecx + 0x1bc]
movzx si, byte [esp + ecx + 0x1bd]
shl eax, 8
add eax, esi
jmp 0x443704
cmp edi, 1
jne 0x44479f
movzx ax, byte [esp + ecx + 0x1bc]
cmp ax, 1
jbe 0x443816
mov ecx, dword [esp + 0xc0]
add dl, 9
movzx si, dl
and ecx, 0xff
push 0
push ecx
push esi
mov ecx, ebp
call fcn.00440960
and esi, 0xffff
lea edx, [esp + 0x104]
push esi
push 0x49ca68
push edx
call fcn.0047edef
mov eax, dword [ebp + 0x38]
add esp, 0xc
test eax, eax
jne 0x443754
xor edx, edx
jmp 0x44376a
mov ecx, dword [ebp + 0x3c]
sub ecx, eax
mov eax, 0x6bca1af3
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
lea ecx, [edx + edx*8]
lea edi, [esp + 0x104]
xor eax, eax
mov ebx, dword [ebp + 0x38]
lea edx, [edx + ecx*2]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea ebx, [ebx + edx*4 - 0x4c]
mov esi, ecx
cmp esi, 0xfffffffd
mov dword [esp + 0x20], esi
jbe 0x443798
call fcn.0047e19b
mov ecx, dword [ebx + 4]
test ecx, ecx
je 0x4437bd
mov al, byte [ecx - 1]
test al, al
je 0x4437bd
cmp al, 0xff
je 0x4437bd
test esi, esi
jne 0x4437e1
dec al
push esi
mov byte [ecx - 1], al
mov ecx, ebx
call fcn.004024d0
jmp 0x443812
test esi, esi
jne 0x4437cc
push 1
mov ecx, ebx
call fcn.004024d0
jmp 0x443812
mov eax, dword [ebx + 0xc]
cmp eax, 0x1f
ja 0x4437d8
cmp eax, esi
jae 0x4437e9
push 1
mov ecx, ebx
call fcn.004024d0
push esi
mov ecx, ebx
call fcn.004031a0
mov eax, dword [esp + 0x20]
mov edi, dword [ebx + 4]
mov ecx, eax
lea esi, [esp + 0x104]
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov dword [ebx + 8], eax
mov ebx, dword [ebx + 4]
add ebx, eax
mov byte [ebx], 0
mov ecx, dword [esp + 0x1c]
mov dl, byte [esp + 0xc0]
xor eax, eax
mov ax, word [ebp + 0x134]
add ecx, eax
inc dl
cmp dl, 8
mov dword [esp + 0x1c], ecx
mov byte [esp + 0xc0], dl
jb 0x4436c4
jmp 0x443b8b
mov eax, dword [0x4a6784]
test eax, eax
jne 0x4439f4
mov dl, 1
mov dword [0x4a6784], 1
mov byte [esp + 0x13], dl
mov byte [esp + 0xb8], al
jmp 0x443871
mov edi, dword [esp + 0x14]
mov ebx, dword [esp + 0x24]
cmp ecx, ebx
jge 0x443b8b
cmp edi, 2
jne 0x443897
movzx ax, byte [esp + ecx + 0x1bc]
movzx si, byte [esp + ecx + 0x1bd]
shl eax, 8
add eax, esi
jmp 0x4438a9
cmp edi, 1
jne 0x44479f
movzx ax, byte [esp + ecx + 0x1bc]
test ax, ax
je 0x4439be
cmp dl, 9
movzx si, dl
jne 0x4438bd
xor esi, esi
mov ecx, dword [esp + 0xb8]
push 0
and ecx, 0xff
push ecx
push esi
mov ecx, ebp
call fcn.00440960
and esi, 0xffff
lea edx, [esp + 0xcc]
push esi
push 0x49ca68
push edx
call fcn.0047edef
mov eax, dword [ebp + 0x38]
add esp, 0xc
test eax, eax
jne 0x4438fc
xor edx, edx
jmp 0x443912
mov ecx, dword [ebp + 0x3c]
sub ecx, eax
mov eax, 0x6bca1af3
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
lea ecx, [edx + edx*8]
lea edi, [esp + 0xcc]
xor eax, eax
mov ebx, dword [ebp + 0x38]
lea edx, [edx + ecx*2]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea ebx, [ebx + edx*4 - 0x4c]
mov esi, ecx
cmp esi, 0xfffffffd
mov dword [esp + 0x20], esi
jbe 0x443940
call fcn.0047e19b
mov ecx, dword [ebx + 4]
test ecx, ecx
je 0x443965
mov al, byte [ecx - 1]
test al, al
je 0x443965
cmp al, 0xff
je 0x443965
test esi, esi
jne 0x443989
dec al
push esi
mov byte [ecx - 1], al
mov ecx, ebx
call fcn.004024d0
jmp 0x4439ba
test esi, esi
jne 0x443974
push 1
mov ecx, ebx
call fcn.004024d0
jmp 0x4439ba
mov eax, dword [ebx + 0xc]
cmp eax, 0x1f
ja 0x443980
cmp eax, esi
jae 0x443991
push 1
mov ecx, ebx
call fcn.004024d0
push esi
mov ecx, ebx
call fcn.004031a0
mov eax, dword [esp + 0x20]
mov edi, dword [ebx + 4]
mov ecx, eax
lea esi, [esp + 0xcc]
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov dword [ebx + 8], eax
mov ebx, dword [ebx + 4]
add ebx, eax
mov byte [ebx], 0
mov ecx, dword [esp + 0x1c]
mov dl, byte [esp + 0x13]
xor eax, eax
mov ax, word [ebp + 0x134]
inc dl
add ecx, eax
mov al, byte [esp + 0xb8]
inc al
mov byte [esp + 0x13], dl
cmp al, 9
mov dword [esp + 0x1c], ecx
mov byte [esp + 0xb8], al
jb 0x443869
jmp 0x443b8b
cmp eax, 1
jne 0x443b8b
xor dl, dl
mov dword [0x4a6784], 0
mov byte [esp + 0xa4], dl
jmp 0x443a1a
mov edi, dword [esp + 0x14]
mov ebx, dword [esp + 0x24]
cmp ecx, ebx
jge 0x443b8b
cmp edi, 2
jne 0x443a40
movzx ax, byte [esp + ecx + 0x1bc]
movzx si, byte [esp + ecx + 0x1bd]
shl eax, 8
add eax, esi
jmp 0x443a52
cmp edi, 1
jne 0x44479f
movzx ax, byte [esp + ecx + 0x1bc]
test ax, ax
je 0x443b63
mov ecx, dword [esp + 0xa4]
add dl, 9
movzx si, dl
and ecx, 0xff
push 0
push ecx
push esi
mov ecx, ebp
call fcn.00440960
and esi, 0xffff
lea edx, [esp + 0xfc]
push esi
push 0x49ca68
push edx
call fcn.0047edef
mov eax, dword [ebp + 0x38]
add esp, 0xc
test eax, eax
jne 0x443aa1
xor edx, edx
jmp 0x443ab7
mov ecx, dword [ebp + 0x3c]
sub ecx, eax
mov eax, 0x6bca1af3
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
lea ecx, [edx + edx*8]
lea edi, [esp + 0xfc]
xor eax, eax
mov ebx, dword [ebp + 0x38]
lea edx, [edx + ecx*2]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea ebx, [ebx + edx*4 - 0x4c]
mov esi, ecx
cmp esi, 0xfffffffd
mov dword [esp + 0x20], esi
jbe 0x443ae5
call fcn.0047e19b
mov ecx, dword [ebx + 4]
test ecx, ecx
je 0x443b0a
mov al, byte [ecx - 1]
test al, al
je 0x443b0a
cmp al, 0xff
je 0x443b0a
test esi, esi
jne 0x443b2e
dec al
push esi
mov byte [ecx - 1], al
mov ecx, ebx
call fcn.004024d0
jmp 0x443b5f
test esi, esi
jne 0x443b19
push 1
mov ecx, ebx
call fcn.004024d0
jmp 0x443b5f
mov eax, dword [ebx + 0xc]
cmp eax, 0x1f
ja 0x443b25
cmp eax, esi
jae 0x443b36
push 1
mov ecx, ebx
call fcn.004024d0
push esi
mov ecx, ebx
call fcn.004031a0
mov eax, dword [esp + 0x20]
mov edi, dword [ebx + 4]
mov ecx, eax
lea esi, [esp + 0xfc]
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov dword [ebx + 8], eax
mov ebx, dword [ebx + 4]
add ebx, eax
mov byte [ebx], 0
mov ecx, dword [esp + 0x1c]
mov dl, byte [esp + 0xa4]
xor eax, eax
mov ax, word [ebp + 0x134]
add ecx, eax
inc dl
cmp dl, 6
mov dword [esp + 0x1c], ecx
mov byte [esp + 0xa4], dl
jb 0x443a12
mov ecx, dword [esp + 0x14a4]
mov eax, dword [ecx + 0x20]
cmp eax, 0xffffffff
je 0x443ba2
push eax
mov ecx, ebp
call fcn.004408a0
mov byte [esp + 0x1498], 1
lea ecx, [esp + 0x34]
jmp 0x4445c3
lea edx, [esp + 0x74]
lea ecx, [esp + 0x50]
push edx
call fcn.00411010
xor ebx, ebx
lea ecx, [esp + 0x74]
mov byte [esp + 0x1498], 0x18
mov dword [esp + 0x24], ebx
call fcn.00404470
test ax, ax
jle 0x443c03
push ebx
lea ecx, [esp + 0x78]
call fcn.004043e0
mov byte [esp + ebx + 0x1bc], al
lea ecx, [esp + 0x74]
inc ebx
call fcn.00404470
movsx eax, ax
cmp ebx, eax
jl 0x443bdd
mov dword [esp + 0x24], ebx
lea ecx, [esp + 0x300]
call fcn.0044b550
shr eax, 3
jne 0x443c3d
mov ax, word [ebp + 0xfa]
test ax, ax
jbe 0x4447df
and eax, 0xffff
mov ecx, eax
mov eax, 0x38e38e39
imul ecx
sar edx, 1
mov ecx, edx
shr ecx, 0x1f
lea eax, [edx + ecx + 1]
cmp eax, 2
jne 0x4447df
lea ecx, [esp + 0x300]
call fcn.00454390
mov edi, eax
mov dword [esp + 0x20], 0
cmp edi, ebx
mov dword [esp + 0x14], edi
jge 0x443e34
mov al, byte [esp + edi + 0x1bc]
lea esi, [esp + edi + 0x1bc]
cmp al, 0x40
jbe 0x443d9b
cmp al, 0xa0
je 0x443c9c
and eax, 0xff
sub eax, 0x40
and eax, 0x8000001f
jns 0x443c96
dec eax
or eax, 0xffffffe0
inc eax
je 0x443d9b
mov edx, dword [esp + 0x20]
push 0
push edx
push 1
push esi
mov ecx, ebp
call fcn.004410f0
xor eax, eax
lea ecx, [esp + 0xc4]
mov al, byte [esi]
push eax
push 0x49ca68
push ecx
call fcn.0047edef
mov eax, dword [ebp + 0x38]
add esp, 0xc
test eax, eax
jne 0x443cd2
xor edx, edx
jmp 0x443ce8
mov ecx, dword [ebp + 0x3c]
sub ecx, eax
mov eax, 0x6bca1af3
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, dword [ebp + 0x38]
lea ecx, [edx + edx*8]
lea edi, [esp + 0xc4]
lea edx, [edx + ecx*2]
or ecx, 0xffffffff
lea esi, [eax + edx*4 - 0x4c]
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov dword [esp + 0x1c], esi
mov ebx, ecx
cmp ebx, 0xfffffffd
jbe 0x443d16
call fcn.0047e19b
mov edx, dword [esi + 4]
xor ecx, ecx
cmp edx, ecx
je 0x443d3e
mov al, byte [edx - 1]
test al, al
je 0x443d3e
cmp al, 0xff
je 0x443d3e
cmp ebx, ecx
jne 0x443d62
dec al
mov byte [edx - 1], al
mov dword [esi + 4], ecx
mov dword [esi + 8], ecx
mov dword [esi + 0xc], ecx
jmp 0x443d93
cmp ebx, ecx
jne 0x443d4d
push 1
mov ecx, esi
call fcn.004024d0
jmp 0x443d93
mov eax, dword [esi + 0xc]
cmp eax, 0x1f
ja 0x443d59
cmp eax, ebx
jae 0x443d6a
push 1
mov ecx, esi
call fcn.004024d0
push ebx
mov ecx, esi
call fcn.004031a0
mov eax, dword [esp + 0x1c]
mov ecx, ebx
mov edx, ecx
lea esi, [esp + 0xc4]
mov edi, dword [eax + 4]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [eax + 4]
mov dword [eax + 8], ebx
add ebx, ecx
mov byte [ebx], 0
mov edi, dword [esp + 0x14]
mov ebx, dword [esp + 0x24]
mov al, byte [esp + edi + 0x1bd]
lea esi, [esp + edi + 0x1bd]
cmp al, 0x40
jbe 0x443e14
cmp al, 0xa0
je 0x443dc7
and eax, 0xff
sub eax, 0x40
and eax, 0x8000001f
jns 0x443dc5
dec eax
or eax, 0xffffffe0
inc eax
je 0x443e14
mov eax, dword [esp + 0x20]
push 0
push eax
push 1
push esi
mov ecx, ebp
call fcn.004410f0
xor ecx, ecx
lea edx, [esp + 0xc4]
mov cl, byte [esi]
push ecx
push 0x49ca68
push edx
call fcn.0047edef
add esp, 0xc
lea esi, [ebp + 0x34]
lea eax, [esp + 0xc4]
mov ecx, esi
push eax
call fcn.00446190
dec eax
mov ecx, esi
push eax
call fcn.004461c0
mov ecx, eax
call fcn.0043ca30
xor ecx, ecx
mov cx, word [ebp + 0x134]
add edi, ecx
mov ecx, dword [esp + 0x20]
inc ecx
cmp edi, ebx
mov dword [esp + 0x14], edi
mov dword [esp + 0x20], ecx
jl 0x443c68
mov byte [esp + 0x1498], 1
lea ecx, [esp + 0x74]
jmp 0x4445c3
lea edx, [esp + 0x4c]
lea ecx, [esp + 0x50]
push edx
call fcn.00411010
lea ecx, [esp + 0x4c]
mov byte [esp + 0x1498], 0x19
xor esi, esi
call fcn.00404470
test ax, ax
jle 0x443e8d
push esi
lea ecx, [esp + 0x50]
call fcn.004043e0
mov byte [esp + esi + 0x1bc], al
lea ecx, [esp + 0x4c]
inc esi
call fcn.00404470
movsx eax, ax
cmp esi, eax
jl 0x443e6b
lea ecx, [esp + 0x300]
call fcn.0044b550
mov ebx, eax
shr ebx, 3
mov dword [esp + 0x14], ebx
jne 0x443ed3
mov ax, word [ebp + 0xfa]
test ax, ax
jbe 0x443fe0
and eax, 0xffff
mov ecx, eax
mov eax, 0x38e38e39
imul ecx
sar edx, 1
mov ecx, edx
shr ecx, 0x1f
lea edx, [edx + ecx + 1]
mov dword [esp + 0x14], edx
mov ebx, edx
test ebx, ebx
jle 0x443fe0
lea ecx, [esp + 0x300]
call fcn.00454390
cmp word [ebp + 0x134], 0
mov esi, eax
jne 0x443f50
test ebx, ebx
jle 0x443fe0
mov edi, ebx
mov al, byte [esp + esi + 0x1bc]
test al, al
je 0x443f47
xor ebx, ebx
mov al, byte [esp + esi + 0x1bc]
mov cl, bl
shr al, cl
test al, 1
je 0x443f41
mov ecx, dword [esp + 0x30]
xor eax, eax
cmp ecx, 0x1f
jne 0x443f29
lea eax, [ebx + esi*8]
jmp 0x443f35
cmp ecx, 0x1e
jne 0x443f35
mov eax, esi
shl eax, 8
add eax, ebx
push 0
push 0
push eax
mov ecx, ebp
call fcn.00440960
inc ebx
cmp ebx, 8
jl 0x443f0a
inc esi
dec edi
jne 0x443efd
jmp 0x443fe0
lea ecx, [esp + 0x4c]
xor edi, edi
call fcn.00404470
movsx ecx, ax
cmp esi, ecx
jge 0x443fe0
test ebx, ebx
jle 0x443fc4
mov dword [esp + 0x20], ebx
mov al, byte [esp + esi + 0x1bc]
test al, al
je 0x443fb8
xor ebx, ebx
mov dl, byte [esp + esi + 0x1bc]
mov cl, bl
shr dl, cl
test dl, 1
je 0x443fae
mov ecx, dword [esp + 0x30]
xor eax, eax
cmp ecx, 0x1f
jne 0x443f97
lea eax, [ebx + esi*8]
jmp 0x443fa3
cmp ecx, 0x1e
jne 0x443fa3
mov eax, esi
shl eax, 8
add eax, ebx
push 0
push edi
push eax
mov ecx, ebp
call fcn.00440960
inc ebx
cmp ebx, 8
jl 0x443f77
mov ebx, dword [esp + 0x14]
mov eax, dword [esp + 0x20]
inc esi
dec eax
mov dword [esp + 0x20], eax
jne 0x443f6a
xor eax, eax
lea ecx, [esp + 0x4c]
mov ax, word [ebp + 0x134]
add esi, eax
inc edi
call fcn.00404470
movsx ecx, ax
cmp esi, ecx
jl 0x443f62
mov edx, dword [esp + 0x14a4]
mov eax, dword [edx + 0x20]
cmp eax, 0xffffffff
je 0x443ff7
push eax
mov ecx, ebp
call fcn.004408a0
mov byte [esp + 0x1498], 1
lea ecx, [esp + 0x4c]
jmp 0x4445c3
lea eax, [esp + 0x38]
lea ecx, [esp + 0x50]
push eax
mov dword [ebp + 0x15c], 1
call fcn.00411010
lea ecx, [esp + 0x38]
mov byte [esp + 0x1498], 0x1a
call fcn.00404470
test ax, ax
jle 0x44490f
lea ecx, [esp + 0x38]
call fcn.00404470
lea ecx, [esp + 0x38]
xor esi, esi
movsx ebx, ax
call fcn.00404470
test ax, ax
jle 0x444078
push esi
lea ecx, [esp + 0x3c]
call fcn.004043e0
mov byte [esp + esi + 0x1bc], al
lea ecx, [esp + 0x38]
inc esi
call fcn.00404470
movsx ecx, ax
cmp esi, ecx
jl 0x444056
lea ecx, [esp + 0x300]
call fcn.0044b550
mov edi, eax
shr edi, 3
jne 0x4440b4
mov ax, word [ebp + 0xfa]
test ax, ax
jbe 0x4448f8
and eax, 0xffff
mov ecx, eax
mov eax, 0x38e38e39
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
lea edi, [edx + eax + 1]
test edi, edi
jle 0x4448f8
lea ecx, [esp + 0x300]
call fcn.00454390
mov esi, eax
lea ecx, [esi + edi]
cmp ecx, ebx
jle 0x44481f
mov byte [esp + 0x1498], 1
lea ecx, [esp + 0x38]
jmp 0x4445c3
lea edx, [esp + 0x3c]
lea ecx, [esp + 0x50]
push edx
call fcn.00411010
lea ecx, [esp + 0x3c]
mov byte [esp + 0x1498], 0x1b
call fcn.00404470
test ax, ax
jle 0x444920
lea ecx, [esp + 0x3c]
xor esi, esi
call fcn.00404470
test ax, ax
jle 0x444140
push esi
lea ecx, [esp + 0x40]
call fcn.004043e0
mov byte [esp + esi + 0x1bc], al
lea ecx, [esp + 0x3c]
inc esi
call fcn.00404470
movsx eax, ax
cmp esi, eax
jl 0x44411e
lea ecx, [esp + 0x300]
call fcn.0044b550
mov edi, eax
shr edi, 3
jne 0x44417c
mov ax, word [ebp + 0xfa]
test ax, ax
jbe 0x44424f
and eax, 0xffff
mov ecx, eax
mov eax, 0x38e38e39
imul ecx
sar edx, 1
mov ecx, edx
shr ecx, 0x1f
lea edi, [edx + ecx + 1]
test edi, edi
jle 0x44424f
lea ecx, [esp + 0x300]
call fcn.00454390
mov esi, eax
mov eax, dword [ebp + 0x130]
cmp eax, 0xffffffff
je 0x4441ee
xor ebx, ebx
test eax, eax
jle 0x44424f
push 0
push ebx
lea edx, [esp + esi + 0x1c4]
push edi
push edx
mov ecx, ebp
call fcn.004410f0
mov ax, word [ebp + 0x134]
test ax, ax
je 0x44424f
and eax, 0xffff
lea ecx, [esp + 0x3c]
add esi, eax
call fcn.00404470
movsx eax, ax
cmp esi, eax
jg 0x44424f
mov eax, dword [ebp + 0x130]
inc ebx
cmp ebx, eax
jl 0x4441a7
jmp 0x44424f
cmp word [ebp + 0x134], 0
jne 0x44420e
push 0
push 0
lea ecx, [esp + esi + 0x1c4]
push edi
push ecx
mov ecx, ebp
call fcn.004410f0
jmp 0x44424f
lea ecx, [esp + 0x3c]
xor ebx, ebx
call fcn.00404470
movsx edx, ax
cmp esi, edx
jge 0x44424f
push 0
push ebx
lea eax, [esp + esi + 0x1c4]
push edi
push eax
mov ecx, ebp
call fcn.004410f0
xor ecx, ecx
mov cx, word [ebp + 0x134]
add esi, ecx
lea ecx, [esp + 0x3c]
inc ebx
call fcn.00404470
movsx edx, ax
cmp esi, edx
jl 0x444220
mov eax, dword [esp + 0x14a4]
mov eax, dword [eax + 0x20]
cmp eax, 0xffffffff
je 0x444266
push eax
mov ecx, ebp
call fcn.004408a0
mov byte [esp + 0x1498], 1
lea ecx, [esp + 0x3c]
jmp 0x4445c3
lea ecx, [esp + 0x300]
call fcn.00454390
lea ecx, [esp + 0x44]
mov dword [esp + 0x14], eax
push ecx
lea ecx, [esp + 0x54]
call fcn.00411010
lea ecx, [esp + 0x44]
mov byte [esp + 0x1498], 0x1c
xor esi, esi
call fcn.00404470
test ax, ax
jle 0x4442cf
push esi
lea ecx, [esp + 0x48]
call fcn.004043e0
mov byte [esp + esi + 0x1bc], al
lea ecx, [esp + 0x44]
inc esi
call fcn.00404470
movsx edx, ax
cmp esi, edx
jl 0x4442ad
lea ecx, [esp + 0x300]
call fcn.0044b550
mov esi, eax
shr esi, 3
jne 0x44430b
mov ax, word [ebp + 0xfa]
test ax, ax
jbe 0x444438
and eax, 0xffff
mov ecx, eax
mov eax, 0x38e38e39
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
lea esi, [edx + eax + 1]
test esi, esi
jle 0x444438
mov ecx, dword [ebp + 0xd4]
call fcn.00445290
mov ecx, dword [ebp + 0xd4]
call fcn.00445290
mov bl, al
lea ecx, [esp + 0x44]
and ebx, 0xff
call fcn.00404470
movsx ecx, ax
mov eax, dword [esp + 0x14]
sub ecx, ebx
dec ecx
cmp eax, ecx
jle 0x444359
mov byte [esp + 0x1498], 1
lea ecx, [esp + 0x44]
jmp 0x4445c3
xor ebx, ebx
test esi, esi
jle 0x444438
lea edi, [esp + eax + 0x1bc]
mov dl, byte [edi + ebx]
xor cl, cl
mov byte [esp + 0x1b], dl
mov byte [esp + 0x13], cl
mov al, byte [esp + 0x1b]
shr al, cl
test al, 1
je 0x444420
lea ecx, [esp + 0xab]
push ecx
lea ecx, [esp + 0x144]
call fcn.0041aeb0
lea edx, [esp + 0x140]
lea ecx, [esp + 0x300]
push edx
mov byte [esp + 0x149c], 0x1d
call fcn.0044b3e0
mov al, byte [esp + 0x14]
lea ecx, [esp + 0x2b]
add al, bl
push ecx
lea ecx, [esp + 0x144]
mov byte [esp + 0x2f], al
call fcn.00446010
lea edx, [esp + 0x13]
lea ecx, [esp + 0x140]
push edx
call fcn.00446010
push 0
push 0
lea ecx, [esp + 0x148]
call fcn.0043cc50
push eax
push 0
lea ecx, [esp + 0x150]
call fcn.0043cc60
push eax
mov ecx, ebp
call fcn.004410f0
lea ecx, [esp + 0x140]
mov byte [esp + 0x1498], 0x1c
call fcn.0043cc10
mov cl, byte [esp + 0x13]
inc cl
cmp cl, 8
mov byte [esp + 0x13], cl
jb 0x444377
inc ebx
cmp ebx, esi
jl 0x44436a
mov byte [esp + 0x1498], 1
lea ecx, [esp + 0x44]
jmp 0x4445c3
mov eax, dword [ebp + 0x168]
test eax, eax
jne 0x444467
mov eax, dword [ebp + 0x130]
cmp eax, edi
je 0x444702
mov dword [ebp + 0x168], eax
cmp dword [ebp + 0x164], edi
jne 0x444481
mov eax, dword [ebp + 0x168]
cmp eax, 1
jle 0x444481
dec eax
mov dword [ebp + 0x164], eax
lea eax, [esp + 0x48]
lea ecx, [esp + 0x50]
push eax
call fcn.00411010
lea ecx, [esp + 0x48]
mov byte [esp + 0x1498], 0x1e
call fcn.00404470
test ax, ax
jle 0x4445b7
lea ecx, [esp + 0x48]
xor esi, esi
call fcn.00404470
test ax, ax
jle 0x4444db
push esi
lea ecx, [esp + 0x4c]
call fcn.004043e0
mov byte [esp + esi + 0x1bc], al
lea ecx, [esp + 0x48]
inc esi
call fcn.00404470
movsx ecx, ax
cmp esi, ecx
jl 0x4444b9
lea ecx, [esp + 0x300]
call fcn.0044b550
mov ebx, eax
shr ebx, 3
jne 0x444517
mov ax, word [ebp + 0xfa]
test ax, ax
jbe 0x4445b7
and eax, 0xffff
mov ecx, eax
mov eax, 0x38e38e39
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
lea ebx, [edx + eax + 1]
test ebx, ebx
jle 0x4445b7
lea ecx, [esp + 0x300]
call fcn.00454390
mov esi, eax
mov eax, dword [ebp + 0x168]
test eax, eax
jle 0x4445a0
xor edi, edi
test eax, eax
jle 0x44457e
push 0
push edi
lea ecx, [esp + esi + 0x1c4]
push ebx
push ecx
mov ecx, ebp
call fcn.004410f0
mov ax, word [ebp + 0x134]
test ax, ax
je 0x444573
and eax, 0xffff
lea ecx, [esp + 0x48]
add esi, eax
call fcn.00404470
movsx edx, ax
cmp esi, edx
jg 0x44457e
mov eax, dword [ebp + 0x168]
inc edi
cmp edi, eax
jl 0x44453d
mov eax, dword [ebp + 0x164]
test eax, eax
jle 0x4445a0
mov ecx, dword [ebp + 0x168]
sub ecx, 2
cmp eax, ecx
jg 0x444599
dec dword [esp + 0x78]
dec eax
mov dword [ebp + 0x164], eax
mov edx, dword [esp + 0x14a4]
mov eax, dword [edx + 0x20]
cmp eax, 0xffffffff
je 0x4445b7
push eax
mov ecx, ebp
call fcn.004408a0
mov byte [esp + 0x1498], 1
lea ecx, [esp + 0x48]
call fcn.00404260
mov esi, dword [esp + 0x78]
mov eax, dword [esp + 0xa0]
inc esi
cmp esi, eax
mov dword [esp + 0x78], esi
jl 0x441baa
jmp 0x444650
lea ecx, [esp + 0x2c]
call fcn.00404470
movsx eax, ax
lea ecx, [edi + 1]
cmp ecx, eax
jge 0x44463f
mov cl, byte [esp + edi + 0x1bc]
lea eax, [esp + edi + 0x1bc]
cmp cl, 0x92
jne 0x444613
mov cl, byte [esp + edi + 0x1bd]
test cl, cl
je 0x444621
push 0
push 0
push 2
push eax
mov ecx, ebp
call fcn.004410f0
xor edx, edx
lea ecx, [esp + 0x2c]
mov dx, word [ebp + 0x134]
add edi, edx
call fcn.00404470
movsx eax, ax
lea ecx, [edi + 1]
cmp ecx, eax
jl 0x4445f5
mov byte [esp + 0x1498], 1
lea ecx, [esp + 0x2c]
call fcn.00404260
lea ecx, [esp + 0x300]
mov byte [esp + 0x1498], 0
call fcn.0044a770
mov dword [esp + 0x1498], 0xffffffff
lea ecx, [esp + 0x50]
call fcn.00410bf0
mov eax, 1
mov ecx, dword [esp + 0x1490]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0x148c
ret 0xc
lea ecx, [esp + 0x2c]
call fcn.00404470
movsx edx, ax
lea eax, [edi + 1]
cmp eax, edx
jge 0x44463f
mov esi, 1
lea ecx, [esp + 0x1bc]
lea edi, [esp + edi + 0x1bc]
sub esi, ecx
cmp byte [edi], 0x92
jne 0x4446cc
mov al, byte [edi + 1]
test al, al
je 0x4446da
push 0
push 0
push 2
push edi
mov ecx, ebp
call fcn.004410f0
lea ecx, [esp + 0x2c]
add edi, 2
call fcn.00404470
movsx edx, ax
lea eax, [esi + edi]
cmp eax, edx
jl 0x4446c0
jmp 0x44463f
mov ecx, dword [esp + 0x14a8]
mov dword [ecx], 1
lea ecx, [esp + 0x300]
mov byte [esp + 0x1498], 0
call fcn.0044a770
lea ecx, [esp + 0x50]
mov dword [esp + 0x1498], edi
call fcn.00410bf0
xor eax, eax
jmp 0x44467d
mov edx, dword [esp + 0x14a8]
mov eax, dword [esp + 0x90]
push eax
mov dword [edx], 1
call fcn.0047e190
add esp, 4
lea ecx, [esp + 0x40]
mov dword [esp + 0x90], esi
mov dword [esp + 0x94], esi
mov dword [esp + 0x98], esi
mov byte [esp + 0x1498], 1
call fcn.00404260
lea ecx, [esp + 0x300]
mov byte [esp + 0x1498], 0
call fcn.0044a770
lea ecx, [esp + 0x50]
mov dword [esp + 0x1498], 0xffffffff
call fcn.00410bf0
xor eax, eax
jmp 0x44467d
lea ecx, [esp + 0x34]
mov byte [esp + 0x1498], 1
call fcn.00404260
lea ecx, [esp + 0x300]
mov byte [esp + 0x1498], 0
call fcn.0044a770
lea ecx, [esp + 0x50]
mov dword [esp + 0x1498], 0xffffffff
call fcn.00410bf0
xor eax, eax
jmp 0x44467d
lea ecx, [esp + 0x74]
mov byte [esp + 0x1498], 1
call fcn.00404260
lea ecx, [esp + 0x300]
mov byte [esp + 0x1498], 0
call fcn.0044a770
lea ecx, [esp + 0x50]
mov dword [esp + 0x1498], 0xffffffff
call fcn.00410bf0
xor eax, eax
jmp 0x44467d
lea ecx, [esp + 0x300]
call fcn.004449c0
mov word [ebp + 0x160], ax
mov eax, dword [ebp + 0x130]
cmp eax, 0xffffffff
je 0x444891
xor ebx, ebx
test eax, eax
jle 0x4448f8
push 0
push ebx
lea ecx, [esp + esi + 0x1c4]
push edi
push ecx
mov ecx, ebp
call fcn.004410f0
mov ax, word [ebp + 0x134]
test ax, ax
je 0x4448f8
and eax, 0xffff
lea ecx, [esp + 0x38]
add esi, eax
call fcn.00404470
movsx edx, ax
lea eax, [esi + edi]
cmp eax, edx
jg 0x4448f8
mov eax, dword [ebp + 0x130]
inc ebx
cmp ebx, eax
jl 0x444847
jmp 0x4448f8
cmp word [ebp + 0x134], 0
jne 0x4448b1
push 0
push 0
lea ecx, [esp + esi + 0x1c4]
push edi
push ecx
mov ecx, ebp
call fcn.004410f0
jmp 0x4448f8
lea ecx, [esp + 0x38]
xor ebx, ebx
call fcn.00404470
movsx edx, ax
lea eax, [esi + edi]
cmp eax, edx
jge 0x4448f8
push 0
push ebx
lea ecx, [esp + esi + 0x1c4]
push edi
push ecx
mov ecx, ebp
call fcn.004410f0
xor edx, edx
lea ecx, [esp + 0x38]
mov dx, word [ebp + 0x134]
add esi, edx
inc ebx
call fcn.00404470
movsx eax, ax
lea ecx, [esi + edi]
cmp ecx, eax
jl 0x4448c6
mov edx, dword [esp + 0x14a4]
mov eax, dword [edx + 0x20]
cmp eax, 0xffffffff
je 0x44490f
push eax
mov ecx, ebp
call fcn.004408a0
mov byte [esp + 0x1498], 1
lea ecx, [esp + 0x38]
jmp 0x44464b
lea ecx, [esp + 0x3c]
mov byte [esp + 0x1498], 1
call fcn.00404260
lea ecx, [esp + 0x300]
mov byte [esp + 0x1498], 0
call fcn.0044a770
mov dword [esp + 0x1498], edi
jmp 0x44466f