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

Disassembly:
sub esp, 0x9c
push ebx
mov ebx, dword [0x4e73e0]
test byte [ebx + 0x23b1], 1
push ebp
mov ebp, dword [esp + 0xa8]
je 0x9b67e
pop ebp
mov eax, 1
pop ebx
add esp, 0x9c
ret 0x40
push esi
xor esi, esi
cmp dword [ebp + 0x7e4], esi
je 0x9b6b1
test byte [esp + 0xe0], 8
je 0x9b6b1
mov eax, dword [ebp + 0x78c]
sub eax, dword [ebp + 0x7bc]
mov dword [esp + 0x14], 1
cdq
xor eax, edx
sub eax, edx
cmp eax, 8
jle 0x9b6b5
mov dword [esp + 0x14], esi
mov eax, dword [ebx + 0x209c]
cmp eax, esi
je 0x9b715
cmp dword [eax + 0x1c9568], esi
jne 0x9b6d9
push esi
push esi
push esi
push 1
push 6
call fcn.0008dca0
mov ebx, dword [0x4e73e0]
mov eax, dword [ebx + 0x209c]
mov ecx, dword [eax + 0x1c9568]
cmp ecx, 0x20
jae 0x9b715
mov dword [eax + ecx*4 + 0x1c956c], 6
mov eax, dword [ebx + 0x209c]
mov ecx, dword [eax + 0x1c9568]
mov dword [eax + ecx*4 + 0x1c95ec], esi
mov eax, dword [ebx + 0x209c]
add dword [eax + 0x1c9568], 1
cmp word [ebp + 0x156], si
je 0x9b732
push ebp
call fcn.000981c0
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x9c
ret 0x40
push edi
mov edi, dword [ebx + 0x283b0]
cmp edi, esi
je 0x9b75b
cmp dword [ebx + 0x283b4], 4
jb 0x9b75b
push ebp
call fcn.000981c0
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x9c
ret 0x40
test edi, edi
mov ecx, dword [ebp + 0x7b8]
mov esi, dword [ebp + 0x7bc]
mov eax, dword [ebp + 0x7b0]
mov edx, dword [ebp + 0x7b4]
je 0x9b7c0
cmp ecx, 0x268
jne 0x9b7a1
cmp esi, 0x1ce
jne 0x9b7a1
cmp eax, 0xc
jne 0x9b7a1
cmp edx, 9
jne 0x9b7a1
xor eax, eax
mov ecx, 0x280
mov esi, 0x1e0
xor edx, edx
jmp 0x9b7da
cmp ecx, 0x335
jne 0x9b7c0
cmp esi, 0x1e0
jne 0x9b7c0
test eax, eax
jne 0x9b7c0
test edx, edx
jne 0x9b7c0
mov ecx, 0x355
jmp 0x9b7c4
test ecx, ecx
je 0x9b74c
test esi, esi
je 0x9b74c
cmp eax, 0xffffffff
je 0x9b74c
cmp edx, 0xffffffff
je 0x9b74c
cmp dword [ebx + 0x20a0], 0
je 0x9b7ea
or byte [ebx + 0x20ae], 0x40
test byte [ebp + 1], 0x10
mov edi, dword [ebp + 0x124]
mov dword [esp + 0x58], edi
mov edi, dword [ebp + 0x128]
mov dword [esp + 0x34], edi
jne 0x9b904
mov edi, dword [ebx + 0x1404]
mov ebx, edi
and ebx, 0x300000
cmp ebx, 0x100000
mov dword [esp + 0x60], ebx
je 0x9b836
cmp ebx, 0x200000
je 0x9b836
cmp ebx, 0x300000
jne 0x9b904
test edi, str.Xqv
jne 0x9b904
cmp ebx, 0x100000
je 0x9b874
cmp ebx, 0x300000
je 0x9b874
mov edi, dword [ebp + 0x124]
mov ecx, dword [ebp + 0x7b8]
mov ebx, dword [ebp + 0x7bc]
mov dword [esp + 0x58], edi
mov edi, dword [esp + 0x34]
mov dword [esp + 0x38], ecx
mov esi, ebx
jmp 0x9b894
mov edi, dword [esp + 0x34]
mov ebx, dword [ebp + 0x7bc]
mov esi, dword [ebp + 0x7b8]
mov dword [esp + 0x58], edi
mov edi, dword [ebp + 0x124]
mov ecx, ebx
mov dword [esp + 0x38], esi
mov dword [esp + 0x34], edi
mov edi, dword [esp + 0x60]
cmp edi, 0x100000
jne 0x9b8bd
mov edx, dword [esp + 0x38]
sub edx, dword [ebp + 0x7b0]
mov eax, dword [ebp + 0x7b4]
sub edx, dword [esp + 0xd0]
jmp 0x9b904
cmp edi, 0x200000
jne 0x9b8e7
mov eax, dword [esp + 0x38]
sub eax, dword [ebp + 0x7b0]
sub ebx, dword [esp + 0xd0]
sub eax, dword [esp + 0xcc]
sub ebx, dword [ebp + 0x7b4]
mov edx, ebx
jmp 0x9b904
cmp edi, 0x300000
jne 0x9b904
sub ebx, dword [esp + 0xcc]
mov edx, dword [ebp + 0x7b0]
sub ebx, dword [ebp + 0x7b4]
mov eax, ebx
imul edx, dword [esp + 0xec]
imul eax, dword [esp + 0xe8]
imul ecx, dword [esp + 0xe8]
imul esi, dword [esp + 0xec]
shr edx, 0x14
mov ebx, edx
mov edx, dword [ebp + 0x788]
shr eax, 0x14
shr ecx, 0x14
mov edi, eax
mov eax, dword [ebp + 0x78c]
mov dword [esp + 0x40], ecx
mov ecx, dword [ebp + 0x790]
mov dword [esp + 0x1c], edx
mov edx, dword [ebp + 0x7a8]
mov dword [esp + 0x24], eax
mov eax, dword [ebp + edx*4 + 0x798]
mov dword [esp + 0x84], ecx
mov ecx, dword [eax + 0xdc]
mov edx, dword [ecx + 0x60]
mov ecx, dword [edx + 0x88]
and ecx, 0xff
shr esi, 0x14
mov dword [esp + 0x30], ebx
mov dword [esp + 0x20], esi
mov dword [esp + 0x64], ecx
call fcn.00069fd0
cmp dword [esp + 0x18], 0
mov dword [esp + 0x14], eax
mov dword [esp + 0x7c], eax
mov dword [esp + 0x48], 0
mov eax, edi
je 0x9b9b4
and eax, 0xfff
shl ebx, 0x10
or eax, ebx
shl eax, 4
jmp 0x9b9ca
shl eax, 4
sub eax, 4
shl ebx, 0x14
and eax, 0xffff
sub ebx, 0x40000
or eax, ebx
mov esi, dword [0x4e73e0]
mov dword [esp + 0x54], eax
xor eax, eax
mov dword [esp + 0x3c], eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], eax
add esi, 8
mov ebx, 0xdd001050
mov eax, 7
call fcn.000b6530
mov eax, dword [0x4e73e0]
mov ecx, dword [eax + 0x94]
mov dword [ecx], 0xce30c
mov edx, dword [eax + 0x94]
mov dword [edx + 4], 1
mov ecx, dword [ebp + 0x794]
sub ecx, 1
je 0x9ba3c
sub ecx, 5
je 0x9ba2d
mov esi, 0xffff0000
jmp 0x9ba41
mov dword [esp + 0x44], 4
mov esi, 0xff000000
jmp 0x9ba49
mov esi, 0xff00
mov dword [esp + 0x44], 2
mov ecx, dword [eax + 0x94]
mov dword [ecx + 8], esi
mov edx, dword [eax + 0x94]
add eax, 8
mov ecx, 4
mov dword [edx + 0xc], esi
call fcn.0006a150
mov eax, dword [0x4e73e0]
mov dword [eax + 0x698], esi
mov al, byte [esp + 0xe4]
test al, 0xc
je 0x9ba94
test al, 3
je 0x9ba94
mov edx, dword [esp + 0x18]
test edx, edx
jne 0x9ba94
mov dword [esp + 0x5c], 1
jmp 0x9baa0
mov edx, dword [esp + 0x18]
mov dword [esp + 0x5c], 0
mov esi, dword [ebp + 0x878]
mov eax, esi
and eax, 0x200000
je 0x9bad3
mov ecx, dword [ebp + 0x87c]
test ch, 0xf
je 0x9bc06
test ecx, 0xff000
je 0x9bc06
test edx, edx
je 0x9baf3
jmp 0x9bc06
test esi, 0xf00
je 0x9bc06
test esi, 0xff000
je 0x9bc06
test edx, edx
jne 0x9bc06
test eax, eax
mov ecx, 0x180
je 0x9bb11
mov esi, dword [ebp + 0x87c]
mov edx, esi
shr edx, 0xc
and edx, 0xff
sub ecx, edx
jmp 0x9bb1d
mov eax, esi
shr eax, 0xc
and eax, 0xff
sub ecx, eax
mov ebx, dword [esp + 0x40]
mov edx, ecx
imul ecx, dword [esp + 0x20]
imul edx, ebx
mov eax, 0xaaaaaaab
mul edx
shr edx, 8
mov dword [esp + 0x10], edx
mov eax, 0xaaaaaaab
mul ecx
mov eax, dword [0x4e73e0]
mov eax, dword [eax + 0x1404]
shr esi, 8
and esi, 0xf
shr edx, 8
test eax, str.Xqv
je case.default.0x9bbae
cmp esi, 5
jae case.default.0x9bbae
and eax, 0x300000
cmp eax, 0x100000
jne 0x9bb82
lea eax, [esi - 1]
cmp eax, 3
ja case.default.0x9bbae
jmp dword [eax*4 + 0x9c970]
mov esi, 1
jmp case.default.0x9bbae
cmp eax, 0x200000
jne 0x9bb9f
lea eax, [esi - 1]
cmp eax, 3
ja case.default.0x9bbae
jmp dword [eax*4 + 0x9c980]
mov esi, 4
jmp case.default.0x9bbae
cmp eax, 0x300000
jne case.default.0x9bbae
lea eax, [esi - 1]
cmp eax, 3
ja case.default.0x9bbae
jmp dword [eax*4 + 0x9c990]
mov esi, 2
jmp case.default.0x9bbae
mov esi, 3
add esi, 0xfffffffe
cmp esi, 3
ja case.default.0x9bbc9
jmp dword [esi*4 + 0x9c9a0]
sub ebx, dword [esp + 0x10]
add edi, ebx
jmp case.default.0x9bbc9
sub ebx, dword [esp + 0x10]
add edi, ebx
mov eax, dword [esp + 0x20]
sub eax, edx
jmp 0x9bbf6
sub ebx, dword [esp + 0x10]
mov eax, dword [esp + 0x20]
shr ebx, 1
sub eax, edx
add edi, ebx
shr eax, 1
add dword [esp + 0x30], eax
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x40], ecx
mov dword [esp + 0x20], edx
mov eax, dword [esp + 0xc4]
mov edx, dword [esp + 0xc0]
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0xd8]
cmp eax, 0x3231564e
mov ebx, 0x100000
mov dword [esp + 0x74], edx
mov dword [esp + 0x78], ecx
mov dword [esp + 0x60], edi
jne 0x9bc70
mov esi, ecx
mov ecx, dword [esp + 0xc8]
mov eax, edi
imul esi, ecx
and al, 0xc0
add esi, eax
add edx, esi
mov dword [esp + 0xc0], edx
mov edx, dword [esp + 0x30]
shr edx, 1
imul edx, ecx
add edx, eax
add dword [esp + 0xc4], edx
and edi, 0x3f
jmp 0x9bcd0
cmp eax, 0x32315659
jne 0x9bcb5
mov esi, dword [esp + 0xc8]
mov eax, edi
mov edi, dword [esp + 0x30]
imul edi, esi
shr eax, 1
mov ecx, eax
and ecx, 0x7fffffc0
add edi, ecx
add edx, edi
mov dword [esp + 0xc0], edx
mov edx, dword [esp + 0x30]
shr edx, 1
imul edx, esi
add edx, ecx
add dword [esp + 0xc4], edx
and eax, 0x3f
mov edi, eax
jmp 0x9bcd0
imul ecx, dword [esp + 0xc8]
lea eax, [edi + edi]
and al, 0xc0
add eax, edx
add eax, ecx
mov dword [esp + 0xc0], eax
and edi, 0x1f
mov ecx, dword [esp + 0x54]
mov esi, dword [esp + 0x40]
mov eax, ecx
and eax, 0xffff
mov dword [esp + 0x2c], edi
shl edi, 4
add eax, edi
and ecx, 0xffff0000
or eax, ecx
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x54], eax
add esi, 0xffffffff
xor edx, edx
shl esi, 0x14
add ecx, 0xffffffff
mov eax, esi
div ecx
mov edx, dword [esp + 0x24]
lea edi, [edx - 1]
xor edx, edx
mov ecx, eax
mov eax, dword [esp + 0x20]
add eax, 0xffffffff
shl eax, 0x14
mov dword [esp + 0x10], eax
div edi
test ecx, ecx
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x28], eax
jne 0x9bd32
mov dword [esp + 0x4c], ebx
test eax, eax
jne 0x9bd3a
mov dword [esp + 0x28], ebx
cmp dword [esp + 0x34], 0
jne 0x9bd45
mov dword [esp + 0x34], ebx
cmp dword [esp + 0x58], 0
jne 0x9bd50
mov dword [esp + 0x58], ebx
cmp dword [esp + 0x18], 0
je 0x9bd5b
mov dword [esp + 0x28], ebx
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x40]
mov edi, dword [esp + 0x20]
lea eax, [ecx + eax + 1]
and al, 0xfe
shl edi, 0x10
mov dword [esp + 0x50], edi
or edi, eax
mov dword [esp + 0x80], eax
mov eax, dword [ebp + 0x7dc]
cmp eax, 2
je 0x9bd95
cmp eax, 3
mov dword [esp + 0x18], 0
jne 0x9bd9d
mov dword [esp + 0x18], 1
mov eax, dword [ebp + 0x878]
test al, 0x10
je 0x9bea9
test al, 0x40
je 0x9bfda
mov eax, dword [esp + 0x58]
xor ebx, ebx
mov ecx, ebx
shld ecx, eax, 8
xor edx, edx
shl eax, 8
cmp ecx, edx
jl 0x9bdf4
jg 0x9bdd6
mov edx, dword [esp + 0x34]
lea edx, [edx + edx - 1]
cmp eax, edx
jbe 0x9bdf4
xor edx, edx
sub eax, dword [esp + 0x34]
push edx
sbb ecx, edx
add eax, 1
adc ecx, edx
mov edx, dword [esp + 0x38]
push edx
push ecx
push eax
call fcn.003f47f0
mov ecx, eax
jmp 0x9bdf9
mov ecx, 1
mov eax, dword [ebp + 0x878]
and eax, 0x2000000
mov dword [esp + 0x70], eax
je 0x9be21
mov eax, dword [ebp + 0x78c]
imul eax, ecx
mov ecx, dword [ebp + 0x788]
shl eax, 4
lea ecx, [ecx + ecx*8]
jmp 0x9be3e
cmp dword [esp + 0x18], 0
je 0x9be44
mov eax, dword [ebp + 0x78c]
imul eax, ecx
mov ecx, dword [ebp + 0x788]
add eax, eax
add eax, eax
lea ecx, [ecx + ecx*2]
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x4c]
shl eax, 8
xor edx, edx
div ecx
xor edx, edx
mov ecx, eax
mov eax, dword [esp + 0x10]
div ecx
mov ecx, eax
add ecx, 1
cmp ecx, 1
ja 0x9be68
mov ecx, 2
cmp ecx, dword [esp + 0x24]
ja 0x9bf58
mov eax, dword [esp + 0x10]
xor edx, edx
lea esi, [ecx - 1]
div esi
mov edx, dword [ebp + 0x790]
mov dword [esp + 0x24], ecx
mov dword [esp + 0x28], eax
mov eax, dword [ebp + 0x78c]
sub eax, ecx
mov ecx, eax
shr ecx, 1
imul edx, ecx
add dword [esp + 0x14], edx
and eax, 1
mov dword [esp + 0x68], ecx
mov dword [esp + 0x6c], eax
mov ebx, dword [esp + 0x1c]
mov esi, dword [esp + 0x48]
mov ecx, dword [esp + 0x3c]
cmp dword [esp + 0x5c], 0
mov eax, dword [esp + 0xc8]
mov edx, dword [esp + 0xc0]
mov dword [esp + 0x18], eax
mov dword [esp + 0x2c], edx
je 0x9c0f2
or byte [ebp + 1], 4
test byte [esp + 0xe4], 8
je 0x9bf34
mov edx, dword [esp + 0x20]
add eax, eax
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x30]
shr eax, 1
shr edx, 1
mov dword [esp + 0x78], eax
lea eax, [edx - 1]
mov dword [esp + 0x20], edx
shl eax, 0x14
xor edx, edx
div dword [esp + 0x24]
test byte [esp + 0xe4], 1
mov ebx, dword [esp + 0x1c]
mov dword [esp + 0x28], eax
je 0x9bf34
mov eax, dword [esp + 0xc8]
mov edx, dword [esp + 0xc0]
add edx, eax
add dword [esp + 0x74], eax
mov dword [esp + 0x2c], edx
mov al, byte [esp + 0xe4]
test al, 4
je 0x9c10a
test al, 1
jne 0x9c10a
add dword [esp + 0x54], 0x80000
jmp 0x9c10a
mov eax, dword [esp + 0x34]
mov ecx, pe_nt_image_headers32
mul ecx
mov ecx, eax
mov eax, dword [esp + 0x58]
sub ecx, eax
sbb edx, ebx
push ebx
add ecx, 1
push eax
adc edx, 0
push edx
push ecx
call fcn.003f47f0
mov ecx, eax
test ecx, ecx
jne 0x9bf87
mov ecx, 1
cmp dword [esp + 0x70], 0
je 0x9bfa5
mov eax, dword [ebp + 0x788]
imul eax, ecx
mov ecx, dword [ebp + 0x78c]
lea eax, [eax + eax*8]
shl ecx, 4
jmp 0x9bfc2
cmp dword [esp + 0x18], 0
je 0x9bfc8
mov eax, dword [ebp + 0x788]
imul eax, ecx
mov ecx, dword [ebp + 0x78c]
add ecx, ecx
lea eax, [eax + eax*2]
add ecx, ecx
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x28]
shl eax, 8
xor edx, edx
div ecx
mov ecx, eax
jmp 0x9c089
test al, 0x20
je 0x9bfea
mov ebx, dword [esp + 0x1c]
lea ecx, [ebx + ebx*8]
shr ecx, 4
jmp 0x9c010
test al, al
jns 0x9c04e
mov eax, dword [esp + 0x24]
mov ebx, dword [esp + 0x1c]
lea ecx, [eax*4]
mov eax, 0xaaaaaaab
mul ecx
shr edx, 1
cmp edx, ebx
jb 0x9c03d
lea ecx, [ebx + ebx*2]
shr ecx, 2
mov eax, dword [esp + 0x10]
xor edx, edx
lea esi, [ecx - 1]
div esi
mov edx, dword [ebp + 0x78c]
sub edx, ecx
shr edx, 1
imul edx, dword [ebp + 0x790]
add dword [esp + 0x14], edx
mov dword [esp + 0x24], ecx
mov dword [esp + 0x28], eax
jmp 0x9bead
mov ebx, edx
lea ecx, [ebx - 1]
mov eax, esi
xor edx, edx
div ecx
mov dword [esp + 0x4c], eax
jmp 0x9c098
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x4c]
xor edx, edx
div ecx
add eax, 1
cmp eax, dword [esp + 0x24]
ja 0x9c085
mov dword [esp + 0x28], ecx
mov ecx, dword [ebp + 0x78c]
sub ecx, eax
shr ecx, 1
imul ecx, dword [ebp + 0x790]
add dword [esp + 0x14], ecx
mov dword [esp + 0x24], eax
jmp 0x9bea9
mov ecx, dword [esp + 0x28]
xor edx, edx
mov eax, esi
div ecx
mov dword [esp + 0x4c], ecx
mov ebx, eax
add ebx, 1
mov eax, dword [ebp + 0x788]
mov esi, dword [esp + 0x44]
sub eax, ebx
mov ecx, eax
shr ecx, 1
mov edx, esi
imul edx, ecx
and eax, 1
and edx, 0xffffff80
add dword [esp + 0x14], edx
mov dword [esp + 0x38], eax
xor edx, edx
mov eax, 0x80
div esi
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x3c], ecx
mov esi, eax
mov eax, dword [esp + 0x40]
sub esi, 1
and esi, ecx
lea edx, [esi + eax]
mov eax, dword [esp + 0x2c]
lea edi, [edx + eax + 1]
and edi, 0xfffffffe
or edi, dword [esp + 0x50]
mov dword [esp + 0x48], esi
jmp 0x9beb5
test byte [ebp + 1], 4
je 0x9c10a
mov eax, dword [esp + 0x10]
xor edx, edx
div dword [esp + 0x24]
mov ebx, dword [esp + 0x1c]
mov dword [esp + 0x28], eax
xor eax, eax
cmp dword [esp + 0xdc], eax
mov dword [esp + 0x10], eax
mov dword [ebp + 0x778], eax
jne 0x9c5fb
mov eax, dword [esp + 0x80]
mov ecx, dword [0x4e73e0]
lea eax, [eax + eax + 0x7f]
and al, 0x80
test dword [ecx + 0x23bc], 0xf5f0000
mov dword [esp + 0x50], eax
je 0x9c278
test byte [ecx + 0x23be], 2
je 0x9c16d
mov ecx, dword [ebp + 0x790]
imul eax, dword [esp + 0x20]
imul ecx, dword [ebp + 0x78c]
cmp eax, ecx
jbe 0x9c278
mov eax, dword [0x4e73e0]
mov ecx, dword [eax + 0x2520]
add dword [eax + 0xc04], 1
mov dword [esp + 0x5c], 0
mov edx, dword [ecx]
call dword [edx + 0x124]
mov edx, dword [esp + 0x44]
lea ecx, [esp + 0x5c]
push ecx
mov ecx, dword [esp + 0x28]
push 0
push 0
push 0
push 0
push 0
push 0
push edx
mov edx, dword [esp + 0xa4]
push ecx
mov ecx, dword [esp + 0x38]
push ebx
mov ebx, dword [esp + 0x8c]
push 0
push esi
mov dword [esp + 0xa0], eax
mov eax, dword [eax]
push edx
push 0
mov dword [esp + 0x9c], eax
push ecx
mov eax, ebx
call fcn.00074240
mov edx, dword [esp + 0x114]
mov ecx, dword [esp + 0x7c]
push eax
mov eax, dword [esp + 0x60]
push edx
mov edx, dword [esp + 0xbc]
push eax
mov eax, dword [esp + 0xa8]
push ecx
mov ecx, dword [esp + 0x64]
push edx
mov edx, dword [esp + 0xd8]
push eax
mov eax, dword [esp + 0xc8]
push ecx
mov ecx, dword [esp + 0x110]
push edx
push eax
mov eax, dword [esp + 0xc4]
push ecx
mov ecx, dword [esp + 0xd4]
call dword [eax + 0x1c]
test eax, eax
je 0x9c25d
cmp dword [esp + 0x5c], 0
je 0x9c241
mov dword [ebp + 0x778], 1
mov eax, ebx
call fcn.00074240
mov dword [esp + 0xbc], eax
mov dword [esp + 0xb8], ebx
mov eax, 1
jmp 0x9c261
mov eax, dword [esp + 0x10]
mov ecx, dword [0x4e73e0]
add dword [ecx + 0xc04], 0xffffffff
test eax, eax
jne 0x9c5b8
jmp 0x9c27c
mov ebx, dword [esp + 0x64]
mov eax, dword [esp + 0xd8]
cmp eax, 0x3231564e
je 0x9c295
cmp eax, 0x32315659
jne 0x9c32c
mov edx, dword [esp + 0x20]
mov esi, dword [ebp + 0x790]
imul esi, dword [ebp + 0x78c]
mov eax, dword [esp + 0x14]
add edx, 1
imul edx, dword [esp + 0x50]
sub esi, edx
add esi, dword [esp + 0x7c]
cmp esi, eax
ja 0x9c2be
mov esi, eax
mov eax, dword [esp + 0xd8]
mov ecx, dword [esp + 0xd4]
mov edx, dword [esp + 0x20]
push 0x32595559
push eax
mov eax, dword [esp + 0x88]
push ecx
mov ecx, dword [esp + 0x5c]
push edx
mov edx, dword [esp + 0x28]
push eax
mov eax, dword [esp + 0xd8]
push ecx
mov ecx, dword [esp + 0x44]
push esi
push esi
push edx
mov edx, dword [esp + 0xdc]
push eax
push ecx
push ebp
mov ecx, ebx
call fcn.00093d20
mov edx, dword [esp + 0x50]
mov eax, ebx
mov dword [esp + 0x2c], esi
mov dword [esp + 0x18], edx
call fcn.00074240
mov dword [esp + 0xbc], eax
mov dword [esp + 0x10], 5
jmp 0x9c36a
cmp eax, 0x32595559
ja 0x9c357
je 0x9c322
sub eax, 2
je 0x9c34d
sub eax, 2
jne 0x9b74c
mov dword [esp + 0x10], 4
jmp 0x9c36a
mov dword [esp + 0x10], 7
jmp 0x9c36a
cmp eax, 0x59565955
jne 0x9b74c
mov dword [esp + 0x10], 6
mov esi, dword [0x4e73e0]
add esi, 8
mov ebx, 0xdd001030
mov eax, 7
call fcn.000b6530
mov eax, dword [0x4e73e0]
mov ecx, dword [eax + 0x94]
mov dword [ecx], 0x4e300
mov edx, dword [eax + 0x94]
mov esi, 0xcc
add eax, 8
mov ecx, 2
mov dword [edx + 4], esi
call fcn.0006a150
mov eax, dword [0x4e73e0]
mov dword [eax + 0x688], esi
lea esi, [eax + 8]
mov ebx, 0xdd001070
mov eax, 7
call fcn.000b6530
mov eax, dword [0x4e73e0]
mov ecx, dword [eax + 0x94]
mov dword [ecx], 0x4e304
mov edx, dword [eax + 0x94]
add eax, 8
mov ecx, 2
mov dword [edx + 4], 0
call fcn.0006a150
mov edx, dword [esp + 0x84]
mov eax, dword [0x4e73e0]
mov ecx, edx
shl ecx, 0x10
or ecx, edx
mov dword [eax + 0x68c], 0xffffffff
mov edx, dword [ebp + 0x794]
cmp edx, 4
ja 0x9c423
mov edx, 4
mov esi, dword [eax + 0x94]
mov dword [esi], fcn.00102300
mov esi, dword [eax + 0x94]
mov dword [esi + 4], edx
mov edx, dword [eax + 0x94]
mov dword [edx + 8], ecx
mov edx, dword [eax + 0x94]
mov ecx, dword [esp + 0x14]
mov dword [edx + 0xc], ecx
mov edx, dword [eax + 0x94]
mov dword [edx + 0x10], ecx
add eax, 8
mov ecx, 5
call fcn.0006a150
mov eax, dword [esp + 0x24]
mov esi, dword [0x4e73e0]
mov ebx, dword [ebp + 0x51c]
shl eax, 0x10
or eax, dword [esp + 0x1c]
add esi, 8
mov dword [esp + 0x7c], eax
mov eax, 7
call fcn.000b6530
mov eax, dword [0x4e73e0]
mov ecx, dword [eax + 0x94]
mov dword [ecx], 0x4e184
mov edx, dword [eax + 0x94]
mov ecx, dword [esp + 0xbc]
mov dword [edx + 4], ecx
mov edx, dword [eax + 0x94]
mov dword [edx + 8], 0x4e198
mov ecx, dword [eax + 0x94]
mov dword [ecx + 0xc], 0xdd003f00
mov edx, dword [eax + 0x94]
mov dword [edx + 0x10], 0x4e300
mov ecx, dword [eax + 0x94]
mov edx, dword [esp + 0x10]
mov dword [ecx + 0x14], edx
mov ecx, dword [eax + 0x94]
mov edx, dword [esp + 0x48]
mov dword [ecx + 0x18], 0x18e308
mov ecx, dword [eax + 0x94]
mov dword [ecx + 0x1c], edx
mov esi, dword [eax + 0x94]
mov ecx, dword [esp + 0x7c]
mov dword [esi + 0x20], ecx
mov esi, dword [eax + 0x94]
mov dword [esi + 0x24], edx
mov edx, dword [eax + 0x94]
mov dword [edx + 0x28], ecx
mov ecx, dword [eax + 0x94]
mov edx, dword [esp + 0x4c]
mov dword [ecx + 0x2c], edx
mov ecx, dword [eax + 0x94]
mov edx, dword [esp + 0x28]
mov dword [ecx + 0x30], edx
mov ecx, dword [eax + 0x94]
mov dword [ecx + 0x34], 0x10e400
mov edx, dword [eax + 0x94]
mov ecx, dword [esp + 0x18]
mov dword [edx + 0x38], edi
mov edx, dword [eax + 0x94]
or ecx, 0x1010000
mov dword [edx + 0x3c], ecx
mov ecx, dword [eax + 0x94]
mov edx, dword [esp + 0x2c]
mov dword [ecx + 0x40], edx
mov ecx, dword [eax + 0x94]
mov edx, dword [esp + 0x54]
mov dword [ecx + 0x44], edx
add eax, 8
mov ecx, 0x12
call fcn.0006a150
mov eax, dword [0x4e73e0]
add eax, 8
test byte [eax + 0xb8], 8
jne 0x9c5b8
mov edx, dword [eax + 0x90]
mov ecx, dword [eax + 0x8c]
cmp edx, ecx
je 0x9c5b8
sub ecx, edx
cmp ecx, 0x400
sbb ecx, ecx
add ecx, 1
push ecx
call fcn.000b5bd0
cmp dword [ebp + 0x778], 0
jne 0x9c683
mov edx, dword [0x4e73e0]
mov eax, dword [edx + 0x85c]
mov esi, dword [esp + 0xb4]
mov edi, dword [esi + 0x5c]
mov edx, dword [ebp + 0x528]
push eax
call fcn.00091f70
mov ecx, dword [ebp + 0x528]
mov eax, dword [esi + 0x5c]
push ecx
call fcn.00092050
jmp 0x9c683
mov eax, dword [esp + 0x78]
mov edx, dword [esp + 0x20]
mov dword [esp + 0xa0], eax
add eax, edx
mov edx, dword [esp + 0x40]
mov dword [esp + 0xa8], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 0x9c], eax
add eax, edx
mov edx, dword [esp + 0x24]
mov dword [esp + 0xa4], eax
mov eax, dword [esp + 0x68]
mov dword [esp + 0x90], eax
mov dword [esp + 0x8c], ecx
add eax, edx
push 0
add ecx, ebx
mov dword [esp + 0x9c], eax
mov dword [esp + 0x98], ecx
mov ecx, dword [ebp + 0x7a8]
mov edx, dword [ebp + ecx*4 + 0x798]
mov ecx, dword [esp + 0xe4]
push 0
lea eax, [esp + 0x94]
push eax
push edx
push 0
lea eax, [esp + 0xb0]
push eax
call fcn.000f4620
mov edi, dword [esp + 0x3c]
test edi, edi
mov esi, dword [esp + 0x44]
jne 0x9c697
cmp dword [esp + 0x38], edi
je 0x9c6fa
jmp 0x9c6c0
mov ecx, dword [ebp + 0x78c]
mov edx, dword [ebp + 0x790]
mov eax, dword [ebp + 0x7a8]
mov eax, dword [ebp + eax*4 + 0x798]
push esi
push ecx
push edi
push edx
call fcn.00069fd0
push 0
call fcn.00095340
mov ecx, dword [ebp + 0x78c]
mov edx, dword [esp + 0x38]
mov eax, dword [ebp + 0x790]
push esi
push ecx
mov ecx, dword [ebp + 0x7a8]
add edx, edi
push edx
push eax
mov eax, dword [ebp + ecx*4 + 0x798]
call fcn.00069fd0
mov edx, dword [esp + 0x2c]
add edi, edx
imul edi, esi
add eax, edi
push 0
call fcn.00095340
mov ebx, dword [esp + 0x68]
test ebx, ebx
jne 0x9c70a
cmp dword [esp + 0x6c], ebx
je 0x9c76d
jmp 0x9c733
mov eax, dword [ebp + 0x788]
mov ecx, dword [ebp + 0x790]
mov edx, dword [ebp + 0x7a8]
push esi
push ebx
push eax
mov eax, dword [ebp + edx*4 + 0x798]
push ecx
call fcn.00069fd0
push 0
call fcn.00095340
mov eax, dword [esp + 0x6c]
mov ecx, dword [ebp + 0x788]
mov edx, dword [ebp + 0x7a8]
mov edi, dword [ebp + 0x790]
push esi
add eax, ebx
push eax
mov eax, dword [ebp + edx*4 + 0x798]
push ecx
push edi
call fcn.00069fd0
mov ecx, dword [esp + 0x34]
add ebx, ecx
imul ebx, edi
add eax, ebx
push 0
call fcn.00095340
cmp dword [ebp + 0x778], 0
jne 0x9c831
mov eax, dword [0x4e73e0]
mov edx, dword [eax + 0x94]
mov dword [edx], 0x44100
mov ecx, dword [eax + 0x94]
xor edi, edi
mov dword [ecx + 4], edi
add eax, 8
mov ecx, 2
call fcn.0006a150
mov esi, dword [0x4e73e0]
mov ebx, dword [ebp + 0x51c]
add esi, 8
mov eax, 7
call fcn.000b6530
mov eax, dword [0x4e73e0]
mov edx, dword [eax + 0x94]
mov dword [edx], 0x4e104
mov ecx, dword [eax + 0x94]
mov dword [ecx + 4], 1
mov edx, dword [eax + 0x94]
mov dword [edx + 8], 0x4e100
mov ecx, dword [eax + 0x94]
mov dword [ecx + 0xc], edi
add eax, 8
mov ecx, 4
call fcn.0006a150
mov eax, dword [0x4e73e0]
add eax, 8
test byte [eax + 0xb8], 8
jne 0x9c831
mov edx, dword [eax + 0x90]
mov ecx, dword [eax + 0x8c]
cmp edx, ecx
je 0x9c831
sub ecx, edx
cmp ecx, 0x400
sbb edx, edx
add edx, 1
push edx
call fcn.000b5bd0
mov esi, dword [0x4e73e0]
add esi, 8
mov ebx, 0xdd001050
mov eax, 7
call fcn.000b6530
mov ecx, dword [0x4e73e0]
mov eax, dword [ecx + 0x94]
mov dword [eax], 0xce30c
mov edx, dword [ecx + 0x94]
mov eax, dword [0x5271fc]
mov dword [edx + 4], 1
test byte [eax + 0x19b], 8
je 0x9c87d
mov eax, 0x18
jmp 0x9c883
mov eax, dword [eax + 0x230]
add eax, 1
cdq
and edx, 7
add eax, edx
sar eax, 3
sub eax, 1
je 0x9c8a7
sub eax, 3
je 0x9c8a0
mov esi, 0xffff0000
jmp 0x9c8ac
mov esi, 0xff000000
jmp 0x9c8ac
mov esi, 0xff00
mov eax, dword [ecx + 0x94]
mov dword [eax + 8], esi
mov edx, dword [ecx + 0x94]
lea eax, [ecx + 8]
mov ecx, 4
mov dword [edx + 0xc], esi
call fcn.0006a150
mov ecx, dword [0x4e73e0]
mov eax, dword [ecx + 0x209c]
test eax, eax
mov dword [ecx + 0x698], esi
je 0x9c95d
mov edx, dword [eax + 0x1c9568]
test edx, edx
je 0x9c95d
xor esi, esi
test edx, edx
jbe 0x9c958
add eax, 0x1c95ec
mov edx, 6
jmp 0x9c900
cmp dword [eax - 0x80], edx
jne 0x9c90a
cmp dword [eax], 0
je 0x9c935
mov edi, dword [ecx + 0x209c]
add esi, 1
add eax, 4
cmp esi, dword [edi + 0x1c9568]
jb 0x9c900
call fcn.0008dfe0
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x9c
ret 0x40
mov ecx, dword [ecx + 0xb80]
mov eax, 4
call fcn.0014bd40
mov ecx, dword [0x4e73e0]
mov edx, dword [ecx + 0x209c]
mov dword [edx + esi*4 + 0x1c95ec], eax
call fcn.0008dfe0
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x9c
ret 0x40