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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x44]
cmp eax, dword [ecx + 8]
jbe 0x444380
sub esp, 0xc4
mov ecx, dword [esp + 0xc8]
test byte [ecx], al
mov edx, dword [esp + 0xcc]
test byte [edx], al
mov ebx, dword [0x638348]
test ebx, ebx
seta bl
mov byte [esp + 0x1d], bl
mov ebp, dword [0x63834c]
test ebp, ebp
xchg ebp, ebx
sete bl
xchg ebp, ebx
xchg esi, ebx
seta bl
xchg esi, ebx
mov eax, ecx
mov ecx, dword [esp + 0xd4]
mov edi, esi
mov esi, dword [esp + 0xd8]
lea ebx, [esi + ecx]
mov dword [esp + 0x30], ebx
lea esi, [esi + ecx - 0x20000]
xchg esi, ebx
neg ebx
xchg esi, ebx
xchg esi, ebx
neg ebx
xchg esi, ebx
shl ebx, 1
sar esi, 0x1f
and esi, ebx
mov dword [esp + 0x58], esi
lea ebx, [edx + esi]
mov dword [esp + 0x80], ebx
movzx ecx, byte [esp + 0x1d]
and ebp, ecx
or ebp, edi
xchg ebp, eax
test al, al
xchg ebp, eax
jne 0x44330d
xor ecx, ecx
xor ebp, ebp
jmp 0x443334
call fcn.0045d280
mov eax, dword [esp]
mov ecx, dword [esp + 4]
mov edx, dword [esp + 0xcc]
mov ebx, dword [esp + 0x80]
mov esi, dword [esp + 0x58]
mov ebp, eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x20], ebp
mov dword [esp + 0x24], ecx
mov edi, dword [esp + 0x30]
mov dword [esp + 0x64], eax
xor eax, eax
mov dword [esp + 0x40], eax
xor eax, eax
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x64]
jmp 0x44336b
inc ecx
mov esi, dword [esp + 0x58]
mov dword [esp + 0x40], ecx
mov dword [esp + 0x2c], ebp
mov ecx, dword [esp + 0x24]
mov ebp, dword [esp + 0x20]
mov ecx, dword [esp + 0x40]
cmp ecx, edi
jge 0x443447
lea ebp, [eax + ecx*8]
mov ebp, dword [ebp]
test ebp, ebp
je 0x443413
mov ebp, dword fs:[0x14]
mov ebp, dword [ebp]
mov ebp, dword [ebp + 0x18]
mov esi, dword [esp + 0x2c]
lea ebx, [esi + 1]
mov ecx, dword [ebp + 0x94]
mov dword [esp + 0x28], ecx
mov esi, dword [ebp + 0x98]
shl ecx, 0x11
mov edx, dword [esp + 0x28]
xor ecx, edx
mov edx, esi
xor esi, ecx
shr ecx, 7
xor ecx, esi
mov esi, edx
shr edx, 0x10
xor edx, ecx
lea ecx, [esi + edx]
mov eax, ecx
mov ecx, edx
mul ebx
mov dword [ebp + 0x94], esi
mov dword [ebp + 0x98], ecx
mov ecx, dword [esp + 0xcc]
movzx ebp, word [ecx + edx*2]
mov esi, dword [esp + 0x2c]
mov word [ecx + esi*2], bp
mov ebp, dword [esp + 0x40]
mov word [ecx + edx*2], bp
mov eax, dword [esp + 0xc8]
mov ecx, ebp
mov edx, dword [esp + 0xcc]
mov ebp, ebx
mov ebx, dword [esp + 0x80]
jmp 0x443356
lea ebp, [eax + ecx*8 + 4]
mov esi, dword [0x638500]
test esi, esi
jne 0x44342a
mov dword [ebp], 0
jmp 0x44343e
mov esi, edi
mov edi, ebp
xor eax, eax
call fcn.0045d410
mov eax, dword [esp + 0xc8]
mov edi, esi
mov ebp, dword [esp + 0x2c]
jmp 0x443356
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x5c], eax
xor eax, eax
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x5c]
jmp 0x44347a
mov edi, dword [esp + 0x3c]
movzx esi, word [edx + edi*2]
mov word [ebx + ebp*2], si
lea ebp, [edi + 1]
mov esi, dword [esp + 0x58]
mov edi, dword [esp + 0x30]
mov dword [esp + 0x3c], ebp
mov ebp, dword [esp + 0x20]
mov ebp, dword [esp + 0x3c]
cmp ebp, ecx
jge 0x44349d
movzx edi, word [edx + ebp*2]
lea edi, [eax + edi*8]
mov edi, dword [edi]
mov dword [esp + 0x98], edi
jmp 0x444355
mov esi, dword [esp + 0x58]
jmp 0x44345b
lea ebp, [ecx - 1]
jmp 0x4434be
mov edx, dword [esp + 0x34]
mov word [ebx + edx*2], cx
dec ebp
mov esi, dword [esp + 0x58]
mov edx, dword [esp + 0xcc]
mov ecx, dword [esp + 0x2c]
mov edi, dword [esp + 0x30]
test ebp, ebp
jl 0x4434f4
mov dword [esp + 0x38], ebp
movzx ecx, word [ebx + ebp*2]
mov word [esp + 0x1e], cx
movzx edi, cx
lea edi, [eax + edi*8]
mov edi, dword [edi]
mov dword [esp + 0x94], edi
movzx edx, word [edx + esi]
mov word [ebx + ebp*2], dx
xor edx, edx
jmp 0x4442d5
movzx ecx, word [esp + 0x1e]
jmp 0x4434a2
mov dword [esp], eax
mov dword [esp + 4], edi
mov dword [esp + 8], edi
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], edi
call fcn.004430f0
mov eax, dword [esp + 0xd4]
mov ecx, dword [esp + 0xc8]
mov edx, dword [esp + 0x2c]
mov ebx, dword [esp + 0xcc]
xor ebp, ebp
jmp 0x44354d
mov esi, dword [esp + 0x58]
lea ebp, [esi + 1]
mov eax, dword [esp + 0xd4]
mov ecx, dword [esp + 0xc8]
mov edx, dword [esp + 0x2c]
mov ebx, dword [esp + 0xcc]
cmp ebp, edx
jge 0x4438f2
mov dword [esp + 0x58], ebp
movzx esi, word [ebx + ebp*2]
mov dword [esp + 0x54], esi
lea edi, [ecx + esi*8]
mov edi, dword [edi]
mov dword [esp + 0x90], edi
cmp eax, esi
jle 0x4435a3
mov esi, dword [edi + 0x10]
test esi, esi
jne 0x4442b7
lea eax, [edi + 0x20]
mov dword [esp], eax
call fcn.00405b90
mov eax, dword [esp + 4]
test eax, eax
jne 0x443670
mov ecx, dword [esp + 0x90]
mov edx, dword [ecx]
cmp dword [ecx + 4], edx
jbe 0x44352d
jmp 0x4435dd
test byte [edi], al
lea eax, [edi + 0x28]
mov dword [esp], eax
call fcn.00405b90
mov eax, dword [esp + 4]
test eax, eax
jne 0x443846
mov ecx, dword [esp + 0x90]
mov edx, dword [ecx]
test edx, edx
ja 0x44378e
mov edx, dword [ecx + 0x10]
test edx, edx
je 0x44352d
jmp 0x44371c
mov eax, dword [ecx + 0x14]
mov edx, dword [esp + 0x54]
mov ebx, dword [esp + 0xc8]
lea ebp, [ebx + edx*8 + 4]
mov ebp, dword [ebp]
movzx esi, word [ecx + 0xc]
imul esi, dword [ecx + 0x18]
add esi, dword [ecx + 8]
mov dword [esp], eax
mov dword [esp + 4], esi
mov dword [esp + 8], ebp
call fcn.0040f140
mov eax, dword [esp + 0x90]
mov ecx, dword [eax + 0x18]
inc ecx
mov dword [eax + 0x18], ecx
cmp dword [eax + 4], ecx
jne 0x443627
mov dword [eax + 0x18], 0
inc dword [eax]
mov eax, dword [esp + 0xc8]
mov dword [esp], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 4], eax
mov dword [esp + 8], eax
mov ecx, dword [esp + 0x80]
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], eax
call fcn.00443160
mov ecx, 0xffffffff
mov edx, 0xffffffff
mov eax, dword [esp + 0x54]
xor ebx, ebx
jmp 0x44396e
mov dword [esp + 0x74], eax
lea edi, [esp + 0xa8]
xor eax, eax
call fcn.0045d509
lea ecx, [0x444390]
mov dword [esp + 0xa8], ecx
mov ecx, dword [esp + 0xc8]
mov dword [esp + 0xac], ecx
mov edx, dword [esp + 0x30]
mov dword [esp + 0xb0], edx
mov dword [esp + 0xb4], edx
mov ebx, dword [esp + 0x80]
mov dword [esp + 0xb8], ebx
mov ebx, dword [esp + 0x2c]
mov dword [esp + 0xbc], ebx
mov dword [esp + 0xc0], edx
mov edx, dword [esp + 0x54]
lea ecx, [ecx + edx*8 + 4]
mov ecx, dword [ecx]
mov ebx, dword [esp + 0x90]
mov dword [esp], ebx
mov ebx, dword [esp + 0x74]
mov dword [esp + 4], ebx
mov dword [esp + 8], ecx
lea ecx, [esp + 0xa8]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], 2
call fcn.00404ea0
mov ecx, 0xffffffff
mov edx, 0xffffffff
mov eax, dword [esp + 0x54]
xor ebx, ebx
jmp 0x44396e
mov eax, dword [esp + 0xc8]
mov dword [esp], eax
mov ecx, dword [esp + 0x30]
mov dword [esp + 4], ecx
mov dword [esp + 8], ecx
mov edx, dword [esp + 0x80]
mov dword [esp + 0xc], edx
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], ecx
call fcn.00443160
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0xc8]
lea ecx, [ecx + eax*8 + 4]
mov ecx, dword [ecx]
test ecx, ecx
je 0x44377d
mov eax, dword [esp + 0x90]
mov eax, dword [eax + 0x14]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.0040f350
mov eax, dword [esp + 0x54]
mov ecx, 0xffffffff
mov edx, 0xffffffff
xor ebx, ebx
jmp 0x44396e
nop
mov eax, dword [esp + 0x54]
mov edx, dword [esp + 0xc8]
lea ebx, [edx + eax*8 + 4]
mov ebx, dword [ebx]
movzx ebp, word [ecx + 0xc]
imul ebp, dword [ecx + 0x1c]
add ebp, dword [ecx + 8]
test ebx, ebx
je 0x4437d1
mov dword [esp + 0x78], ebp
mov eax, dword [ecx + 0x14]
mov dword [esp], eax
mov dword [esp + 4], ebx
mov dword [esp + 8], ebp
call fcn.0040f140
mov ecx, dword [esp + 0x90]
mov ebp, dword [esp + 0x78]
mov eax, dword [ecx + 0x14]
mov dword [esp], eax
mov dword [esp + 4], ebp
call fcn.0040f350
mov eax, dword [esp + 0x90]
mov ecx, dword [eax + 0x1c]
inc ecx
mov dword [eax + 0x1c], ecx
cmp dword [eax + 4], ecx
jne 0x4437fa
mov dword [eax + 0x1c], 0
dec dword [eax]
mov eax, dword [esp + 0xc8]
mov dword [esp], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 4], eax
mov dword [esp + 8], eax
mov ecx, dword [esp + 0x80]
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], eax
call fcn.00443160
mov ecx, 0xffffffff
mov edx, 0xffffffff
mov eax, dword [esp + 0x54]
mov ebx, 1
jmp 0x44396e
mov dword [esp + 0x74], eax
lea edi, [esp + 0xa8]
xor eax, eax
call fcn.0045d509
lea ecx, [0x4443e0]
mov dword [esp + 0xa8], ecx
mov ecx, dword [esp + 0xc8]
mov dword [esp + 0xac], ecx
mov edx, dword [esp + 0x30]
mov dword [esp + 0xb0], edx
mov dword [esp + 0xb4], edx
mov ebx, dword [esp + 0x80]
mov dword [esp + 0xb8], ebx
mov ebx, dword [esp + 0x2c]
mov dword [esp + 0xbc], ebx
mov dword [esp + 0xc0], edx
mov edx, dword [esp + 0x54]
lea ecx, [ecx + edx*8 + 4]
mov ecx, dword [ecx]
mov ebx, dword [esp + 0x90]
mov dword [esp], ebx
mov ebx, dword [esp + 0x74]
mov dword [esp + 4], ebx
mov dword [esp + 8], ecx
lea ecx, [esp + 0xa8]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], 2
call fcn.00405930
mov ecx, 0xffffffff
mov edx, 0xffffffff
mov eax, dword [esp + 0x54]
mov ebx, 1
jmp 0x44396e
movzx ebx, byte [esp + 0xdc]
test bl, bl
je 0x443936
mov ebx, dword fs:[0x14]
mov ebx, dword [ebx]
mov ebp, dword [ebx + 0xc8]
test ebp, ebp
jne 0x4442a1
mov dword [esp + 0x88], ebx
lea ebp, [ebx + 0xc8]
mov dword [esp + 0xa4], ebp
mov esi, ebp
xor edi, edi
jmp 0x4439f5
mov dword [esp], ecx
mov eax, dword [esp + 0x30]
mov dword [esp + 4], eax
mov dword [esp + 8], eax
mov ecx, dword [esp + 0x80]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], eax
call fcn.00443160
mov ecx, 0xffffffff
mov edx, 0xffffffff
mov eax, 0xffffffff
xor ebx, ebx
test edx, edx
xchg ebp, ebx
seta bl
xchg ebp, ebx
test ecx, ecx
xchg esi, ebx
sete bl
xchg esi, ebx
xchg edi, ebx
setg bl
xchg edi, ebx
and esi, ebp
or edi, esi
xchg edi, eax
test al, al
xchg edi, eax
je 0x4439c2
mov byte [esp + 0x1b], bl
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x20]
sub edx, eax
mov eax, dword [esp + 0x24]
sbb ecx, eax
mov dword [esp + 4], ecx
mov dword [esp], edx
mov dword [esp + 8], 1
call fcn.0042ae40
mov eax, dword [esp + 0x44]
movzx ebx, byte [esp + 0x1b]
mov dword [esp + 0xe0], eax
mov byte [esp + 0xe4], bl
add esp, 0xc4
ret
mov ebx, dword [esp + 0x58]
inc ebx
lea ebp, [edi + 0x2c]
mov ecx, edx
mov edx, dword [esp + 0x2c]
mov esi, dword [esp + 0xa4]
mov edi, ebx
mov ebx, dword [esp + 0x88]
cmp edi, edx
jge 0x443c82
mov dword [esp + 0x58], edi
mov dword [esp + 0x7c], ebp
mov eax, dword [esp + 0x80]
movzx edx, word [eax + edi*2]
mov dword [esp + 0x54], edx
lea ebx, [ecx + edx*8]
mov ebx, dword [ebx]
mov dword [esp + 0x90], ebx
call fcn.00435290
mov edi, dword [esp]
test byte [edi], al
mov eax, dword [esp + 0x20]
test eax, eax
setne cl
mov edx, dword [esp + 0x24]
test edx, edx
setne bl
mov ebp, dword [0x638500]
mov esi, dword [esp + 0x54]
mov edx, dword [esp + 0xc8]
lea eax, [edx + esi*8 + 4]
or ebx, ecx
test ebp, ebp
jne 0x443a62
mov ecx, dword [esp + 0x88]
mov dword [edi], ecx
jmp 0x443a79
mov ecx, eax
mov eax, dword [esp + 0x88]
call fcn.0045d410
mov eax, ecx
mov ecx, dword [esp + 0x88]
mov dword [esp + 0x70], edi
mov byte [edi + 0x24], 1
mov ebp, dword [0x638500]
mov eax, dword [eax]
test ebp, ebp
jne 0x443a92
mov dword [edi + 0xc], eax
jmp 0x443aa0
lea ebp, [edi + 0xc]
mov edi, ebp
call fcn.0045d410
mov edi, dword [esp + 0x70]
mov dword [edi + 0x18], 0
mov dword [edi + 0x1c], 0
test bl, bl
je 0x443ac0
mov dword [edi + 0x18], 0xffffffff
mov dword [edi + 0x1c], 0xffffffff
mov ebx, dword [0x638500]
test ebx, ebx
jne 0x443add
mov ebx, dword [esp + 0x90]
mov dword [edi + 0x34], ebx
mov ebp, dword [esp + 0x7c]
mov dword [ebp], edi
jmp 0x443aff
lea ebx, [edi + 0x34]
mov eax, dword [esp + 0x90]
mov ebp, edi
mov edi, ebx
call fcn.0045d410
mov edi, dword [esp + 0x7c]
mov ebx, eax
mov eax, ebp
call fcn.0045d410
mov edi, ebp
mov ebp, dword [esp + 0xd4]
cmp ebp, esi
jle 0x443bc8
test byte [ebx], al
mov esi, dword [0x638500]
test esi, esi
jne 0x443b23
mov dword [edi + 4], 0
jmp 0x443b33
lea esi, [edi + 4]
xor eax, eax
mov edi, esi
call fcn.0045d410
mov edi, dword [esp + 0x70]
lea esi, [ebx + 0x2c]
mov eax, dword [ebx + 0x2c]
test eax, eax
je 0x443b7d
mov ebp, dword [0x638500]
test ebp, ebp
jne 0x443b52
mov dword [edi + 8], eax
mov dword [eax + 4], edi
mov dword [ebx + 0x2c], edi
jmp 0x443b71
lea ebx, [edi + 8]
mov ebp, edi
mov edi, ebx
call fcn.0045d410
lea edi, [eax + 4]
mov eax, ebp
call fcn.0045d410
mov edi, esi
call fcn.0045d410
mov edi, ebp
mov eax, dword [esp + 0xd4]
jmp 0x4439d7
mov eax, ebp
mov ebp, dword [0x638500]
test ebp, ebp
jne 0x443b9b
mov dword [edi + 8], 0
mov dword [ebx + 0x28], edi
mov dword [ebx + 0x2c], edi
jmp 0x4439d7
lea ebp, [edi + 8]
mov edi, ebp
xor eax, eax
call fcn.0045d410
lea edi, [ebx + 0x28]
mov eax, dword [esp + 0x70]
call fcn.0045d410
mov edi, esi
call fcn.0045d410
mov edi, eax
mov eax, dword [esp + 0xd4]
jmp 0x4439d7
test byte [ebx], al
mov esi, dword [0x638500]
test esi, esi
jne 0x443bdd
mov dword [edi + 4], 0
jmp 0x443bed
lea esi, [edi + 4]
xor eax, eax
mov edi, esi
call fcn.0045d410
mov edi, dword [esp + 0x70]
lea esi, [ebx + 0x24]
mov eax, dword [ebx + 0x24]
test eax, eax
je 0x443c37
mov ebp, dword [0x638500]
test ebp, ebp
jne 0x443c0c
mov dword [edi + 8], eax
mov dword [eax + 4], edi
mov dword [ebx + 0x24], edi
jmp 0x443c2b
lea ebx, [edi + 8]
mov ebp, edi
mov edi, ebx
call fcn.0045d410
lea edi, [eax + 4]
mov eax, ebp
call fcn.0045d410
mov edi, esi
call fcn.0045d410
mov edi, ebp
mov eax, dword [esp + 0xd4]
jmp 0x4439d7
mov eax, ebp
mov ebp, dword [0x638500]
test ebp, ebp
jne 0x443c55
mov dword [edi + 8], 0
mov dword [ebx + 0x20], edi
mov dword [ebx + 0x24], edi
jmp 0x4439d7
lea ebp, [edi + 8]
mov edi, ebp
xor eax, eax
call fcn.0045d410
lea edi, [ebx + 0x20]
mov eax, dword [esp + 0x70]
call fcn.0045d410
mov edi, esi
call fcn.0045d410
mov edi, eax
mov eax, dword [esp + 0xd4]
jmp 0x4439d7
test byte [ebx], al
lea edi, [ebx + 0x44]
mov dword [esp + 0xa0], edi
mov ebp, dword [0x638500]
test ebp, ebp
jne 0x443ca1
mov dword [ebx + 0x44], 0
jmp 0x443ca8
xor eax, eax
call fcn.0045d410
nop
nop
lea eax, [ebx + 0x6d]
mov dword [esp], eax
mov byte [esp + 4], 1
call fcn.004021b0
lea eax, [0x51740c]
mov dword [esp], eax
mov dword [esp + 4], 0
mov word [esp + 8], 0x1809
mov dword [esp + 0xc], 1
call fcn.004350c0
mov eax, dword [esp + 0x88]
mov byte [eax + 0x6c], 0
mov ecx, dword [esp + 0xc8]
mov dword [esp], ecx
mov edx, dword [esp + 0x30]
mov dword [esp + 4], edx
mov dword [esp + 8], edx
mov ebx, dword [esp + 0x80]
mov dword [esp + 0xc], ebx
mov ebp, dword [esp + 0x2c]
mov dword [esp + 0x10], ebp
mov dword [esp + 0x14], edx
call fcn.004430f0
nop
mov eax, dword [esp + 0x88]
lea ecx, [eax + 0xe0]
mov dword [esp], ecx
mov dword [esp + 4], 0
call fcn.00402110
mov eax, dword [esp + 0x88]
mov ecx, dword [eax + 0x44]
mov edx, dword [0x638500]
test edx, edx
jne 0x443d57
mov dword [eax + 0x44], 0
jmp 0x443d69
mov edi, dword [esp + 0xa0]
mov edx, eax
xor eax, eax
call fcn.0045d410
mov eax, edx
mov edx, dword [eax + 0xc8]
mov ebx, edx
jmp 0x443d76
mov edx, dword [edx + 0x2c]
test edx, edx
je 0x443db2
mov byte [edx + 0x24], 0
mov ebp, dword [0x638500]
test ebp, ebp
jne 0x443d98
mov dword [edx + 0xc], 0
mov dword [edx + 0x34], 0
jmp 0x443d73
lea edi, [edx + 0xc]
mov ebp, eax
xor eax, eax
call fcn.0045d410
lea edi, [edx + 0x34]
xor eax, eax
call fcn.0045d410
mov eax, ebp
jmp 0x443d73
mov edx, dword [0x638500]
test edx, edx
jne 0x443dc8
mov dword [eax + 0xc8], 0
jmp 0x443dd6
mov edi, dword [esp + 0xa4]
xor eax, eax
call fcn.0045d410
mov dword [esp + 0x9c], ecx
xor eax, eax
xor edx, edx
mov ebp, 0xffffffff
xor esi, esi
mov edi, 0xffffffff
mov eax, 0xffffffff
mov dword [esp + 0x48], eax
xor eax, eax
jmp 0x443e26
mov dword [esp], ecx
call fcn.00435560
mov eax, dword [esp + 0x58]
inc eax
mov ecx, dword [esp + 0x9c]
mov ebx, dword [esp + 0x6c]
mov edx, dword [esp + 0x8c]
mov ebp, dword [esp + 0x44]
movzx esi, byte [esp + 0x1c]
mov edi, dword [esp + 0x4c]
mov dword [esp + 0x4c], edi
xchg esi, eax
mov byte [esp + 0x1c], al
xchg esi, eax
mov dword [esp + 0x44], ebp
mov esi, dword [esp + 0x2c]
cmp eax, esi
jge 0x4441d8
mov dword [esp + 0x58], eax
mov dword [esp + 0x8c], edx
mov dword [esp + 0x6c], ebx
mov esi, dword [esp + 0x80]
movzx esi, word [esi + eax*2]
mov edx, dword [esp + 0xc8]
lea ebp, [edx + esi*8]
cmp ebx, ecx
jne 0x443eb6
mov dword [esp + 0x84], ebp
mov dword [esp + 0x54], esi
mov ecx, dword [ebx + 0x18]
mov dword [esp + 0x50], ecx
test ecx, ecx
seta dl
mov ebp, dword [ebx + 0x1c]
test ebp, ebp
xchg esi, ebx
sete bl
xchg esi, ebx
setg cl
movzx ebx, byte [ebx + 0x25]
and esi, edx
or ecx, esi
test cl, cl
je 0x443ea0
mov ecx, dword [esp + 0x50]
jmp 0x443ea6
mov ebp, edi
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x84]
mov esi, dword [esp + 0x54]
jmp 0x44418f
lea ebp, [edx + esi*8]
mov ebp, dword [ebp]
mov ecx, dword [esp + 0xd4]
cmp ecx, esi
jle 0x44402b
test byte [ebp], al
mov esi, dword [ebx + 8]
lea ecx, [ebx + 4]
mov edx, dword [ebx + 4]
test esi, esi
je 0x443f94
mov dword [esp + 0xa4], ecx
lea ecx, [ebx + 8]
test edx, edx
je 0x443f48
mov ebp, dword [0x638500]
test ebp, ebp
jne 0x443f10
mov dword [esi + 4], edx
mov dword [edx + 8], esi
mov dword [ebx + 4], 0
mov dword [ebx + 8], 0
jmp 0x444179
lea ebp, [esi + 4]
mov edi, ebp
mov eax, edx
call fcn.0045d410
lea edi, [eax + 8]
mov eax, esi
call fcn.0045d410
mov edi, dword [esp + 0xa4]
xor eax, eax
call fcn.0045d410
mov edi, ecx
call fcn.0045d410
mov eax, dword [esp + 0x58]
mov edi, dword [esp + 0x4c]
jmp 0x444179
mov edx, dword [0x638500]
test edx, edx
jne 0x443f68
mov dword [esi + 4], 0
mov dword [ebp + 0x2c], esi
mov dword [ebx + 8], 0
jmp 0x444179
lea edx, [esi + 4]
mov edi, edx
xor eax, eax
call fcn.0045d410
lea edi, [ebp + 0x2c]
mov eax, esi
call fcn.0045d410
mov edi, ecx
xor eax, eax
call fcn.0045d410
mov eax, dword [esp + 0x58]
mov edi, dword [esp + 0x4c]
jmp 0x444179
test edx, edx
je 0x443fe4
mov esi, dword [0x638500]
test esi, esi
jne 0x443fb8
mov dword [edx + 8], 0
mov dword [ebp + 0x28], edx
mov dword [ebx + 4], 0
jmp 0x444179
lea esi, [edx + 8]
mov edi, esi
xor eax, eax
call fcn.0045d410
lea edi, [ebp + 0x28]
mov eax, edx
call fcn.0045d410
mov edi, ecx
xor eax, eax
call fcn.0045d410
mov eax, dword [esp + 0x58]
mov edi, dword [esp + 0x4c]
jmp 0x444179
cmp dword [ebp + 0x28], ebx
jne 0x444179
mov ecx, dword [0x638500]
test ecx, ecx
jne 0x44400a
mov dword [ebp + 0x28], 0
mov dword [ebp + 0x2c], 0
jmp 0x444179
lea ecx, [ebp + 0x28]
mov edx, edi
mov edi, ecx
mov esi, eax
xor eax, eax
call fcn.0045d410
lea edi, [ebp + 0x2c]
call fcn.0045d410
mov eax, esi
mov edi, edx
jmp 0x444179
test byte [ebp], al
mov esi, dword [ebx + 8]
lea ecx, [ebx + 4]
mov edx, dword [ebx + 4]
test esi, esi
je 0x4440f4
mov dword [esp + 0xa4], ecx
lea ecx, [ebx + 8]
test edx, edx
je 0x4440a8
mov ebp, dword [0x638500]
test ebp, ebp
jne 0x444070
mov dword [esi + 4], edx
mov dword [edx + 8], esi
mov dword [ebx + 4], 0
mov dword [ebx + 8], 0
jmp 0x444179
lea ebp, [esi + 4]
mov edi, ebp
mov eax, edx
call fcn.0045d410
lea edi, [eax + 8]
mov eax, esi
call fcn.0045d410
mov edi, dword [esp + 0xa4]
xor eax, eax
call fcn.0045d410
mov edi, ecx
call fcn.0045d410
mov eax, dword [esp + 0x58]
mov edi, dword [esp + 0x4c]
jmp 0x444179
mov edx, dword [0x638500]
test edx, edx
jne 0x4440c8
mov dword [esi + 4], 0
mov dword [ebp + 0x24], esi
mov dword [ebx + 8], 0
jmp 0x444179
lea edx, [esi + 4]
mov edi, edx
xor eax, eax
call fcn.0045d410
lea edi, [ebp + 0x24]
mov eax, esi
call fcn.0045d410
mov edi, ecx
xor eax, eax
call fcn.0045d410
mov eax, dword [esp + 0x58]
mov edi, dword [esp + 0x4c]
jmp 0x444179
test edx, edx
je 0x44413e
mov esi, dword [0x638500]
test esi, esi
jne 0x444115
mov dword [edx + 8], 0
mov dword [ebp + 0x20], edx
mov dword [ebx + 4], 0
jmp 0x444179
lea esi, [edx + 8]
mov edi, esi
xor eax, eax
call fcn.0045d410
lea edi, [ebp + 0x20]
mov eax, edx
call fcn.0045d410
mov edi, ecx
xor eax, eax
call fcn.0045d410
mov eax, dword [esp + 0x58]
mov edi, dword [esp + 0x4c]
jmp 0x444179
cmp dword [ebp + 0x20], ebx
jne 0x444179
mov ecx, dword [0x638500]
test ecx, ecx
jne 0x44415d
mov dword [ebp + 0x20], 0
mov dword [ebp + 0x24], 0
jmp 0x444179
lea ecx, [ebp + 0x20]
mov edx, edi
mov edi, ecx
mov esi, eax
xor eax, eax
call fcn.0045d410
lea edi, [ebp + 0x24]
call fcn.0045d410
mov eax, esi
mov edi, edx
mov edx, dword [esp + 0x8c]
mov esi, dword [esp + 0x44]
movzx ebx, byte [esp + 0x1c]
mov ebp, edi
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x48], ecx
mov dword [esp + 0x4c], ebp
mov byte [esp + 0x1c], bl
mov dword [esp + 0x44], esi
mov dword [esp + 0x8c], edx
mov ecx, dword [esp + 0x6c]
mov edx, dword [ecx + 0x2c]
mov dword [esp + 0x6c], edx
mov edx, dword [0x638500]
test edx, edx
jne 0x4441c7
mov dword [ecx + 0x2c], 0
jmp 0x443dfa
lea edx, [ecx + 0x2c]
mov edi, edx
xor eax, eax
call fcn.0045d410
jmp 0x443dfa
test edx, edx
je 0x44428b
mov eax, dword [esp + 0xd4]
cmp eax, ebp
jle 0x4441f8
movzx eax, byte [esp + 0x1c]
test al, al
je 0x444245
xor eax, eax
jmp 0x4441fd
movzx eax, byte [esp + 0x1c]
mov byte [esp + 0x1b], al
mov ecx, dword [esp + 0xc8]
mov dword [esp], ecx
mov ecx, dword [esp + 0x30]
mov dword [esp + 4], ecx
mov dword [esp + 8], ecx
mov edx, dword [esp + 0x80]
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], esi
mov dword [esp + 0x14], ecx
call fcn.00443160
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x48]
mov eax, dword [esp + 0x44]
movzx ebx, byte [esp + 0x1b]
jmp 0x44396e
mov eax, dword [esp + 0xc8]
mov dword [esp], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 4], eax
mov dword [esp + 8], eax
mov ecx, dword [esp + 0x80]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], esi
mov dword [esp + 0x14], eax
call fcn.00443160
lea eax, [0x4f6960]
mov dword [esp], eax
lea eax, [0x53e8fc]
mov dword [esp + 4], eax
call fcn.004321b0
lea eax, [0x50eca3]
mov dword [esp], eax
mov dword [esp + 4], 0x14
call fcn.004328e0
lea eax, [0x50d7ce]
mov dword [esp], eax
mov dword [esp + 4], 0x11
call fcn.004328e0
mov esi, edx
jmp 0x444245
mov ecx, dword [esp + 0x34]
mov word [ebx + ecx*2], dx
mov edi, dword [esp + 0x94]
movzx ecx, word [esp + 0x1e]
mov edx, esi
mov esi, dword [esp + 0x58]
mov dword [esp + 0x34], edx
shl edx, 1
lea esi, [edx + 1]
cmp ebp, esi
jle 0x4434a2
add edx, 2
cmp ebp, edx
jle 0x444325
mov ecx, dword [esp + 0x34]
lea ebp, [ebx + ecx*4 + 2]
movzx ebp, word [ebp]
lea ebp, [eax + ebp*8]
mov ebp, dword [ebp]
lea ecx, [ebx + ecx*4 + 4]
movzx ecx, word [ecx]
lea ecx, [eax + ecx*8]
mov ecx, dword [ecx]
cmp ecx, ebp
jbe 0x44431c
movzx ecx, word [esp + 0x1e]
mov ebp, dword [esp + 0x38]
mov esi, edx
jmp 0x444325
movzx ecx, word [esp + 0x1e]
mov ebp, dword [esp + 0x38]
movzx edx, word [ebx + esi*2]
movzx ecx, dx
lea ecx, [eax + ecx*8]
mov ecx, dword [ecx]
cmp ecx, edi
ja 0x4442bb
jmp 0x4434ed
mov esi, dword [esp + 0x54]
sar esi, 1
movzx edi, word [ebx + esi*2]
mov word [ebx + ebp*2], di
mov edi, dword [esp + 0x98]
mov ebp, esi
mov esi, dword [esp + 0x58]
test ebp, ebp
jle 0x44345b
lea esi, [ebp - 1]
shr esi, 0x1f
lea esi, [ebp + esi - 1]
mov dword [esp + 0x54], esi
and esi, 0xfffffffe
movzx esi, word [ebx + esi]
lea esi, [eax + esi*8]
mov esi, dword [esi]
cmp edi, esi
ja 0x44433a
jmp 0x443497
call fcn.0045c000
jmp fcn.00443260