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

Disassembly:
sub esp, 0x35c
push ebx
push ebp
push esi
push edi
mov esi, ecx
mov ecx, dword [esi + 0xa7964]
push 0
mov ebp, 0x18
mov ebx, 3
mov byte [esp + 0x28], 0xff
call fcn.0048b6a0
cmp eax, 0x1c
ja case.0x442779.15
xor ecx, ecx
mov cl, byte [eax + 0x4451a8]
jmp dword [ecx*4 + 0x445168]
mov ecx, dword [esi + 0xa7964]
call fcn.0048b6d0
cmp eax, 2
jne 0x44515c
mov ecx, dword [esi + 0xa7964]
push 1
call fcn.0048b6a0
mov bl, byte [esi + 0xa7981]
push eax
mov ecx, esi
mov byte [esi + 0xa7981], 1
call fcn.00445940
mov ecx, dword [esi + 0xa7964]
mov byte [esi + 0xa7981], bl
call fcn.0048b620
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x35c
ret
mov al, byte [esi + 0xa7980]
test al, al
je 0x442814
mov al, byte [esi + 0xa7981]
test al, al
je 0x4427fa
mov edx, dword [esi + 0xa7990]
mov eax, dword [esi + 0xa7994]
neg edx
shl edx, 1
add eax, edx
jmp 0x44283d
mov eax, dword [esi + 0xa798c]
mov ecx, dword [esi + 0xa7994]
neg eax
shl eax, 1
add ecx, eax
mov dword [esi + 0xa7994], ecx
jmp 0x442843
mov eax, dword [esi + 0xa7978]
cmp eax, 1
jne 0x44282a
mov eax, dword [esi + 0xa7994]
add eax, 0xffffffe2
jmp 0x44283d
cmp eax, 2
mov eax, dword [esi + 0xa7994]
jne 0x44283a
add eax, 0xffffffeb
jmp 0x44283d
add eax, 0xffffffdc
mov dword [esi + 0xa7994], eax
mov eax, dword [esi + 0xa7970]
cmp dword [esi + 0xa7994], eax
jge 0x442e2f
mov ecx, dword [esi + 0xa7964]
mov dword [esi + 0xa7994], eax
call fcn.0048b620
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x35c
ret
mov eax, dword [esi + 0xa7994]
inc eax
cmp eax, 0xb40
jae 0x442e2f
mov cl, byte [esi + eax + 0xa6db4]
test cl, cl
jne 0x4428ac
inc eax
cmp eax, 0xb40
jb 0x442883
mov ecx, dword [esi + 0xa7964]
call fcn.0048b620
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x35c
ret
mov ecx, dword [esi + 0xa7974]
cmp eax, ecx
jl 0x4428b8
mov eax, ecx
mov ecx, dword [esi + 0xa7964]
mov dword [esi + 0xa7994], eax
call fcn.0048b620
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x35c
ret
mov cl, byte [esi + 0xa79a0]
mov edx, dword [esi + 0xa7968]
neg cl
sbb ecx, ecx
and ecx, 0x30
add ecx, edx
mov edi, ecx
jmp 0x442e22
mov ecx, dword [esi + 0xa7964]
call fcn.0048b6d0
cmp eax, 2
jne 0x44515c
mov ecx, dword [esi + 0xa7964]
push 1
call fcn.0048b6a0
mov edi, eax
cmp edi, 0x31
jl 0x442e2f
cmp edi, 0x3e
jg 0x442e2f
mov al, byte [esi + edi*8 + 0xa7770]
sub edi, 0x31
test al, al
je 0x442e2f
mov ecx, esi
call fcn.00446210
mov edx, dword [esi + edi*8 + 0xa78f4]
mov ecx, dword [esi + 0xa7964]
mov dword [esi + 0xa7998], edx
call fcn.0048b620
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x35c
ret
mov ecx, esi
call fcn.00446210
mov al, byte [esi + 0xa79a2]
test al, al
je 0x4429d6
cmp dword [esi + 0xa79a8], 1
jle 0x4429b8
mov eax, dword [esi + 0xa79a4]
push eax
lea edx, [esi + 0xa79ac]
lea ecx, [eax + 1]
push edx
mov dword [esi + 0xa79a4], ecx
call fcn.004898e0
add esp, 4
push eax
push str._s__02d.png
call fcn.00489a30
mov ecx, dword [esi + 8]
add esp, 0xc
push eax
lea eax, [esi + 0x2b8]
push eax
call fcn.00408fa0
push 0xff
push 0xff
push 0xff
lea ecx, [esi + 0x2b8]
push ecx
mov ecx, dword [esi + 8]
call fcn.00408eb0
mov ecx, dword [esi + 0xa7964]
mov byte [esi + 0xa79a2], 0
mov dword [esi + 0xa7998], 0
call fcn.0048b620
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x35c
ret
mov eax, dword [esi + 0xa799c]
test eax, eax
je 0x442a24
mov ecx, esi
call fcn.00446210
mov ecx, dword [esi + 0xa7964]
call fcn.0048b620
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x35c
ret
mov edx, dword [esi + 0xa7970]
mov ecx, dword [esi + 0xa7964]
mov dword [esi + 0xa7994], edx
call fcn.0048b620
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x35c
ret
mov ecx, dword [esi + 0xa7964]
mov byte [esi + 0xa7987], 1
call fcn.0048b620
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x35c
ret
mov ecx, dword [esi + 0xa7964]
call fcn.0048b6d0
cmp eax, 4
jne 0x44515c
mov ecx, dword [esi + 0xa7964]
push 1
call fcn.0048b6a0
mov ecx, dword [esi + 0xa7964]
push 2
lea edi, [eax + eax*4]
call fcn.0048b6a0
mov ecx, dword [esi + 0xa7964]
lea eax, [eax + edi*2]
push 3
lea edi, [eax + eax*4]
call fcn.0048b6a0
mov cl, byte [esi + 0xa7980]
test cl, cl
lea eax, [eax + edi*2 - 0x14d0]
je 0x442adf
mov ecx, dword [esi + 0xa7990]
imul ecx, eax
shl ecx, 1
mov dword [esi + 0xa7994], ecx
mov ecx, dword [esi + 0xa7964]
call fcn.0048b620
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x35c
ret
mov ecx, dword [esi + 0xa7978]
cmp ecx, 1
jne 0x442b1f
lea eax, [eax + eax*4]
lea ecx, [eax + eax*8]
shl ecx, 3
mov eax, 0x2aaaaaab
imul ecx
mov ecx, dword [esi + 0xa7964]
sar edx, 1
mov eax, edx
shr eax, 0x1f
add edx, eax
mov dword [esi + 0xa7994], edx
call fcn.0048b620
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x35c
ret
lea eax, [eax + eax*4]
cmp ecx, 2
lea ecx, [eax + eax*8]
jne 0x442b5a
shl ecx, 3
mov eax, 0x78787879
imul ecx
sar edx, 3
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
mov ecx, dword [esi + 0xa7964]
mov dword [esi + 0xa7994], edx
call fcn.0048b620
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x35c
ret
shl ecx, 3
mov eax, 0x66666667
imul ecx
mov ecx, dword [esi + 0xa7964]
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
mov dword [esi + 0xa7994], edx
call fcn.0048b620
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x35c
ret
mov ecx, dword [esi + 0xa7964]
call fcn.0048b6d0
mov ecx, dword [esi + 0xa7964]
dec eax
push eax
call fcn.0048b6a0
cmp eax, 0x3f
jne 0x44515c
mov ecx, dword [esi + 0xa7964]
mov edi, 1
call fcn.0048b6d0
dec eax
cmp eax, edi
jle 0x442e2f
mov ecx, dword [esi + 0xa7964]
push edi
call fcn.0048b6a0
cmp eax, 0x31
jl 0x442c00
cmp eax, 0x3e
jg 0x442c00
mov edx, dword [esi + 0xa7968]
lea ecx, [edi - 1]
imul edx, ecx
mov ecx, dword [esi + 0xa7998]
sub eax, 0x31
add edx, ecx
mov dword [esi + eax*8 + 0xa78f4], edx
mov byte [esi + eax*8 + 0xa78f8], 1
mov ecx, dword [esi + 0xa7964]
inc edi
call fcn.0048b6d0
dec eax
cmp edi, eax
jl 0x442bc4
mov ecx, dword [esi + 0xa7964]
call fcn.0048b620
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x35c
ret
mov ecx, dword [esi + 0xa7964]
call fcn.0048b6d0
cmp eax, 2
jl 0x44515c
mov ecx, dword [esi + 0xa7964]
push 1
call fcn.0048b6a0
sub eax, 0x56
je 0x442c78
dec eax
jne 0x442e2f
mov ecx, dword [esi + 0xa7964]
mov byte [esi + 0xa798a], 0
mov byte [esi + 0xa7988], 0
call fcn.0048b620
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x35c
ret
mov ecx, dword [esi + 0xa7964]
mov byte [esi + 0xa798a], 1
mov byte [esi + 0xa7988], 1
call fcn.0048b620
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x35c
ret
mov ecx, dword [esi + 0xa7964]
call fcn.0048b6d0
cmp eax, 2
jl 0x44515c
mov ecx, dword [esi + 0xa7964]
mov edi, 1
push edi
call fcn.0048b6a0
cmp eax, 0x73
ja case.0x442779.10
xor ecx, ecx
mov cl, byte [eax + 0x445268]
jmp dword [ecx*4 + 0x4451c8]
mov ecx, dword [esi + 0xa7964]
push edi
call fcn.0048b6a0
mov cl, byte [esi + 0xa7980]
test cl, cl
je 0x442cf7
mov cl, byte [esi + 0xa7989]
jmp 0x442cfd
mov cl, byte [esi + 0xa7987]
test cl, cl
je 0x442d03
add eax, eax
test eax, eax
jle 0x442db3
mov ebx, eax
mov edi, 2
mov ecx, dword [esi + 0xa7994]
cmp ecx, dword [esi + 0xa7974]
jge 0x442dac
mov al, byte [esi + 0xa7985]
test al, al
je 0x442d62
mov edx, dword [esi + 0xa799c]
push 0xff
push 0xff
shl edx, 5
lea eax, [edx + esi]
mov edx, dword [eax + 0x2dc]
push 0xff
push edx
push edi
push 0
push ecx
mov ecx, dword [esi + 8]
add eax, 0x2d8
push eax
call fcn.00408f30
mov al, byte [esi + 0xa7984]
test al, al
je 0x442d9f
mov ecx, dword [esi + 0xa799c]
mov eax, dword [esi + 0xa7994]
push 0xff
push 0xff
push 0xff
push edi
push edi
push 0x62
shl ecx, 5
lea edx, [ecx + esi + 0x2d8]
mov ecx, dword [esi + 8]
push eax
push edx
call fcn.00408f30
add dword [esi + 0xa7994], edi
mov byte [esi + 0xa79a1], 1
dec ebx
jne 0x442d12
mov ecx, dword [esi + 0xa7964]
call fcn.0048b620
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x35c
ret
mov ecx, dword [esi + 0xa7964]
call fcn.0048b6d0
cmp eax, 4
jne 0x44515c
mov ecx, dword [esi + 0xa7964]
push 2
call fcn.0048b6a0
mov ecx, dword [esi + 0xa7964]
push 3
lea ebx, [eax + eax*4]
call fcn.0048b6a0
lea eax, [eax + ebx*2 - 0x210]
cmp eax, edi
jl 0x442e2f
cmp eax, 0x63
jg 0x442e2f
mov edi, dword [esi + 0xa7968]
imul edi, eax
mov al, byte [esi + 0xa79a0]
neg al
sbb eax, eax
and eax, 0x30
add edi, eax
mov ecx, esi
call fcn.00446210
add dword [esi + 0xa7998], edi
mov ecx, dword [esi + 0xa7964]
call fcn.0048b620
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x35c
ret
mov ecx, dword [esi + 0xa7964]
call fcn.0048b6d0
cmp eax, 6
jne 0x44515c
mov ecx, dword [esi + 0xa7964]
push 2
call fcn.0048b6a0
mov ecx, dword [esi + 0xa7964]
push 3
lea edi, [eax + eax*4]
call fcn.0048b6a0
mov ecx, dword [esi + 0xa7964]
lea eax, [eax + edi*2]
push 4
lea edi, [eax + eax*4]
call fcn.0048b6a0
mov ecx, dword [esi + 0xa7964]
lea eax, [eax + edi*2]
push 5
lea edi, [eax + eax*4]
call fcn.0048b6a0
lea eax, [eax + edi*2 - 0xd050]
test eax, eax
jl 0x442ebd
cmp eax, 0x270f
jg 0x442ebd
mov ecx, dword [esi + 0xa7970]
lea edx, [ecx + eax*2]
mov dword [esi + 0xa7994], edx
mov ecx, dword [esi + 0xa7964]
call fcn.0048b620
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x35c
ret
mov ecx, dword [esi + 0xa7964]
mov byte [esi + 0xa7983], 1
call fcn.0048b620
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x35c
ret
mov ecx, dword [esi + 0xa7964]
mov byte [esi + 0xa7983], 0
call fcn.0048b620
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x35c
ret
mov ecx, dword [esi + 0xa7964]
mov byte [esi + 0xa7982], 0
call fcn.0048b620
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x35c
ret
mov ecx, dword [esi + 0xa7964]
call fcn.0048b6d0
cmp eax, 3
jl 0x44515c
mov ecx, dword [esi + 0xa7964]
push 2
call fcn.0048b6a0
cmp eax, 0x32
je 0x442fe4
cmp eax, 0x39
mov ecx, dword [esi + 0xa7964]
jne 0x442e35
call fcn.0048b6d0
cmp eax, 4
jne 0x44515c
mov ecx, dword [esi + 0xa7964]
push 3
call fcn.0048b6a0
test eax, eax
jne 0x442faa
mov al, byte [esi + 0xa796c]
test al, al
je 0x442f9b
mov dword [esi + 0xa7968], 0x3c
jmp 0x442e2f
mov dword [esi + 0xa7968], 0x2d
jmp 0x442e2f
cmp eax, edi
jl 0x442e2f
cmp eax, 0xff
jg 0x442e2f
lea eax, [eax + eax*4]
lea ecx, [eax + eax*8]
shl ecx, 3
mov eax, 0x88888889
imul ecx
add edx, ecx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add edx, eax
mov dword [esi + 0xa7968], edx
jmp 0x442e2f
mov ecx, dword [esi + 0xa7964]
call fcn.0048b6d0
cmp eax, 5
jl 0x44515c
mov ecx, dword [esi + 0xa7964]
push 3
call fcn.0048b6a0
mov ecx, dword [esi + 0xa7964]
mov edi, eax
push 4
shl edi, 8
call fcn.0048b6a0
mov ecx, dword [esi + 0xa7964]
add edi, eax
mov dword [esp + 0x20], edi
call fcn.0048b6d0
lea ecx, [edi + 5]
cmp eax, ecx
jne 0x44515c
cmp dword [esi + 0xa7978], 1
jne 0x443043
mov eax, 3
jmp 0x443056
cmp dword [esi + 0xa7968], 0x2d
jne 0x443051
mov ebx, 2
mov eax, 4
mov cl, byte [esi + 0xa7987]
test cl, cl
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], 4
je 0x443073
lea edx, [eax + eax]
mov dword [esp + 0x10], edx
mov al, byte [esi + 0xa7988]
test al, al
je 0x443090
xor ebp, ebp
mov dword [esp + 0x14], 8
add ebx, ebx
mov byte [esi + 0xa79a0], 1
test edi, edi
mov dword [esp + 0x1c], 0
jle 0x4448d6
mov edi, dword [esp + 0x24]
mov eax, dword [esi + 0xa7994]
cmp eax, 0xb40
jge 0x443315
mov cl, byte [esi + 0xa7985]
test cl, cl
je 0x4430fa
mov ecx, dword [esp + 0x10]
mov edx, dword [esi + 0xa799c]
push 0xff
push 0xff
push 0xff
push 0x60
push ecx
mov ecx, dword [esi + 8]
push 0
push eax
shl edx, 5
lea eax, [edx + esi + 0x2d8]
push eax
call fcn.00408f30
mov byte [esp + 0x24], 0
mov edi, dword [esp + 0x24]
mov ecx, dword [esp + 0x1c]
add ecx, 5
push ecx
mov ecx, dword [esi + 0xa7964]
call fcn.0048b6a0
test al, 0x80
mov dword [esp + 0x18], eax
je 0x44314b
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
push edi
push edi
push edi
push edx
mov edx, dword [esi + 0xa7994]
push eax
mov eax, dword [esi + 0xa799c]
lea ecx, [ebp + ebp]
push ecx
shl eax, 5
lea ecx, [eax + esi + 0x2d8]
push edx
push ecx
mov ecx, dword [esi + 8]
call fcn.00408f30
mov eax, dword [esp + 0x18]
test al, 0x40
je 0x443186
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
push edi
push edi
push edi
push edx
mov edx, dword [esi + 0xa7994]
push eax
mov eax, dword [esi + 0xa799c]
lea ecx, [ebx + ebp]
shl ecx, 1
push ecx
shl eax, 5
lea ecx, [eax + esi + 0x2d8]
push edx
push ecx
mov ecx, dword [esi + 8]
call fcn.00408f30
mov eax, dword [esp + 0x18]
test al, 0x20
je 0x4431c2
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
push edi
push edi
push edi
push edx
mov edx, dword [esi + 0xa7994]
push eax
mov eax, dword [esi + 0xa799c]
lea ecx, [ebp + ebx*2]
shl ecx, 1
push ecx
shl eax, 5
lea ecx, [eax + esi + 0x2d8]
push edx
push ecx
mov ecx, dword [esi + 8]
call fcn.00408f30
mov eax, dword [esp + 0x18]
test al, 0x10
je 0x443202
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
push edi
push edi
push edi
push edx
lea ecx, [ebp + ebx*2]
push eax
mov eax, dword [esi + 0xa7994]
mov edx, ebx
add edx, ecx
mov ecx, dword [esi + 0xa799c]
shl edx, 1
push edx
shl ecx, 5
lea edx, [ecx + esi + 0x2d8]
mov ecx, dword [esi + 8]
push eax
push edx
call fcn.00408f30
mov eax, dword [esp + 0x18]
test al, 8
je 0x44323e
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
push edi
push edi
push edi
push eax
mov eax, dword [esi + 0xa7994]
push ecx
mov ecx, dword [esi + 0xa799c]
lea edx, [ebp + ebx*4]
shl edx, 1
push edx
shl ecx, 5
lea edx, [ecx + esi + 0x2d8]
mov ecx, dword [esi + 8]
push eax
push edx
call fcn.00408f30
mov eax, dword [esp + 0x18]
test al, 4
je 0x44327e
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
push edi
push edi
push edi
push eax
push ecx
mov ecx, dword [esi + 0xa7994]
lea edx, [ebp + ebx*4]
mov eax, ebx
add eax, edx
mov edx, dword [esi + 0xa799c]
shl eax, 1
push eax
shl edx, 5
push ecx
mov ecx, dword [esi + 8]
lea eax, [edx + esi + 0x2d8]
push eax
call fcn.00408f30
mov eax, dword [esp + 0x18]
test al, 2
je 0x4432bd
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
push edi
push edi
push edi
push ecx
lea eax, [ebx + ebx*2]
lea ecx, [ebp + eax*2]
mov eax, dword [esi + 0xa799c]
push edx
mov edx, dword [esi + 0xa7994]
shl ecx, 1
push ecx
shl eax, 5
lea ecx, [eax + esi + 0x2d8]
push edx
push ecx
mov ecx, dword [esi + 8]
call fcn.00408f30
mov eax, dword [esp + 0x18]
test al, 1
je 0x4432fc
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
push edi
push edi
push edi
push edx
mov edx, dword [esi + 0xa7994]
push eax
mov eax, dword [esi + 0xa799c]
lea ecx, [ebx*8]
sub ecx, ebx
add ecx, ebp
shl ecx, 1
push ecx
shl eax, 5
lea ecx, [eax + esi + 0x2d8]
push edx
push ecx
mov ecx, dword [esi + 8]
call fcn.00408f30
mov eax, dword [esi + 0xa7994]
mov edx, dword [esp + 0x10]
add eax, edx
mov dword [esi + 0xa7994], eax
mov byte [esi + 0xa79a1], 1
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
inc eax
cmp eax, ecx
mov dword [esp + 0x1c], eax
jl 0x4430a4
jmp 0x4448d6
mov byte [esi + 0xa7982], 1
jmp 0x442e2f
mov ecx, dword [esi + 0xa7964]
call fcn.0048b6d0
mov ecx, dword [esi + 0xa7964]
dec eax
push eax
call fcn.0048b6a0
cmp eax, 0x2e
jne 0x44515c
mov ecx, dword [esi + 0xa7964]
mov ebp, 2
call fcn.0048b6d0
cmp eax, ebp
jle 0x442e2f
lea ebx, [ebp + 2]
lea ecx, [ebx - 1]
push ecx
mov ecx, dword [esi + 0xa7964]
call fcn.0048b6a0
mov ecx, dword [esi + 0xa7964]
push ebp
mov edi, eax
call fcn.0048b6a0
mov ecx, dword [esi + 0xa7964]
lea edx, [eax + eax*4]
lea eax, [edi + edx*2]
push ebx
lea edi, [eax + eax*4]
call fcn.0048b6a0
lea ecx, [eax + edi*2 - 0x14d0]
cmp ecx, 1
jl 0x4433ea
cmp ecx, 0x89
jg 0x4433ea
mov al, byte [esi + 0xa7980]
dec ecx
test al, al
je 0x4433d5
mov eax, dword [esi + 0xa7990]
imul eax, ecx
shl eax, 1
jmp 0x4433db
lea eax, [ecx + ecx*8]
shl eax, 2
cmp eax, 0xb40
jae 0x4433ea
mov byte [eax + esi + 0xa6db4], 1
mov ecx, dword [esi + 0xa7964]
add ebp, 4
call fcn.0048b6d0
cmp ebp, eax
jl 0x443374
jmp 0x442e2f
mov ecx, dword [esi + 0xa7964]
call fcn.0048b6d0
mov ecx, dword [esi + 0xa7964]
dec eax
push eax
call fcn.0048b6a0
cmp eax, 0x2e
jne 0x44515c
mov ecx, dword [esi + 0xa7964]
mov ebp, 2
call fcn.0048b6d0
cmp eax, ebp
jle 0x442e2f
mov ecx, dword [esi + 0xa7964]
lea ebx, [ebp + 2]
lea eax, [ebx - 1]
push eax
call fcn.0048b6a0
mov ecx, dword [esi + 0xa7964]
push ebp
mov edi, eax
call fcn.0048b6a0
lea ecx, [eax + eax*4]
lea eax, [edi + ecx*2]
mov ecx, dword [esi + 0xa7964]
push ebx
lea edi, [eax + eax*4]
call fcn.0048b6a0
lea ecx, [eax + edi*2 - 0x14d0]
cmp ecx, 1
jl 0x4434b4
cmp ecx, 0x89
jg 0x4434b4
mov al, byte [esi + 0xa7980]
dec ecx
test al, al
je 0x44349f
mov eax, dword [esi + 0xa7990]
imul eax, ecx
shl eax, 1
jmp 0x4434a5
lea eax, [ecx + ecx*8]
shl eax, 2
cmp eax, 0xb40
jae 0x4434b4
mov byte [eax + esi + 0xa6db4], 0
mov ecx, dword [esi + 0xa7964]
add ebp, 4
call fcn.0048b6d0
cmp ebp, eax
jl 0x44343e
jmp 0x442e2f
mov ecx, dword [esi + 0xa7964]
call fcn.0048b6d0
cmp eax, 0x24
jne 0x44515c
mov ecx, dword [esi + 0xa7964]
push 2
call fcn.0048b6a0
mov ecx, dword [esi + 0xa7964]
push 3
mov ebx, eax
call fcn.0048b6a0
cmp ebx, 0x78
jl 0x442e2f
cmp ebx, 0x7a
jg 0x442e2f
cmp eax, 0x21
jl 0x442e2f
cmp eax, 0x7e
jg 0x442e2f
sub ebx, 0x78
sub eax, 0x21
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x24], ebx
mov ebp, 4
lea ebx, [esp + eax + 0x3c]
mov edi, 2
mov ecx, dword [esi + 0xa7964]
mov eax, ebp
push eax
inc ebp
call fcn.0048b6a0
mov edx, eax
shr edx, 7
and dl, 1
mov byte [ebx - 0x10], dl
mov ecx, eax
shr ecx, 6
and cl, 1
mov byte [ebx], cl
mov edx, eax
shr edx, 5
and dl, 1
mov byte [ebx + 0x10], dl
mov ecx, eax
shr ecx, 4
and cl, 1
mov byte [ebx + 0x20], cl
mov edx, eax
shr edx, 3
and dl, 1
mov byte [ebx + 0x30], dl
mov ecx, eax
mov edx, eax
shr ecx, 2
shr edx, 1
and cl, 1
mov byte [ebx + 0x40], cl
and dl, 1
and al, 1
mov byte [ebx + 0x50], dl
mov byte [ebx + 0x60], al
add ebx, 0x80
dec edi
jne 0x44354b
mov eax, dword [esp + 0x1c]
inc eax
cmp eax, 0x10
mov dword [esp + 0x1c], eax
jl 0x443542
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x18]
lea ecx, [eax + eax*2]
shl ecx, 4
sub ecx, eax
lea eax, [edx + ecx*2]
lea ebp, [eax + eax*2]
xor ebx, ebx
shl ebp, 4
mov dword [esp + 0x1c], ebp
lea edi, [esp + 0x2c]
jmp 0x4435ea
mov ebp, dword [esp + 0x1c]
mov eax, 0x55555556
imul ebx
mov eax, edx
shr eax, 0x1f
add edx, eax
add edx, ebp
lea ebp, [edx + edx*2]
xor ecx, ecx
shl ebp, 4
mov eax, 0x55555556
imul ecx
mov eax, edx
shr eax, 0x1f
add edx, eax
mov al, byte [edi + ecx]
add edx, ebp
inc ecx
cmp ecx, 0x30
mov byte [edx + esi + 0x83b4], al
jl 0x443602
inc ebx
add edi, 0x10
cmp ebx, 0x30
jl 0x4435e6
jmp 0x442e2f
mov ecx, dword [esi + 0xa7964]
call fcn.0048b6d0
cmp eax, 0x4c
jne 0x44515c
mov ecx, dword [esi + 0xa7964]
push 2
call fcn.0048b6a0
mov ecx, dword [esi + 0xa7964]
push 3
mov ebx, eax
call fcn.0048b6a0
cmp ebx, 0x78
jl 0x442e2f
cmp ebx, 0x7a
jg 0x442e2f
cmp eax, 0x21
jl 0x442e2f
cmp eax, 0x7e
jg 0x442e2f
sub ebx, 0x78
sub eax, 0x21
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x24], ebx
mov ebp, 4
lea ebx, [esp + eax + 0x144]
mov edi, 3
mov ecx, dword [esi + 0xa7964]
mov eax, ebp
push eax
inc ebp
call fcn.0048b6a0
mov ecx, eax
shr ecx, 7
and cl, 1
mov byte [ebx - 0x18], cl
mov edx, eax
shr edx, 6
and dl, 1
mov byte [ebx], dl
mov ecx, eax
shr ecx, 5
and cl, 1
mov byte [ebx + 0x18], cl
mov edx, eax
shr edx, 4
and dl, 1
mov byte [ebx + 0x30], dl
mov ecx, eax
shr ecx, 3
and cl, 1
mov byte [ebx + 0x48], cl
mov edx, eax
mov ecx, eax
shr edx, 2
shr ecx, 1
and dl, 1
mov byte [ebx + 0x60], dl
and cl, 1
and al, 1
mov byte [ebx + 0x78], cl
mov byte [ebx + 0x90], al
add ebx, 0xc0
dec edi
jne 0x4436af
mov eax, dword [esp + 0x1c]
inc eax
cmp eax, 0x18
mov dword [esp + 0x1c], eax
jl 0x4436a3
mov eax, dword [esp + 0x24]
lea edx, [eax + eax*2]
shl edx, 4
sub edx, eax
mov eax, dword [esp + 0x18]
lea eax, [eax + edx*2]
lea ebx, [eax + eax*2]
xor ebp, ebp
shl ebx, 4
mov dword [esp + 0x1c], ebx
lea edi, [esp + 0x12c]
jmp 0x443758
mov ebx, dword [esp + 0x1c]
mov eax, ebp
cdq
sub eax, edx
sar eax, 1
add eax, ebx
lea ebx, [eax + eax*2]
xor ecx, ecx
shl ebx, 4
mov eax, ecx
cdq
sub eax, edx
mov dl, byte [edi + ecx]
sar eax, 1
add eax, ebx
inc ecx
cmp ecx, 0x30
mov byte [eax + esi + 0x83b4], dl
jl 0x443769
inc ebp
add edi, 0x18
cmp ebp, 0x30
jl 0x443754
jmp 0x442e2f
mov ecx, dword [esi + 0xa7964]
call fcn.0048b6d0
cmp eax, 5
jne 0x44515c
mov ecx, dword [esi + 0xa7964]
push 2
call fcn.0048b6a0
mov ecx, dword [esi + 0xa7964]
push 3
lea edi, [eax + eax*4]
call fcn.0048b6a0
mov ecx, dword [esi + 0xa7964]
lea eax, [eax + edi*2]
push 4
lea edi, [eax + eax*4]
call fcn.0048b6a0
lea eax, [eax + edi*2 - 0x14d0]
test eax, eax
jl 0x442e2f
cmp eax, 0x3e7
jg 0x442e2f
mov cl, byte [esi + 0xa7980]
test cl, cl
je 0x443805
mov edx, dword [esi + 0xa7990]
imul edx, eax
shl edx, 1
jmp 0x44381f
lea eax, [eax + eax*4]
lea ecx, [eax + eax*8]
shl ecx, 3
mov eax, 0x66666667
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
cmp edx, 0xb40
jge 0x442e2f
mov dword [esi + 0xa7974], edx
jmp 0x442e2f
mov dword [esi + 0xa7968], 0x3c
mov byte [esi + 0xa796c], 1
jmp 0x442e2f
mov ecx, 0x2d0
xor eax, eax
lea edi, [esi + 0xa6db4]
rep stosd dword es:[edi], eax
jmp 0x442e2f
mov dword [esi + 0xa7968], 0x2d
mov byte [esi + 0xa796c], 0
jmp 0x442e2f
mov ecx, dword [esi + 0xa7964]
call fcn.0048b6d0
cmp eax, 4
jne 0x44515c
mov ecx, dword [esi + 0xa7964]
push 2
call fcn.0048b6a0
mov ecx, dword [esi + 0xa7964]
push 3
lea edi, [eax + eax*4]
call fcn.0048b6a0
lea eax, [eax + edi*2 - 0x210]
test eax, eax
jl 0x442e2f
cmp eax, 0x63
jg 0x442e2f
mov ecx, 0x1c
xor eax, eax
lea edi, [esi + 0xa78f4]
rep stosd dword es:[edi], eax
jmp 0x442e2f
mov dword [esi + 0xa7978], edi
mov byte [esi + 0xa7987], 0
jmp 0x442e2f
mov ecx, dword [esi + 0xa7964]
call fcn.0048b6d0
cmp eax, 4
jne 0x44515c
mov ecx, dword [esi + 0xa7964]
push 2
call fcn.0048b6a0
mov ecx, dword [esi + 0xa7964]
push 3
lea ebx, [eax + eax*4]
call fcn.0048b6a0
lea eax, [eax + ebx*2 - 0x210]
cmp eax, edi
jl 0x442e2f
cmp eax, 0x63
jg 0x442e2f
mov ecx, 0x1c
xor eax, eax
lea edi, [esi + 0xa78f4]
rep stosd dword es:[edi], eax
jmp 0x442e2f
mov ecx, dword [esi + 0xa7964]
call fcn.0048b6d0
cmp eax, 6
jl 0x44515c
mov ecx, dword [esi + 0xa7964]
push 2
call fcn.0048b6a0
mov ecx, dword [esi + 0xa7964]
push 3
lea edi, [eax + eax*4]
call fcn.0048b6a0
mov ecx, dword [esi + 0xa7964]
lea eax, [eax + edi*2]
push 4
lea edi, [eax + eax*4]
call fcn.0048b6a0
mov ecx, dword [esi + 0xa7964]
lea eax, [eax + edi*2]
push 5
lea edi, [eax + eax*4]
call fcn.0048b6a0
mov ecx, dword [esi + 0xa7964]
lea edi, [eax + edi*2 - 0xd050]
call fcn.0048b6d0
lea ecx, [edi + edi + 6]
cmp eax, ecx
jne 0x44515c
mov ecx, dword [esi + 0xa7978]
xor eax, eax
mov ebx, 1
cmp ecx, ebx
mov cl, byte [esi + 0xa7987]
setne al
mov dword [esp + 0x14], 4
add eax, 3
test cl, cl
mov dword [esp + 0x10], eax
je 0x4439e9
lea edx, [eax + eax]
mov dword [esp + 0x10], edx
mov al, byte [esi + 0xa7988]
test al, al
je 0x443a09
mov dword [esp + 0x14], 8
xor ebp, ebp
mov ebx, 2
mov byte [esi + 0xa79a0], 1
add edi, edi
test edi, edi
mov dword [esp + 0x28], edi
jle 0x443ec0
mov edi, dword [esp + 0x24]
mov dword [esp + 0x1c], 7
mov eax, dword [esi + 0xa7994]
cmp eax, 0xb40
jge 0x443ea6
mov cl, byte [esi + 0xa7985]
test cl, cl
je 0x443a79
mov ecx, dword [esp + 0x10]
mov edx, dword [esi + 0xa799c]
push 0xff
push 0xff
push 0xff
push 0x60
push ecx
mov ecx, dword [esi + 8]
push 0
push eax
shl edx, 5
lea eax, [edx + esi + 0x2d8]
push eax
call fcn.00408f30
mov byte [esp + 0x24], 0
mov edi, dword [esp + 0x24]
mov ecx, dword [esp + 0x1c]
dec ecx
push ecx
mov ecx, dword [esi + 0xa7964]
call fcn.0048b6a0
mov edx, dword [esp + 0x1c]
mov ecx, dword [esi + 0xa7964]
push edx
mov dword [esp + 0x1c], eax
call fcn.0048b6a0
mov dword [esp + 0x20], eax
test byte [esp + 0x18], 0x80
je 0x443adb
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
push edi
push edi
push edi
push eax
mov eax, dword [esi + 0xa7994]
push ecx
mov ecx, dword [esi + 0xa799c]
lea edx, [ebp + ebp]
push edx
shl ecx, 5
lea edx, [ecx + esi + 0x2d8]
mov ecx, dword [esi + 8]
push eax
push edx
call fcn.00408f30
test byte [esp + 0x18], 0x40
je 0x443b15
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
push edi
push edi
push edi
push eax
mov eax, dword [esi + 0xa7994]
push ecx
mov ecx, dword [esi + 0xa799c]
lea edx, [ebx + ebp]
shl edx, 1
push edx
shl ecx, 5
lea edx, [ecx + esi + 0x2d8]
mov ecx, dword [esi + 8]
push eax
push edx
call fcn.00408f30
test byte [esp + 0x18], 0x20
je 0x443b54
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
push edi
push edi
push edi
push eax
push ecx
mov ecx, dword [esi + 0xa7994]
lea edx, [ebp + ebx*2]
mov eax, ebx
add eax, edx
mov edx, dword [esi + 0xa799c]
shl eax, 1
push eax
shl edx, 5
push ecx
mov ecx, dword [esi + 8]
lea eax, [edx + esi + 0x2d8]
push eax
call fcn.00408f30
test byte [esp + 0x18], 0x10
je 0x443b8f
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
push edi
push edi
push edi
push ecx
mov ecx, dword [esi + 0xa7994]
push edx
mov edx, dword [esi + 0xa799c]
lea eax, [ebp + ebx*4]
shl eax, 1
push eax
shl edx, 5
push ecx
mov ecx, dword [esi + 8]
lea eax, [edx + esi + 0x2d8]
push eax
call fcn.00408f30
test byte [esp + 0x18], 8
je 0x443bcd
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
push edi
push edi
push edi
push ecx
lea eax, [ebx + ebx*2]
lea ecx, [ebp + eax*2]
mov eax, dword [esi + 0xa799c]
push edx
mov edx, dword [esi + 0xa7994]
shl ecx, 1
push ecx
shl eax, 5
lea ecx, [eax + esi + 0x2d8]
push edx
push ecx
mov ecx, dword [esi + 8]
call fcn.00408f30
test byte [esp + 0x18], 4
je 0x443c0f
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
push edi
push edi
push edi
push edx
mov edx, dword [esi + 0xa7994]
push eax
mov eax, dword [esi + 0xa799c]
lea ecx, [ebx*8]
sub ecx, ebx
add ecx, ebp
shl ecx, 1
push ecx
shl eax, 5
lea ecx, [eax + esi + 0x2d8]
push edx
push ecx
mov ecx, dword [esi + 8]
call fcn.00408f30
test byte [esp + 0x18], 2
je 0x443c4e
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
push edi
push edi
push edi
push edx
lea ecx, [ebp + ebx*8]
push eax
mov eax, dword [esi + 0xa7994]
mov edx, ebx
add edx, ecx
mov ecx, dword [esi + 0xa799c]
shl edx, 1
push edx
shl ecx, 5
lea edx, [ecx + esi + 0x2d8]
mov ecx, dword [esi + 8]
push eax
push edx
call fcn.00408f30
test byte [esp + 0x18], 1
je 0x443c8c
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
push edi
push edi
push edi
push eax
push ecx
mov ecx, dword [esi + 0xa7994]
lea edx, [ebx + ebx*4]
lea eax, [ebp + edx*2]
mov edx, dword [esi + 0xa799c]
shl eax, 1
push eax
shl edx, 5
push ecx
mov ecx, dword [esi + 8]
lea eax, [edx + esi + 0x2d8]
push eax
call fcn.00408f30
test byte [esp + 0x20], 0x80
je 0x443cca
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
push edi
push edi
push edi
push ecx
lea eax, [ebx + ebx*2]
lea ecx, [ebp + eax*4]
mov eax, dword [esi + 0xa799c]
push edx
mov edx, dword [esi + 0xa7994]
shl ecx, 1
push ecx
shl eax, 5
lea ecx, [eax + esi + 0x2d8]
push edx
push ecx
mov ecx, dword [esi + 8]
call fcn.00408f30
test byte [esp + 0x20], 0x40
je 0x443d0a
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
push edi
push edi
push edi
push edx
push eax
lea ecx, [ebx + ebx*2]
lea edx, [ebx + ebp]
lea eax, [edx + ecx*4]
mov edx, dword [esi + 0xa799c]
mov ecx, dword [esi + 0xa7994]
shl eax, 1
push eax
shl edx, 5
push ecx
mov ecx, dword [esi + 8]
lea eax, [edx + esi + 0x2d8]
push eax
call fcn.00408f30
test byte [esp + 0x20], 0x20
je 0x443d4a
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
push edi
push edi
push edi
push ecx
mov ecx, dword [esi + 0xa7994]
mov eax, ebx
shl eax, 4
sub eax, ebx
push edx
mov edx, dword [esi + 0xa799c]
add eax, ebp
shl eax, 1
push eax
shl edx, 5
push ecx
mov ecx, dword [esi + 8]
lea eax, [edx + esi + 0x2d8]
push eax
call fcn.00408f30
test byte [esp + 0x20], 0x10
je 0x443d88
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
push edi
push edi
push edi
push ecx
mov ecx, dword [esi + 0xa7994]
push edx
mov edx, dword [esi + 0xa799c]
mov eax, ebx
shl eax, 4
add eax, ebp
shl eax, 1
push eax
shl edx, 5
push ecx
mov ecx, dword [esi + 8]
lea eax, [edx + esi + 0x2d8]
push eax
call fcn.00408f30
test byte [esp + 0x20], 8
je 0x443dc6
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
push edi
push edi
push edi
push ecx
lea eax, [ebx + ebx*8]
lea ecx, [ebp + eax*2]
mov eax, dword [esi + 0xa799c]
push edx
mov edx, dword [esi + 0xa7994]
shl ecx, 1
push ecx
shl eax, 5
lea ecx, [eax + esi + 0x2d8]
push edx
push ecx
mov ecx, dword [esi + 8]
call fcn.00408f30
test byte [esp + 0x20], 4
je 0x443e06
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
push edi
push edi
push edi
push edx
push eax
lea ecx, [ebx + ebx*8]
lea edx, [ebx + ebp]
lea eax, [edx + ecx*2]
mov edx, dword [esi + 0xa799c]
mov ecx, dword [esi + 0xa7994]
shl eax, 1
push eax
shl edx, 5
push ecx
mov ecx, dword [esi + 8]
lea eax, [edx + esi + 0x2d8]
push eax
call fcn.00408f30
test byte [esp + 0x20], 2
je 0x443e4c
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
push edi
push edi
push edi
push ecx
lea eax, [ebx*8]
sub eax, ebx
lea ecx, [ebp + eax*2]
add eax, ecx
push edx
mov edx, dword [esi + 0xa7994]
shl eax, 1
push eax
mov eax, dword [esi + 0xa799c]
shl eax, 5
lea ecx, [eax + esi + 0x2d8]
push edx
push ecx
mov ecx, dword [esi + 8]
call fcn.00408f30
test byte [esp + 0x20], 1
je 0x443e8d
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
push edi
push edi
push edi
push edx
push eax
lea ecx, [ebx + ebx*4]
lea edx, [ebx + ecx*2]
mov ecx, dword [esi + 0xa7994]
lea eax, [ebp + edx*2]
mov edx, dword [esi + 0xa799c]
shl eax, 1
push eax
shl edx, 5
push ecx
mov ecx, dword [esi + 8]
lea eax, [edx + esi + 0x2d8]
push eax
call fcn.00408f30
mov eax, dword [esi + 0xa7994]
mov ecx, dword [esp + 0x10]
add eax, ecx
mov dword [esi + 0xa7994], eax
mov byte [esi + 0xa79a1], 1
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x28]
add eax, 2
mov dword [esp + 0x1c], eax
add eax, 0xfffffff9
cmp eax, ecx
jl 0x443a23
mov dl, byte [esi + 0xa79a0]
neg dl
sbb edx, edx
and edx, 0x18
add edx, 0x18
shl edx, 1
mov edi, edx
jmp 0x442e22
mov ecx, dword [esi + 0xa7964]
call fcn.0048b6d0
mov ebp, 4
cmp eax, ebp
jl 0x44515c
mov ecx, dword [esi + 0xa7964]
push 2
call fcn.0048b6a0
mov ecx, dword [esi + 0xa7964]
mov ebx, eax
push 3
shl ebx, 8
call fcn.0048b6a0
mov ecx, dword [esi + 0xa7964]
add ebx, eax
call fcn.0048b6d0
lea ecx, [ebx + ebx*2 + 4]
cmp eax, ecx
jne 0x44515c
test ebx, ebx
jle 0x444442
mov edi, dword [esp + 0x24]
mov dword [esp + 0x14], 5
mov dword [esp + 0x1c], ebx
mov eax, dword [esi + 0xa7994]
cmp eax, 0xb40
jge 0x444428
mov cl, byte [esi + 0xa7985]
test cl, cl
je 0x443f93
mov edx, dword [esi + 0xa799c]
mov ecx, dword [esi + 8]
push 0xff
push 0xff
push 0xff
push 0x60
push ebp
push 0
push eax
shl edx, 5
lea eax, [edx + esi + 0x2d8]
push eax
call fcn.00408f30
mov byte [esp + 0x24], 0
mov edi, dword [esp + 0x24]
mov ecx, dword [esp + 0x14]
dec ecx
push ecx
mov ecx, dword [esi + 0xa7964]
call fcn.0048b6a0
mov edx, dword [esp + 0x14]
mov ecx, dword [esi + 0xa7964]
push edx
mov ebx, eax
call fcn.0048b6a0
mov ecx, dword [esi + 0xa7964]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x14]
inc eax
push eax
call fcn.0048b6a0
test bl, 0x80
mov dword [esp + 0x18], eax
je 0x443ffc
mov edx, dword [esi + 0xa799c]
mov ecx, dword [esi + 0xa7994]
push edi
push edi
push edi
push 2
push ebp
push 0x30
shl edx, 5
push ecx
mov ecx, dword [esi + 8]
lea eax, [edx + esi + 0x2d8]
push eax
call fcn.00408f30
test bl, 0x40
je 0x444029
mov edx, dword [esi + 0xa799c]
mov ecx, dword [esi + 0xa7994]
push edi
push edi
push edi
push 2
push ebp
push 0x32
shl edx, 5
push ecx
mov ecx, dword [esi + 8]
lea eax, [edx + esi + 0x2d8]
push eax
call fcn.00408f30
test bl, 0x20
je 0x444056
mov edx, dword [esi + 0xa799c]
mov ecx, dword [esi + 0xa7994]
push edi
push edi
push edi
push 2
push ebp
push 0x34
shl edx, 5
push ecx
mov ecx, dword [esi + 8]
lea eax, [edx + esi + 0x2d8]
push eax
call fcn.00408f30
test bl, 0x10
je 0x444083
mov edx, dword [esi + 0xa799c]
mov ecx, dword [esi + 0xa7994]
push edi
push edi
push edi
push 2
push ebp
push 0x36
shl edx, 5
push ecx
mov ecx, dword [esi + 8]
lea eax, [edx + esi + 0x2d8]
push eax
call fcn.00408f30
test bl, 8
je 0x4440b0
mov edx, dword [esi + 0xa799c]
mov ecx, dword [esi + 0xa7994]
push edi
push edi
push edi
push 2
push ebp
push 0x38
shl edx, 5
push ecx
mov ecx, dword [esi + 8]
lea eax, [edx + esi + 0x2d8]
push eax
call fcn.00408f30
test bl, 4
je 0x4440dd
mov edx, dword [esi + 0xa799c]
mov ecx, dword [esi + 0xa7994]
push edi
push edi
push edi
push 2
push ebp
push 0x3a
shl edx, 5
push ecx
mov ecx, dword [esi + 8]
lea eax, [edx + esi + 0x2d8]
push eax
call fcn.00408f30
test bl, 2
je 0x44410a
mov edx, dword [esi + 0xa799c]
mov ecx, dword [esi + 0xa7994]
push edi
push edi
push edi
push 2
push ebp
push 0x3c
shl edx, 5
push ecx
mov ecx, dword [esi + 8]
lea eax, [edx + esi + 0x2d8]
push eax
call fcn.00408f30
test bl, 1
je 0x444137
mov edx, dword [esi + 0xa799c]
mov ecx, dword [esi + 0xa7994]
push edi
push edi
push edi
push 2
push ebp
push 0x3e
shl edx, 5
push ecx
mov ecx, dword [esi + 8]
lea eax, [edx + esi + 0x2d8]
push eax
call fcn.00408f30
mov bl, byte [esp + 0x20]
test bl, 0x80
je 0x444168
mov edx, dword [esi + 0xa799c]
mov ecx, dword [esi + 0xa7994]
push edi
push edi
push edi
push 2
push ebp
push 0x40
shl edx, 5
push ecx
mov ecx, dword [esi + 8]
lea eax, [edx + esi + 0x2d8]
push eax
call fcn.00408f30
test bl, 0x40
je 0x444195
mov edx, dword [esi + 0xa799c]
mov ecx, dword [esi + 0xa7994]
push edi
push edi
push edi
push 2
push ebp
push 0x42
shl edx, 5
push ecx
mov ecx, dword [esi + 8]
lea eax, [edx + esi + 0x2d8]
push eax
call fcn.00408f30
test bl, 0x20
je 0x4441c2
mov edx, dword [esi + 0xa799c]
mov ecx, dword [esi + 0xa7994]
push edi
push edi
push edi
push 2
push ebp
push 0x44
shl edx, 5
push ecx
mov ecx, dword [esi + 8]
lea eax, [edx + esi + 0x2d8]
push eax
call fcn.00408f30
test bl, 0x10
je 0x4441ef
mov edx, dword [esi + 0xa799c]
mov ecx, dword [esi + 0xa7994]
push edi
push edi
push edi
push 2
push ebp
push 0x46
shl edx, 5
push ecx
mov ecx, dword [esi + 8]
lea eax, [edx + esi + 0x2d8]
push eax
call fcn.00408f30
test bl, 8
je 0x44421c
mov edx, dword [esi + 0xa799c]
mov ecx, dword [esi + 0xa7994]
push edi
push edi
push edi
push 2
push ebp
push 0x48
shl edx, 5
push ecx
mov ecx, dword [esi + 8]
lea eax, [edx + esi + 0x2d8]
push eax
call fcn.00408f30
test bl, 4
je 0x444249
mov edx, dword [esi + 0xa799c]
mov ecx, dword [esi + 0xa7994]
push edi
push edi
push edi
push 2
push ebp
push 0x4a
shl edx, 5
push ecx
mov ecx, dword [esi + 8]
lea eax, [edx + esi + 0x2d8]
push eax
call fcn.00408f30
test bl, 2
je 0x444276
mov edx, dword [esi + 0xa799c]
mov ecx, dword [esi + 0xa7994]
push edi
push edi
push edi
push 2
push ebp
push 0x4c
shl edx, 5
push ecx
mov ecx, dword [esi + 8]
lea eax, [edx + esi + 0x2d8]
push eax
call fcn.00408f30
test bl, 1
je 0x4442a3
mov edx, dword [esi + 0xa799c]
mov ecx, dword [esi + 0xa7994]
push edi
push edi
push edi
push 2
push ebp
push 0x4e
shl edx, 5
push ecx
mov ecx, dword [esi + 8]
lea eax, [edx + esi + 0x2d8]
push eax
call fcn.00408f30
test byte [esp + 0x18], 0x80
je 0x4442d2
mov edx, dword [esi + 0xa799c]
mov ecx, dword [esi + 0xa7994]
push edi
push edi
push edi
push 2
push ebp
push 0x50
shl edx, 5
push ecx
mov ecx, dword [esi + 8]
lea eax, [edx + esi + 0x2d8]
push eax
call fcn.00408f30
test byte [esp + 0x18], 0x40
je 0x444301
mov edx, dword [esi + 0xa799c]
mov ecx, dword [esi + 0xa7994]
push edi
push edi
push edi
push 2
push ebp
push 0x52
shl edx, 5
push ecx
mov ecx, dword [esi + 8]
lea eax, [edx + esi + 0x2d8]
push eax
call fcn.00408f30
test byte [esp + 0x18], 0x20
je 0x444330
mov edx, dword [esi + 0xa799c]
mov ecx, dword [esi + 0xa7994]
push edi
push edi
push edi
push 2
push ebp
push 0x54
shl edx, 5
push ecx
mov ecx, dword [esi + 8]
lea eax, [edx + esi + 0x2d8]
push eax
call fcn.00408f30
test byte [esp + 0x18], 0x10
je 0x44435f
mov edx, dword [esi + 0xa799c]
mov ecx, dword [esi + 0xa7994]
push edi
push edi
push edi
push 2
push ebp
push 0x56
shl edx, 5
push ecx
mov ecx, dword [esi + 8]
lea eax, [edx + esi + 0x2d8]
push eax
call fcn.00408f30
test byte [esp + 0x18], 8
je 0x44438e
mov edx, dword [esi + 0xa799c]
mov ecx, dword [esi + 0xa7994]
push edi
push edi
push edi
push 2
push ebp
push 0x58
shl edx, 5
push ecx
mov ecx, dword [esi + 8]
lea eax, [edx + esi + 0x2d8]
push eax
call fcn.00408f30
test byte [esp + 0x18], 4
je 0x4443bd
mov edx, dword [esi + 0xa799c]
mov ecx, dword [esi + 0xa7994]
push edi
push edi
push edi
push 2
push ebp
push 0x5a
shl edx, 5
push ecx
mov ecx, dword [esi + 8]
lea eax, [edx + esi + 0x2d8]
push eax
call fcn.00408f30
test byte [esp + 0x18], 2
je 0x4443ec
mov edx, dword [esi + 0xa799c]
mov ecx, dword [esi + 0xa7994]
push edi
push edi
push edi
push 2
push ebp
push 0x5c
shl edx, 5
push ecx
mov ecx, dword [esi + 8]
lea eax, [edx + esi + 0x2d8]
push eax
call fcn.00408f30
test byte [esp + 0x18], 1
je 0x44441b
mov edx, dword [esi + 0xa799c]
mov ecx, dword [esi + 0xa7994]
push edi
push edi
push edi
push 2
push ebp
push 0x5e
shl edx, 5
push ecx
mov ecx, dword [esi + 8]
lea eax, [edx + esi + 0x2d8]
push eax
call fcn.00408f30
add dword [esi + 0xa7994], ebp
mov byte [esi + 0xa79a1], 1
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
add ecx, 3
dec eax
mov dword [esp + 0x14], ecx
mov dword [esp + 0x1c], eax
jne 0x443f41
mov cl, byte [esi + 0xa79a0]
neg cl
sbb ecx, ecx
and ecx, 0x18
add ecx, 0x18
shl ecx, 1
mov edi, ecx
jmp 0x442e22
mov byte [esi + 0xa7980], 1
jmp 0x442e2f
mov ecx, dword [esi + 0xa7964]
call fcn.0048b6d0
cmp eax, 5
jne 0x44515c
mov ecx, dword [esi + 0xa7964]
push 2
call fcn.0048b6a0
mov ecx, dword [esi + 0xa7964]
push 3
lea edi, [eax + eax*4]
call fcn.0048b6a0
mov ecx, dword [esi + 0xa7964]
lea eax, [eax + edi*2]
push 4
lea edi, [eax + eax*4]
call fcn.0048b6a0
lea eax, [eax + edi*2 - 0x14d0]
test eax, eax
jl 0x442e2f
cmp eax, 0x3e7
jg 0x442e2f
mov cl, byte [esi + 0xa7980]
test cl, cl
je 0x4444dc
mov edx, dword [esi + 0xa7990]
imul edx, eax
shl edx, 1
jmp 0x4444f6
lea eax, [eax + eax*4]
lea ecx, [eax + eax*8]
shl ecx, 3
mov eax, 0x66666667
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
cmp edx, 0xb40
jge 0x442e2f
mov dword [esi + 0xa7970], edx
jmp 0x442e2f
mov ecx, dword [esi + 0xa7964]
call fcn.0048b6d0
cmp eax, 6
jne 0x44515c
mov ecx, dword [esi + 0xa7964]
push 2
call fcn.0048b6a0
mov ecx, dword [esi + 0xa7964]
push 3
call fcn.0048b6a0
mov ecx, dword [esi + 0xa7964]
push 4
call fcn.0048b6a0
mov ecx, dword [esi + 0xa7964]
push 5
call fcn.0048b6a0
push eax
mov ecx, esi
call fcn.00445940
jmp 0x442e2f
mov byte [esi + 0xa7980], 0
jmp 0x442e2f
mov dword [esi + 0xa7978], 2
mov byte [esi + 0xa7987], 0
jmp 0x442e2f
mov dword [esi + 0xa7978], 0
mov byte [esi + 0xa7987], 0
jmp 0x442e2f
mov ecx, dword [esi + 0xa7964]
call fcn.0048b6d0
cmp eax, 7
jne 0x44515c
mov ecx, dword [esi + 0xa7964]
push 2
call fcn.0048b6a0
mov ecx, dword [esi + 0xa7964]
push 3
lea edi, [eax + eax*4]
call fcn.0048b6a0
mov ecx, dword [esi + 0xa7964]
lea eax, [eax + edi*2]
push 4
lea edi, [eax + eax*4]
call fcn.0048b6a0
mov ecx, dword [esi + 0xa7964]
lea eax, [eax + edi*2]
push 5
lea edi, [eax + eax*4]
call fcn.0048b6a0
mov ecx, dword [esi + 0xa7964]
push 6
lea edi, [eax + edi*2 - 0xd050]
call fcn.0048b6a0
mov dword [esp + 0x18], eax
cmp dword [esi + 0xa7978], 1
jne 0x444619
mov eax, 3
jmp 0x44462c
cmp dword [esi + 0xa7968], 0x2d
jne 0x444627
mov ebx, 2
mov eax, 4
mov cl, byte [esi + 0xa7987]
test cl, cl
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], 4
je 0x444649
lea ecx, [eax + eax]
mov dword [esp + 0x10], ecx
mov al, byte [esi + 0xa7988]
test al, al
je 0x444666
xor ebp, ebp
mov dword [esp + 0x14], 8
add ebx, ebx
mov byte [esi + 0xa79a0], 1
test edi, edi
jle 0x4448d6
mov dword [esp + 0x1c], edi
mov edi, dword [esp + 0x24]
mov eax, dword [esi + 0xa7994]
cmp eax, 0xb40
jge 0x4448cc
mov cl, byte [esi + 0xa7985]
test cl, cl
je 0x4446cc
mov edx, dword [esp + 0x10]
push 0xff
push 0xff
push 0xff
push 0x60
push edx
push 0
push eax
mov eax, dword [esi + 0xa799c]
shl eax, 5
lea ecx, [eax + esi + 0x2d8]
push ecx
mov ecx, dword [esi + 8]
call fcn.00408f30
mov byte [esp + 0x24], 0
mov edi, dword [esp + 0x24]
test byte [esp + 0x18], 0x80
je 0x444705
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
push edi
push edi
push edi
push edx
mov edx, dword [esi + 0xa7994]
push eax
mov eax, dword [esi + 0xa799c]
lea ecx, [ebp + ebp]
push ecx
shl eax, 5
lea ecx, [eax + esi + 0x2d8]
push edx
push ecx
mov ecx, dword [esi + 8]
call fcn.00408f30
test byte [esp + 0x18], 0x40
je 0x44473f
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
push edi
push edi
push edi
push edx
mov edx, dword [esi + 0xa7994]
push eax
mov eax, dword [esi + 0xa799c]
lea ecx, [ebx + ebp]
shl ecx, 1
push ecx
shl eax, 5
lea ecx, [eax + esi + 0x2d8]
push edx
push ecx
mov ecx, dword [esi + 8]
call fcn.00408f30
test byte [esp + 0x18], 0x20
je 0x44477a
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
push edi
push edi
push edi
push edx
mov edx, dword [esi + 0xa7994]
push eax
mov eax, dword [esi + 0xa799c]
lea ecx, [ebp + ebx*2]
shl ecx, 1
push ecx
shl eax, 5
lea ecx, [eax + esi + 0x2d8]
push edx
push ecx
mov ecx, dword [esi + 8]
call fcn.00408f30
test byte [esp + 0x18], 0x10
je 0x4447b9
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
push edi
push edi
push edi
push edx
lea ecx, [ebp + ebx*2]
push eax
mov eax, dword [esi + 0xa7994]
mov edx, ebx
add edx, ecx
mov ecx, dword [esi + 0xa799c]
shl edx, 1
push edx
shl ecx, 5
lea edx, [ecx + esi + 0x2d8]
mov ecx, dword [esi + 8]
push eax
push edx
call fcn.00408f30
test byte [esp + 0x18], 8
je 0x4447f4
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
push edi
push edi
push edi
push eax
mov eax, dword [esi + 0xa7994]
push ecx
mov ecx, dword [esi + 0xa799c]
lea edx, [ebp + ebx*4]
shl edx, 1
push edx
shl ecx, 5
lea edx, [ecx + esi + 0x2d8]
mov ecx, dword [esi + 8]
push eax
push edx
call fcn.00408f30
test byte [esp + 0x18], 4
je 0x444833
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
push edi
push edi
push edi
push eax
push ecx
mov ecx, dword [esi + 0xa7994]
lea edx, [ebp + ebx*4]
mov eax, ebx
add eax, edx
mov edx, dword [esi + 0xa799c]
shl eax, 1
push eax
shl edx, 5
push ecx
mov ecx, dword [esi + 8]
lea eax, [edx + esi + 0x2d8]
push eax
call fcn.00408f30
test byte [esp + 0x18], 2
je 0x444871
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
push edi
push edi
push edi
push ecx
lea eax, [ebx + ebx*2]
lea ecx, [ebp + eax*2]
mov eax, dword [esi + 0xa799c]
push edx
mov edx, dword [esi + 0xa7994]
shl ecx, 1
push ecx
shl eax, 5
lea ecx, [eax + esi + 0x2d8]
push edx
push ecx
mov ecx, dword [esi + 8]
call fcn.00408f30
test byte [esp + 0x18], 1
je 0x4448b3
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
push edi
push edi
push edi
push edx
mov edx, dword [esi + 0xa7994]
push eax
mov eax, dword [esi + 0xa799c]
lea ecx, [ebx*8]
sub ecx, ebx
add ecx, ebp
shl ecx, 1
push ecx
shl eax, 5
lea ecx, [eax + esi + 0x2d8]
push edx
push ecx
mov ecx, dword [esi + 8]
call fcn.00408f30
mov eax, dword [esi + 0xa7994]
mov edx, dword [esp + 0x10]
add eax, edx
mov dword [esi + 0xa7994], eax
mov byte [esi + 0xa79a1], 1
dec dword [esp + 0x1c]
jne 0x444676
mov al, byte [esi + 0xa79a0]
neg al
sbb eax, eax
and eax, 8
add eax, 8
imul eax, ebx
shl eax, 1
mov edi, eax
jmp 0x442e22
mov ecx, dword [esi + 0xa7964]
call fcn.0048b6d0
cmp eax, 8
jne 0x44515c
mov ecx, dword [esi + 0xa7964]
push 2
call fcn.0048b6a0
mov ecx, dword [esi + 0xa7964]
push 3
lea edi, [eax + eax*4]
call fcn.0048b6a0
mov ecx, dword [esi + 0xa7964]
lea eax, [eax + edi*2]
push 4
lea edi, [eax + eax*4]
call fcn.0048b6a0
mov ecx, dword [esi + 0xa7964]
lea eax, [eax + edi*2]
push 5
lea edi, [eax + eax*4]
call fcn.0048b6a0
mov ecx, dword [esi + 0xa7964]
push 6
lea edi, [eax + edi*2 - 0xd050]
call fcn.0048b6a0
mov ecx, dword [esi + 0xa7964]
push 7
mov dword [esp + 0x1c], eax
call fcn.0048b6a0
mov ecx, dword [esi + 0xa7978]
mov dword [esp + 0x20], eax
xor eax, eax
mov ebx, 1
cmp ecx, ebx
mov cl, byte [esi + 0xa7987]
setne al
mov dword [esp + 0x14], 4
add eax, 3
test cl, cl
mov dword [esp + 0x10], eax
je 0x4449a4
lea ecx, [eax + eax]
mov dword [esp + 0x10], ecx
mov al, byte [esi + 0xa7988]
test al, al
je 0x4449c4
mov dword [esp + 0x14], 8
xor ebp, ebp
mov ebx, 2
mov byte [esi + 0xa79a0], 1
lea eax, [edi + edi]
test eax, eax
jle 0x444e3e
mov edi, dword [esp + 0x24]
inc eax
shr eax, 1
mov dword [esp + 0x1c], eax
mov eax, dword [esi + 0xa7994]
cmp eax, 0xb40
jge 0x444e34
mov cl, byte [esi + 0xa7985]
test cl, cl
je 0x444a30
mov edx, dword [esp + 0x10]
push 0xff
push 0xff
push 0xff
push 0x60
push edx
push 0
push eax
mov eax, dword [esi + 0xa799c]
shl eax, 5
lea ecx, [eax + esi + 0x2d8]
push ecx
mov ecx, dword [esi + 8]
call fcn.00408f30
mov byte [esp + 0x24], 0
mov edi, dword [esp + 0x24]
test byte [esp + 0x18], 0x80
je 0x444a69
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
push edi
push edi
push edi
push edx
mov edx, dword [esi + 0xa7994]
push eax
mov eax, dword [esi + 0xa799c]
lea ecx, [ebp + ebp]
push ecx
shl eax, 5
lea ecx, [eax + esi + 0x2d8]
push edx
push ecx
mov ecx, dword [esi + 8]
call fcn.00408f30
test byte [esp + 0x18], 0x40
je 0x444aa3
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
push edi
push edi
push edi
push edx
mov edx, dword [esi + 0xa7994]
push eax
mov eax, dword [esi + 0xa799c]
lea ecx, [ebx + ebp]
shl ecx, 1
push ecx
shl eax, 5
lea ecx, [eax + esi + 0x2d8]
push edx
push ecx
mov ecx, dword [esi + 8]
call fcn.00408f30
test byte [esp + 0x18], 0x20
je 0x444ae2
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
push edi
push edi
push edi
push edx
lea ecx, [ebp + ebx*2]
push eax
mov eax, dword [esi + 0xa7994]
mov edx, ebx
add edx, ecx
mov ecx, dword [esi + 0xa799c]
shl edx, 1
push edx
shl ecx, 5
lea edx, [ecx + esi + 0x2d8]
mov ecx, dword [esi + 8]
push eax
push edx
call fcn.00408f30
test byte [esp + 0x18], 0x10
je 0x444b1d
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
push edi
push edi
push edi
push eax
mov eax, dword [esi + 0xa7994]
push ecx
mov ecx, dword [esi + 0xa799c]
lea edx, [ebp + ebx*4]
shl edx, 1
push edx
shl ecx, 5
lea edx, [ecx + esi + 0x2d8]
mov ecx, dword [esi + 8]
push eax
push edx
call fcn.00408f30
test byte [esp + 0x18], 8
je 0x444b5b
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
push edi
push edi
push edi
push eax
push ecx
mov ecx, dword [esi + 0xa7994]
lea edx, [ebx + ebx*2]
lea eax, [ebp + edx*2]
mov edx, dword [esi + 0xa799c]
shl eax, 1
push eax
shl edx, 5
push ecx
mov ecx, dword [esi + 8]
lea eax, [edx + esi + 0x2d8]
push eax
call fcn.00408f30
test byte [esp + 0x18], 4
je 0x444b9d
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
push edi
push edi
push edi
push ecx
mov ecx, dword [esi + 0xa7994]
push edx
mov edx, dword [esi + 0xa799c]
lea eax, [ebx*8]
sub eax, ebx
add eax, ebp
shl eax, 1
push eax
shl edx, 5
push ecx
mov ecx, dword [esi + 8]
lea eax, [edx + esi + 0x2d8]
push eax
call fcn.00408f30
test byte [esp + 0x18], 2
je 0x444bdc
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
push edi
push edi
push edi
push ecx
lea eax, [ebp + ebx*8]
push edx
mov edx, dword [esi + 0xa7994]
mov ecx, ebx
add ecx, eax
mov eax, dword [esi + 0xa799c]
shl ecx, 1
push ecx
shl eax, 5
lea ecx, [eax + esi + 0x2d8]
push edx
push ecx
mov ecx, dword [esi + 8]
call fcn.00408f30
test byte [esp + 0x18], 1
je 0x444c1a
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
push edi
push edi
push edi
push edx
lea ecx, [ebx + ebx*4]
lea edx, [ebp + ecx*2]
mov ecx, dword [esi + 0xa799c]
push eax
mov eax, dword [esi + 0xa7994]
shl edx, 1
push edx
shl ecx, 5
lea edx, [ecx + esi + 0x2d8]
mov ecx, dword [esi + 8]
push eax
push edx
call fcn.00408f30
test byte [esp + 0x20], 0x80
je 0x444c58
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
push edi
push edi
push edi
push eax
push ecx
mov ecx, dword [esi + 0xa7994]
lea edx, [ebx + ebx*2]
lea eax, [ebp + edx*4]
mov edx, dword [esi + 0xa799c]
shl eax, 1
push eax
shl edx, 5
push ecx
mov ecx, dword [esi + 8]
lea eax, [edx + esi + 0x2d8]
push eax
call fcn.00408f30
test byte [esp + 0x20], 0x40
je 0x444c98
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
push edi
push edi
push edi
push ecx
push edx
lea eax, [ebx + ebx*2]
lea ecx, [ebx + ebp]
lea edx, [ecx + eax*4]
mov ecx, dword [esi + 0xa799c]
mov eax, dword [esi + 0xa7994]
shl edx, 1
push edx
shl ecx, 5
lea edx, [ecx + esi + 0x2d8]
mov ecx, dword [esi + 8]
push eax
push edx
call fcn.00408f30
test byte [esp + 0x20], 0x20
je 0x444cd8
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
push edi
push edi
push edi
push eax
mov eax, dword [esi + 0xa7994]
mov edx, ebx
shl edx, 4
push ecx
mov ecx, dword [esi + 0xa799c]
sub edx, ebx
add edx, ebp
shl edx, 1
push edx
shl ecx, 5
lea edx, [ecx + esi + 0x2d8]
mov ecx, dword [esi + 8]
push eax
push edx
call fcn.00408f30
test byte [esp + 0x20], 0x10
je 0x444d16
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
push edi
push edi
push edi
push eax
mov eax, dword [esi + 0xa7994]
push ecx
mov ecx, dword [esi + 0xa799c]
mov edx, ebx
shl edx, 4
add edx, ebp
shl edx, 1
push edx
shl ecx, 5
lea edx, [ecx + esi + 0x2d8]
mov ecx, dword [esi + 8]
push eax
push edx
call fcn.00408f30
test byte [esp + 0x20], 8
je 0x444d54
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
push edi
push edi
push edi
push eax
push ecx
mov ecx, dword [esi + 0xa7994]
lea edx, [ebx + ebx*8]
lea eax, [ebp + edx*2]
mov edx, dword [esi + 0xa799c]
shl eax, 1
push eax
shl edx, 5
push ecx
mov ecx, dword [esi + 8]
lea eax, [edx + esi + 0x2d8]
push eax
call fcn.00408f30
test byte [esp + 0x20], 4
je 0x444d94
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
push edi
push edi
push edi
push ecx
push edx
lea eax, [ebx + ebx*8]
lea ecx, [ebx + ebp]
lea edx, [ecx + eax*2]
mov ecx, dword [esi + 0xa799c]
mov eax, dword [esi + 0xa7994]
shl edx, 1
push edx
shl ecx, 5
lea edx, [ecx + esi + 0x2d8]
mov ecx, dword [esi + 8]
push eax
push edx
call fcn.00408f30
test byte [esp + 0x20], 2
je 0x444dda
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
push edi
push edi
push edi
push eax
lea eax, [ebx*8]
sub eax, ebx
lea edx, [ebp + eax*2]
push ecx
mov ecx, dword [esi + 0xa799c]
add eax, edx
shl eax, 1
push eax
mov eax, dword [esi + 0xa7994]
shl ecx, 5
lea edx, [ecx + esi + 0x2d8]
mov ecx, dword [esi + 8]
push eax
push edx
call fcn.00408f30
test byte [esp + 0x20], 1
je 0x444e1b
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
push edi
push edi
push edi
push eax
push ecx
lea edx, [ebx + ebx*4]
lea eax, [ebx + edx*2]
mov edx, dword [esi + 0xa7994]
lea ecx, [ebp + eax*2]
mov eax, dword [esi + 0xa799c]
shl ecx, 1
push ecx
shl eax, 5
lea ecx, [eax + esi + 0x2d8]
push edx
push ecx
mov ecx, dword [esi + 8]
call fcn.00408f30
mov eax, dword [esi + 0xa7994]
mov edx, dword [esp + 0x10]
add eax, edx
mov dword [esi + 0xa7994], eax
mov byte [esi + 0xa79a1], 1
dec dword [esp + 0x1c]
jne 0x4449da
mov al, byte [esi + 0xa79a0]
neg al
sbb eax, eax
and eax, 0x18
add eax, 0x18
shl eax, 1
mov edi, eax
jmp 0x442e22
mov byte [esi + 0xa7984], 1
jmp 0x442e2f
mov byte [esi + 0xa7984], 0
jmp 0x442e2f
mov ecx, dword [esi + 0xa7964]
call fcn.0048b6d0
cmp eax, 4
jne 0x44515c
mov ecx, dword [esi + 0xa7964]
push 2
call fcn.0048b6a0
mov ecx, dword [esi + 0xa7964]
mov edi, eax
push 2
shl edi, 8
call fcn.0048b6a0
add edi, eax
movsx eax, di
cmp eax, 0xfffffa60
jl 0x442e2f
cmp eax, 0x5a0
jg 0x442e2f
lea ecx, [eax + eax]
add dword [esi + 0xa7994], ecx
jmp 0x442e2f
mov ecx, dword [esi + 0xa7964]
call fcn.0048b6d0
cmp eax, 3
jne 0x44515c
mov ecx, dword [esi + 0xa7964]
push 2
call fcn.0048b6a0
cmp eax, 0x31
jne 0x442e2f
mov edx, dword [esi]
mov ecx, esi
call dword [edx + 0x1c]
jmp 0x442e2f
mov byte [esi + 0xa7983], 1
jmp 0x442e2f
mov byte [esi + 0xa7983], 0
jmp 0x442e2f
mov ecx, dword [esi + 0xa7964]
call fcn.0048b6d0
cmp eax, 3
jne 0x44515c
mov ecx, dword [esi + 0xa7964]
push 2
call fcn.0048b6a0
sub eax, 0x30
je case.0x442779.10
dec eax
mov ecx, dword [esi + 0xa7964]
je 0x444ffe
call fcn.0048b620
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x35c
ret
mov ecx, dword [esi + 0xa7964]
call fcn.0048b6d0
cmp eax, 3
jne 0x44515c
mov ecx, dword [esi + 0xa7964]
push 2
call fcn.0048b6a0
sub eax, 0x30
je 0x444faa
dec eax
je 0x444f9f
dec eax
jne 0x442e2f
mov dword [esi + 0xa797c], 0xffffffff
jmp 0x442e2f
mov dword [esi + 0xa797c], edi
jmp 0x442e2f
mov dword [esi + 0xa797c], 0
jmp 0x442e2f
mov ecx, dword [esi + 0xa7964]
call fcn.0048b6d0
cmp eax, 2
jl 0x44515c
mov ecx, dword [esi + 0xa7964]
push 1
call fcn.0048b6a0
add eax, 0xffffffb6
cmp eax, 0x27
ja case.0x442779.10
xor ecx, ecx
mov cl, byte [eax + 0x4452f8]
jmp dword [ecx*4 + 0x4452dc]
mov byte [esi + 0xa7986], 1
mov ecx, dword [esi + 0xa7964]
call fcn.0048b620
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x35c
ret
mov ecx, dword [esi + 0xa7964]
mov byte [esi + 0xa7986], 0
call fcn.0048b620
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x35c
ret
mov ecx, dword [esi + 0xa7964]
call fcn.0048b6d0
cmp eax, 4
jne 0x44515c
mov ecx, dword [esi + 0xa7964]
push 2
call fcn.0048b6a0
mov ecx, dword [esi + 0xa7964]
push 3
mov edi, eax
call fcn.0048b6a0
mov ecx, dword [esi + 0xa7964]
lea edx, [eax + edi + 0x18]
mov dword [esi + 0xa798c], edx
call fcn.0048b620
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x35c
ret
mov ecx, dword [esi + 0xa7964]
call fcn.0048b6d0
cmp eax, 4
jne 0x44515c
mov ecx, dword [esi + 0xa7964]
push 2
call fcn.0048b6a0
mov ecx, dword [esi + 0xa7964]
push 3
mov edi, eax
call fcn.0048b6a0
mov ecx, dword [esi + 0xa7964]
lea eax, [eax + edi + 0xc]
mov dword [esi + 0xa7990], eax
call fcn.0048b620
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x35c
ret
mov ecx, dword [esi + 0xa7964]
mov byte [esi + 0xa7989], 1
call fcn.0048b620
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x35c
ret
mov ecx, dword [esi + 0xa7964]
mov byte [esi + 0xa7989], 0
call fcn.0048b620
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x35c
ret
mov al, byte [esi + 0xa7980]
test al, al
mov ecx, dword [esi + 0xa7964]
je 0x44514f
call fcn.0048b6d0
cmp eax, 2
jne 0x44515c
mov ecx, dword [esi + 0xa7964]
call fcn.0048b670
mov ecx, dword [esi + 0xa7964]
mov edi, eax
shl edi, 8
call fcn.0048b670
add edi, eax
push edi
mov ecx, esi
call fcn.00445940
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x35c
ret
call fcn.0048b670
push eax
mov ecx, esi
call fcn.00445940
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x35c
ret