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

Disassembly:
sub esp, 0xee4
mov eax, dword [0x1009ad70]
xor eax, esp
mov dword [esp + 0xee0], eax
mov eax, dword [esp + 0xee8]
mov edx, dword [esp + 0xeec]
mov ecx, dword [esp + 0xef8]
push ebx
mov ebx, dword [esp + 0xef4]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xf10]
push esi
xor esi, esi
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0xf18]
mov dword [esp + 0xc], edx
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x24], ecx
mov dword [esp + 0x58], eax
mov dword [esp + 0x48], esi
mov dword [esp + 0x54], esi
mov dword [esp + 0x2c], esi
mov dword [esp + 0x44], esi
mov dword [esp + 0x5c], esi
test edx, 0xf0000000
jne 0x1000754d
xor eax, eax
jmp 0x1000853d
mov eax, edx
and eax, 0xc0000000
cmp eax, 0xc0000000
je 0x10007546
test ebx, ebx
je 0x10007546
test ecx, ecx
jne 0x1000756c
cmp dword [esp + 0xf08], esi
je 0x10007546
test edx, 0x7fceff8
jne 0x10007546
push edi
mov edi, dword [esp + 0xf00]
test edi, edi
jns 0x1000758d
mov ecx, ebx
call fcn.10008580
mov ecx, dword [esp + 0x28]
mov edi, eax
mov eax, dword [esp + 0xf08]
test eax, eax
jns 0x100075a4
call fcn.10008580
mov dword [esp + 0xf08], eax
mov eax, dword [esp + 0x10]
mov esi, eax
mov ecx, dword [esp + 0x44]
mov edx, eax
shr esi, 0x10
and edx, 3
and esi, 3
push ebp
lea edx, [edx + esi*4]
mov ebp, dword [edx*4 + 0x10096690]
mov edx, eax
call fcn.10005130
mov dword [esp + 0x70], eax
test eax, eax
je 0x100077f4
mov eax, dword [esp + 0x14]
mov esi, 1
and eax, 0x80000000
mov dword [esp + 0x7c], eax
je 0x100077d8
push 0x26
push ebx
call fcn.1000acf4
add esp, 8
test eax, eax
jne 0x10007616
push 0x7c
push ebx
call fcn.1000acf4
xor ecx, ecx
add esp, 8
test eax, eax
cmove ecx, esi
mov dword [esp + 0x50], ecx
jmp 0x10007618
xor ecx, ecx
lea esi, [ecx + edi*2]
add esi, edi
lea ecx, [esi + esi*4]
shl ecx, 2
call fcn.100050a0
mov dword [esp + 0x68], eax
test eax, eax
je 0x100077f4
add eax, 0xc
mov dword [esp + 0x30], eax
lea eax, [eax + esi*4]
mov dword [esp + 0x24], eax
lea eax, [eax + esi*4]
mov dword [esp + 0x20], eax
lea eax, [eax + esi*4]
lea edx, [eax + esi*4]
mov dword [esp + 0x3c], eax
mov esi, dword [esp + 0x50]
mov dword [esp + 0x1c], edx
test esi, esi
jle 0x100076fa
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x84]
and ecx, 0x30000000
mov edx, esi
mov si, word [esp + 0xf18]
neg ecx
sbb ecx, ecx
neg ecx
mov ebx, dword [esp + 0x14]
lea eax, [eax + 0x70]
mov dword [eax - 0x60], ebx
mov ebx, dword [esp + 0x44]
mov dword [eax - 0x50], ebx
mov ebx, dword [esp + 0x30]
mov dword [eax - 0x1c], ebx
mov ebx, dword [esp + 0x24]
mov dword [eax - 0x74], 0
mov dword [eax - 0x70], 0
mov dword [eax - 0x6c], 0
mov dword [eax - 0x68], ecx
mov word [eax - 0x64], si
mov dword [eax - 0x5c], ebp
mov dword [eax - 0x58], 0
mov dword [eax - 0x4c], edi
mov dword [eax - 0x48], 0
mov dword [eax - 0x24], 0
mov dword [eax - 0x18], ebx
mov dword [esp + 0x154], 0
mov dword [eax - 0x14], 0
mov dword [eax - 0xc], 0
dec edx
jne 0x10007684
mov edx, dword [esp + 0x1c]
mov esi, dword [esp + 0x20]
mov edi, dword [esp + 0x24]
mov ebx, dword [esp + 0x14]
xor eax, eax
mov dword [esp + 0x98], ebp
mov ebp, dword [esp + 0xf0c]
mov word [esp + 0x90], ax
mov eax, dword [esp + 0xf10]
mov dword [esp + 0x9c], eax
mov eax, dword [esp + 0xf14]
mov dword [esp + 0xa0], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0xa4], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0xdc], eax
xor eax, eax
mov dword [esp + 0x8c], 0
mov dword [esp + 0x94], ebx
mov dword [esp + 0xa8], ebp
mov dword [esp + 0xac], 0
mov dword [esp + 0xd0], 0
mov dword [esp + 0xd8], esi
mov dword [esp + 0xe4], eax
mov dword [esp + 0xe0], eax
mov dword [esp + 0xe8], eax
lea ecx, [ecx]
cmp dword [esp + 0xa8], 0
jne 0x100077b8
cmp dword [esp + 0xd0], 0
je 0x1000796f
cmp dword [esp + 0xe0], eax
jne 0x1000797c
cmp dword [esp + 0x7c], 0
je 0x1000790b
lea ecx, [esi + eax*4]
jmp 0x1000796b
lea esi, [edi*2 + 1]
add esi, edi
lea ecx, [esi + esi*4]
shl ecx, 2
call fcn.100050a0
mov dword [esp + 0x68], eax
test eax, eax
jne 0x100077fb
xor eax, eax
jmp 0x1000853b
mov ecx, dword [esp + 0x14]
lea edx, [eax + 0xc]
lea eax, [edx + esi*4]
mov dword [esp + 0x114], ebx
mov dword [esp + 0x24], eax
mov ebx, ecx
lea eax, [eax + esi*4]
mov dword [esp + 0x118], edi
mov dword [esp + 0x20], eax
lea edi, [edx + esi*4]
lea eax, [eax + esi*4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x3c], eax
lea eax, [eax + esi*4]
mov esi, dword [esp + 0x20]
mov dword [esp + 0x1c], eax
mov eax, ecx
and eax, 0x30000000
mov dword [esp + 0x50], 1
neg eax
mov dword [esp + 0xf0], 0
mov dword [esp + 0xf4], 0
sbb eax, eax
mov dword [esp + 0xf8], 0
neg eax
mov dword [esp + 0x104], ecx
mov dword [esp + 0xfc], eax
mov eax, dword [esp + 0xf18]
mov word [esp + 0x100], ax
mov dword [esp + 0x108], ebp
mov dword [esp + 0x10c], 0
mov dword [esp + 0x11c], 0
mov dword [esp + 0x140], 0
mov dword [esp + 0x148], edx
mov dword [esp + 0x14c], edi
mov dword [esp + 0x154], 0
mov dword [esp + 0x150], 0
test ebx, 0x40000000
je 0x100078f7
mov dword [esp + 0x158], edx
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x15c], esi
jmp 0x10007706
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x158], 0
jmp 0x10007706
mov eax, dword [esp + 0xe0]
mov ecx, ebp
sub ecx, dword [esp + 0xd0]
sub ecx, dword [esp + 0xa8]
push 1
push dword [esp + 0x38]
mov dword [edx + eax*4], ecx
lea edx, [esp + 0x88]
mov ecx, dword [esp + 0x78]
mov dword [esp + 0xdc], 0
call fcn.10005650
cmp dword [esp + 0xa8], 0
mov eax, dword [esp + 0xe4]
lea ecx, [esi + eax*4]
mov dword [esp + 0x5c], ecx
jne 0x10007968
cmp dword [esp + 0xd0], 0
je 0x1000796f
add ecx, 4
mov dword [esp + 0x5c], ecx
cmp dword [esp + 0xe0], eax
je 0x1000843e
mov eax, dword [esp + 0xe0]
mov dword [esp + 0x44], 0
lea ebp, [esi + eax*4]
mov eax, dword [esp + 0x50]
mov dword [esp + 0x40], ebp
mov edx, eax
mov dword [esp + 0x48], edx
test eax, eax
je 0x10008437
imul ecx, edx, 0x70
lea edx, [esp + 0x88]
add edx, ecx
mov dword [esp + 0x10], ecx
mov dword [esp + 0x18], edx
cmp dword [edx], 2
jg 0x10007aae
mov ebp, dword [esp + 0x30]
jmp 0x100079d0
mov eax, dword [esp + ecx + 0xe0]
cmp eax, dword [esp + ecx + 0xe4]
jne 0x10007a18
push 1
push dword [esp + 0x38]
lea edx, [esp + 0x88]
add edx, ecx
mov ecx, dword [esp + 0x78]
call fcn.10005650
test eax, eax
je 0x10007a4c
mov edx, dword [esp + 0x10]
mov eax, dword [esp + edx + 0xe0]
cmp eax, dword [esp + edx + 0xe4]
je 0x10007af6
mov edx, dword [esp + 0x18]
cmp dword [edx], 2
jge 0x10007d1b
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + ecx + 0xe0]
lea ecx, [eax*4]
movzx eax, word [ecx + ebp]
add eax, 0xffff0004
cmp eax, 3
ja case.default.0x10007a45
jmp dword [eax*4 + 0x10008568]
mov edx, dword [esp + 0x18]
mov dword [edx], 1
jmp 0x10007a21
lea eax, [ebp + 4]
add eax, ecx
mov ecx, dword [esp + 0x10]
mov dword [esp + ecx + 0xe8], eax
mov eax, dword [esp + 0xe0]
lea eax, [esi + eax*4]
mov dword [esp + ecx + 0xec], eax
mov eax, dword [esp + ecx + 0xd0]
add eax, dword [esp + ecx + 0xa8]
jne 0x10007a9a
mov eax, dword [esp + ecx + 0xe4]
dec eax
cmp dword [esp + ecx + 0xe0], eax
je 0x10007b05
inc dword [esp + ecx + 0xe0]
cmp dword [edx], 2
jle 0x100079d0
mov ebp, dword [esp + 0x40]
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x48]
mov edi, dword [esp + 0x24]
dec edx
mov dword [esp + 0x48], edx
jne 0x100079a4
test ecx, ecx
je 0x10008437
inc dword [esp + 0xe0]
lea eax, [esi + 4]
cmp ebp, eax
mov eax, dword [esp + 0xe4]
ja 0x10008386
mov edx, dword [esp + 0x1c]
mov ebp, dword [esp + 0xf0c]
jmp 0x100077a0
mov ecx, dword [esp + 0x18]
mov dword [ecx], 3
jmp 0x10007d23
cmp dword [esp + 0x6c], 0
mov ecx, dword [esp + 0x18]
mov dword [edx], 4
je 0x10007d1f
cmp dword [esp + 0x60], 0
je 0x10007d1f
mov eax, dword [esp + 0xe0]
mov edi, dword [esp + 0x1c]
mov edx, dword [esp + 0x60]
mov dword [esp + 0x60], 0
mov eax, dword [edi + eax*4]
sub eax, dword [esp + 0x64]
mov dword [edx], eax
mov edx, dword [esp + 0x10]
jmp 0x10007d27
mov edx, dword [esp + 0x10]
xor edi, edi
mov dword [esp + 0x2c], edi
inc dword [esp + edx + 0xe0]
mov eax, dword [esp + edx + 0xe0]
cmp eax, dword [esp + edx + 0xe4]
jge 0x10007b8b
mov ecx, 0xfff9
cmp word [ebp + eax*4], cx
jne 0x10007b8b
inc eax
mov dword [esp + 0x2c], 1
mov dword [esp + edx + 0xe0], eax
mov eax, dword [esp + edx + 0xe0]
cmp eax, dword [esp + edx + 0xe4]
jge 0x10007cd2
nop
mov esi, dword [esp + edx + 0xe0]
mov eax, 0xfffb
lea ecx, [esi*4]
cmp word [ecx + ebp], ax
je 0x10007cab
add esi, 2
cmp esi, dword [esp + edx + 0xe4]
jge 0x10007c5c
mov eax, 0xfffa
cmp word [ecx + ebp + 4], ax
jne 0x10007c5c
mov eax, dword [esp + 0xe0]
mov edx, dword [esp + 0x3c]
mov ebx, dword [edx + eax*4]
mov edx, dword [esp + 0x20]
mov ebp, dword [edx + eax*4]
mov edx, ebp
mov eax, dword [esp + 0x24]
push dword [ecx + eax]
mov eax, dword [esp + 0x34]
push dword [ecx + eax]
mov ecx, dword [esp + 0x1c]
push ebx
call fcn.100055c0
test eax, eax
js 0x10007c47
mov eax, dword [esp + 0x24]
mov edx, ebp
push dword [eax + esi*4]
mov eax, dword [esp + 0x34]
push dword [eax + esi*4]
push ebx
mov ebx, dword [esp + 0x20]
mov ecx, ebx
call fcn.100055c0
mov edx, dword [esp + 0x10]
test eax, eax
mov ebp, dword [esp + 0x30]
mov eax, 1
cmovle edi, eax
mov dword [esp + edx + 0xe0], esi
jmp 0x10007c90
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x14]
mov ebp, dword [esp + 0x30]
mov dword [esp + edx + 0xe0], esi
jmp 0x10007c90
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0xe0]
push dword [ecx + edx]
push dword [ecx + ebp]
mov ecx, dword [esp + 0x44]
push dword [ecx + eax*4]
mov ecx, dword [esp + 0x2c]
mov edx, dword [ecx + eax*4]
mov ecx, ebx
call fcn.100055c0
mov edx, dword [esp + 0x10]
test eax, eax
mov eax, 1
cmove edi, eax
inc dword [esp + edx + 0xe0]
mov eax, dword [esp + edx + 0xe0]
cmp eax, dword [esp + edx + 0xe4]
jl 0x10007ba0
test edi, edi
je 0x10007cce
cmp dword [esp + 0x2c], 0
jne 0x10007cd9
mov esi, dword [esp + 0x20]
mov eax, dword [esp + 0xe0]
mov ecx, dword [esp + 0x18]
mov eax, dword [esi + eax*4]
mov dword [esp + 0x34], eax
jmp 0x10007d23
mov esi, dword [esp + 0x20]
cmp dword [esp + 0x2c], 0
jne 0x10007cba
mov ecx, dword [esp + 0x18]
mov esi, dword [esp + 0x20]
mov dword [ecx], 3
jmp 0x10007d23
mov eax, dword [esp + 0xe0]
cmp byte [esi + eax*4 + 1], 0xc
jne 0x10007d05
cmp byte [esi + eax*4 + 2], 2
jne 0x10007d05
cmp byte [esi + eax*4 + 3], 2
je 0x10007d14
mov dword [edx], 3
jmp 0x10007d1b
mov eax, dword [esp + 0xe0]
mov eax, dword [esi + eax*4]
mov dword [esp + 0x34], eax
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x10]
mov edi, dword [esp + 0x1c]
cmp dword [ecx], 2
jge 0x10007d6c
mov eax, dword [esp + edx + 0xd0]
add eax, dword [esp + edx + 0xa8]
jne 0x10007d6c
mov eax, dword [esp + edx + 0xe4]
dec eax
cmp dword [esp + edx + 0xe0], eax
jne 0x10007d6c
mov eax, dword [esp + 0xe0]
inc eax
lea eax, [esi + eax*4]
cmp dword [esp + 0x5c], eax
je 0x10007d66
test ebx, 0x40000000
je 0x10007d6c
mov dword [ecx], 4
mov ecx, dword [ecx]
cmp ecx, 3
jne 0x100082fe
mov eax, dword [esp + edx + 0xe8]
test eax, eax
je 0x100082fe
mov edi, dword [esp + edx + 0xec]
sub eax, ebp
sar eax, 2
mov dword [esp + edx + 0xe0], eax
lea ecx, [edi + 4]
mov dword [esp + edx + 0xec], ecx
mov edx, dword [esp + 0x4c]
mov dword [esp + 0x74], ecx
mov ecx, dword [esp + 0x18]
mov dword [ecx], 0
xor ecx, ecx
cmp eax, 1
cmovle edx, ecx
mov dword [esp + 0x4c], edx
mov eax, dword [esp + 0xe0]
lea ecx, [esi + eax*4]
mov eax, edi
add edi, 4
mov dword [esp + 0x38], edi
cmp ecx, eax
jbe 0x10008326
mov ecx, dword [esp + 0x3c]
mov eax, edi
sub eax, esi
sar eax, 2
lea eax, [ecx + eax*4]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x58], eax
cmp dword [ecx], 2
jge 0x10008295
jmp 0x10007e00
mov eax, dword [esp + 0xe0]
lea esi, [esi + eax*4]
cmp edi, esi
ja 0x1000828a
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + eax + 0xe0]
lea edx, [ecx*4]
movzx eax, word [edx + ebp]
sub eax, 0xfffc
je 0x10007f67
dec eax
je 0x10007f4a
dec eax
je 0x10007f5c
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x58]
mov ebx, dword [edi]
mov eax, dword [edx + eax]
mov edx, dword [edx + ebp]
mov ecx, dword [ecx]
mov dword [esp + 0x54], eax
cmp bx, dx
jne 0x10007f31
test byte [esp + 0x14], 2
jne 0x10007eec
mov dword [esp + 0x38], ebx
mov eax, edx
shr dword [esp + 0x38], 0x10
shr eax, 0x10
cmp byte [esp + 0x38], al
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x54]
je 0x10007eec
mov eax, dword [esp + 0x2c]
cmp byte [esp + 0x38], al
jmp 0x10007f31
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + eax + 0xe0]
mov eax, dword [esp + 0xe0]
push dword [edi + ecx*4]
mov esi, dword [esi + eax*4]
mov edx, esi
push dword [ebp + ecx*4]
mov ecx, dword [esp + 0x44]
push dword [ecx + eax*4]
mov ecx, ebx
call fcn.100055c0
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x10]
mov edi, dword [esp + 0x1c]
test eax, eax
je 0x10007edf
mov esi, dword [esp + 0x20]
mov dword [ecx], 3
jmp 0x10007d27
mov dword [esp + 0x34], esi
mov esi, dword [esp + 0x20]
jmp 0x10007d27
test byte [esp + 0x14], 1
jne 0x10007f03
shr edx, 0x18
shr ebx, 0x18
and dl, 0x3f
and bl, 0x3f
cmp bl, dl
jne 0x10007f31
cmp ecx, eax
je 0x10007f5c
cmp cl, al
jne 0x10007f31
mov edx, ecx
mov ebx, eax
shr edx, 8
shr ebx, 8
cmp dl, bl
jne 0x10007f31
mov edx, ecx
mov ebx, eax
shr edx, 0x10
shr ebx, 0x10
cmp dl, bl
jne 0x10007f31
shr ecx, 0x18
shr eax, 0x18
cmp cl, al
je 0x10007f5c
sbb eax, eax
and eax, 0xfffffffe
inc eax
test eax, eax
je 0x10007f5c
mov ecx, dword [esp + 0x18]
mov dword [ecx], 3
jmp 0x10008232
cmp byte [edi + 1], 0xc
jne 0x10007f3b
cmp byte [edi + 2], 2
jne 0x10007f3b
cmp byte [edi + 3], 2
jne 0x10007f3b
mov eax, dword [esi]
mov edx, dword [esp + 0x10]
jmp 0x100081eb
mov edx, dword [esp + 0x10]
lea edi, [ecx + 1]
mov esi, dword [esp + 0x30]
xor ebp, ebp
mov dword [esp + 0x2c], ebp
mov ecx, 0xfffb
mov dword [esp + edx + 0xe0], edi
jmp 0x10007f94
mov ebx, dword [esp + 0x14]
mov eax, 0xfff9
cmp word [esi + edi*4], ax
jne 0x10007fad
mov eax, 1
mov dword [esp + 0x2c], eax
jmp 0x100081a8
mov eax, 0xfffa
cmp word [esi + edi*4 + 4], ax
mov eax, dword [esp + 0x24]
mov eax, dword [eax + edi*4]
jne 0x10008102
mov ecx, dword [esi + edi*4]
mov esi, dword [esp + 0x38]
mov edx, dword [esp + 0x58]
mov esi, dword [esi]
mov edx, dword [edx]
mov dword [esp + 0x54], esi
cmp si, cx
jne 0x10008040
test bl, 2
jne 0x10007ff9
mov ebx, esi
mov dword [esp + 0x28], ecx
shr dword [esp + 0x28], 0x10
shr ebx, 0x10
cmp bl, byte [esp + 0x28]
jne 0x10008040
mov ebx, dword [esp + 0x14]
test bl, 1
jne 0x10008010
mov ebx, esi
shr ecx, 0x18
shr ebx, 0x18
and cl, 0x3f
and bl, 0x3f
cmp bl, cl
jne 0x10008040
cmp edx, eax
je 0x1000804e
cmp dl, al
jne 0x10008040
mov ecx, edx
mov ebx, eax
shr ecx, 8
shr ebx, 8
cmp cl, bl
jne 0x10008040
mov ecx, edx
mov ebx, eax
shr ecx, 0x10
shr ebx, 0x10
cmp cl, bl
jne 0x10008040
mov ecx, edx
shr eax, 0x18
shr ecx, 0x18
cmp cl, al
je 0x1000804e
sbb eax, eax
and eax, 0xfffffffe
inc eax
test eax, eax
js 0x100080eb
mov esi, dword [esp + 0x30]
mov eax, dword [esp + 0x24]
mov ebx, dword [esp + 0x54]
mov ecx, dword [esi + edi*4 + 8]
mov eax, dword [eax + edi*4 + 8]
cmp bx, cx
jne 0x100080c9
test byte [esp + 0x14], 2
jne 0x10008084
mov dword [esp + 0x28], ecx
shr dword [esp + 0x28], 0x10
shr ebx, 0x10
cmp bl, byte [esp + 0x28]
jne 0x100080c9
mov ebx, dword [esp + 0x54]
test byte [esp + 0x14], 1
jne 0x1000809b
shr ecx, 0x18
shr ebx, 0x18
and cl, 0x3f
and bl, 0x3f
cmp bl, cl
jne 0x100080c9
cmp edx, eax
je 0x100080d3
cmp dl, al
jne 0x100080c9
mov ecx, edx
mov ebx, eax
shr ecx, 8
shr ebx, 8
cmp cl, bl
jne 0x100080c9
mov ecx, edx
mov ebx, eax
shr ecx, 0x10
shr ebx, 0x10
cmp cl, bl
jne 0x100080c9
shr edx, 0x18
shr eax, 0x18
cmp dl, al
je 0x100080d3
sbb eax, eax
and eax, 0xfffffffe
inc eax
test eax, eax
jg 0x100080ef
mov edx, dword [esp + 0x10]
lea eax, [edi + 2]
mov ebp, 1
mov dword [esp + edx + 0xe0], eax
jmp 0x1000819f
mov esi, dword [esp + 0x30]
mov edx, dword [esp + 0x10]
lea eax, [edi + 2]
mov dword [esp + edx + 0xe0], eax
jmp 0x1000819f
mov ebx, dword [esp + 0x38]
mov ecx, dword [esp + 0x58]
mov edx, dword [esi + edi*4]
mov dword [esp + 0x54], eax
mov ebx, dword [ebx]
mov ecx, dword [ecx]
cmp bx, dx
jne 0x1000818c
test byte [esp + 0x14], 2
jne 0x10008147
mov dword [esp + 0x28], ebx
mov eax, edx
shr dword [esp + 0x28], 0x10
shr eax, 0x10
cmp byte [esp + 0x28], al
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x54]
je 0x10008147
mov eax, dword [esp + 0x78]
cmp byte [esp + 0x28], al
jmp 0x1000818c
test byte [esp + 0x14], 1
jne 0x1000815e
shr edx, 0x18
shr ebx, 0x18
and dl, 0x3f
and bl, 0x3f
cmp bl, dl
jne 0x1000818c
cmp ecx, eax
je 0x10008196
cmp cl, al
jne 0x1000818c
mov edx, ecx
mov ebx, eax
shr edx, 8
shr ebx, 8
cmp dl, bl
jne 0x1000818c
mov edx, ecx
mov ebx, eax
shr edx, 0x10
shr ebx, 0x10
cmp dl, bl
jne 0x1000818c
shr ecx, 0x18
shr eax, 0x18
cmp cl, al
je 0x10008196
sbb eax, eax
and eax, 0xfffffffe
inc eax
test eax, eax
jne 0x1000819b
mov ebp, 1
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x2c]
mov ecx, 0xfffb
inc dword [esp + edx + 0xe0]
mov edi, dword [esp + edx + 0xe0]
cmp word [esi + edi*4], cx
je 0x100081c9
cmp edi, dword [esp + edx + 0xe4]
jl 0x10007f90
test ebp, ebp
je 0x100082a4
test eax, eax
jne 0x100082ac
mov eax, dword [esp + 0xe0]
mov ecx, dword [esp + 0x20]
mov edi, dword [esp + 0x38]
mov eax, dword [ecx + eax*4]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x34], eax
cmp dword [ecx], 2
jge 0x10008232
mov eax, dword [esp + edx + 0xd0]
add eax, dword [esp + edx + 0xa8]
jne 0x10008232
mov eax, dword [esp + edx + 0xe4]
dec eax
cmp dword [esp + edx + 0xe0], eax
jne 0x10008232
lea eax, [edi + 4]
cmp dword [esp + 0x5c], eax
je 0x1000822c
test dword [esp + 0x14], 0x40000000
je 0x10008232
mov dword [ecx], 4
add dword [esp + 0x58], 4
add edi, 4
mov ecx, dword [ecx]
mov dword [esp + 0x38], edi
cmp ecx, 3
je 0x100082c3
cmp dword [esp + 0x4c], 0
jne 0x10008266
mov eax, dword [esp + 0xe0]
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x4c], 1
mov eax, dword [edx + eax*4]
mov dword [esp + 0x64], eax
test ecx, ecx
jne 0x10008275
mov eax, dword [esp + 0x10]
inc dword [esp + eax + 0xe0]
mov ebx, dword [esp + 0x14]
mov ebp, dword [esp + 0x30]
mov esi, dword [esp + 0x20]
cmp ecx, 2
jl 0x10007e00
mov ecx, dword [esp + 0x18]
mov esi, dword [esp + 0x20]
cmp dword [ecx], 2
mov ebx, dword [esp + 0x14]
jl 0x10007dc1
jmp 0x10008326
test eax, eax
jne 0x100081d9
mov edi, dword [esp + 0x18]
mov ecx, dword [esp + 0x18]
mov dword [edi], 3
mov edi, dword [esp + 0x38]
jmp 0x10008232
mov ebx, dword [esp + 0x10]
mov edx, dword [esp + 0x74]
mov edi, edx
mov ecx, dword [esp + 0x18]
add edx, 4
mov ebp, dword [esp + 0x30]
mov eax, dword [esp + ebx + 0xe8]
sub eax, ebp
mov dword [esp + 0x74], edx
sar eax, 2
mov dword [esp + ebx + 0xec], edx
mov dword [ecx], 0
mov dword [esp + ebx + 0xe0], eax
jmp 0x1000828e
cmp dword [esp + 0x4c], 0
jne 0x1000831b
mov eax, dword [esp + 0xe0]
mov dword [esp + 0x4c], 1
mov eax, dword [edi + eax*4]
mov dword [esp + 0x64], eax
test ecx, ecx
jne 0x10008326
inc dword [esp + edx + 0xe0]
mov ebx, dword [esp + 0x18]
mov eax, dword [ebx]
cmp eax, 4
jne 0x10008340
mov ecx, dword [esp + 0x10]
mov dword [esp + ecx + 0xe8], 0
mov ecx, dword [esp + 0x44]
cmp eax, 2
mov ebp, dword [esp + 0x40]
mov eax, 1
cmovl ecx, eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x44], ecx
cmp dword [esp + eax + 0xe8], 0
je 0x1000837d
test ebp, ebp
je 0x10008372
cmp dword [esp + eax + 0xec], ebp
jae 0x1000837d
mov ebp, dword [esp + eax + 0xec]
mov dword [esp + 0x40], ebp
mov ebx, dword [esp + 0x14]
jmp 0x10007ab2
mov ecx, dword [esp + 0x20]
sub ebp, esi
sub ebp, 4
sar ebp, 2
sub eax, ebp
mov dword [esp + 0x40], ebp
shl eax, 2
push eax
lea esi, [ebp*4]
lea eax, [esi + ecx]
push eax
push ecx
call fcn.10009fd0
mov eax, dword [esp + 0xf0]
sub eax, ebp
mov ebp, dword [esp + 0x48]
shl eax, 2
push eax
lea eax, [esi + ebp]
push eax
push ebp
call fcn.10009fd0
mov edi, dword [esp + 0x58]
add esp, 0x18
cmp dword [esp + 0x6c], 0
je 0x100083f4
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0x1c]
sub eax, edi
shl eax, 2
push eax
lea eax, [esi + ecx]
push eax
push ecx
call fcn.10009fd0
add esp, 0xc
sub dword [esp + 0xe0], edi
sub dword [esp + 0xe4], edi
mov ecx, dword [esp + 0x50]
imul eax, ecx, 0x70
lea eax, [esp + eax + 0xec]
sub dword [eax], esi
lea eax, [eax - 0x70]
dec ecx
jne 0x10008410
mov eax, dword [esp + 0xe4]
mov edi, dword [esp + 0x24]
mov esi, dword [esp + 0x20]
mov edx, dword [esp + 0x1c]
mov ebp, dword [esp + 0xf0c]
jmp 0x100077a0
mov ebp, dword [esp + 0xf0c]
mov ebx, dword [esp + 0x50]
mov edi, ebx
mov dword [esp + 0x48], edi
test ebx, ebx
je 0x100084d2
imul eax, ebx, 0x70
lea esi, [esp + 0x88]
mov ecx, 0xffff
add esi, eax
cmp dword [esi], 0
jne 0x100084c6
mov edi, dword [esp + 0x30]
mov dword [esi], 4
cmp dword [esi + 0x20], 0
jne 0x10008484
cmp dword [esi + 0x48], 0
jne 0x10008484
mov eax, dword [esi + 0x58]
cmp eax, dword [esi + 0x5c]
je 0x100084c2
mov eax, dword [esi + 0x58]
cmp eax, dword [esi + 0x5c]
jne 0x100084a3
mov ecx, dword [esp + 0x70]
lea edx, [esi - 8]
push 1
push dword [esp + 0x38]
call fcn.100a6f1c
mov ecx, 0xffff
mov eax, dword [esi + 0x58]
cmp eax, dword [esi + 0x5c]
je 0x100084bd
cmp word [edi + eax*4], cx
je 0x100084b9
mov dword [esi], 3
jmp 0x100084bd
inc eax
mov dword [esi + 0x58], eax
cmp dword [esi], 3
jne 0x10008470
mov edi, dword [esp + 0x48]
dec edi
sub esi, 0x70
mov dword [esp + 0x48], edi
test edi, edi
jne 0x10008461
mov ecx, 1
cmp ebx, ecx
jl 0x100084fc
lea eax, [esp + 0xf8]
cmp dword [eax - 8], 0
jne 0x100084f4
mov edx, dword [eax]
cmp edx, 4
je 0x100084f4
cmp edx, 1
jne 0x10008556
inc ecx
add eax, 0x70
cmp ecx, ebx
jle 0x100084e2
mov eax, dword [esp + 0x6c]
test eax, eax
je 0x1000852d
mov edx, dword [esp + 0x60]
mov ecx, dword [esp + 0x64]
mov dword [eax], ecx
test edx, edx
je 0x1000852d
mov eax, dword [esp + 0xd4]
sub eax, dword [esp + 0xd0]
sub eax, dword [esp + 0xa8]
sub eax, ecx
add eax, ebp
mov dword [edx], eax
mov ecx, dword [esp + 0x68]
call fcn.10005070
mov eax, 2
pop ebp
pop edi
mov ecx, dword [esp + 0xee8]
pop esi
pop ebx
xor ecx, esp
call fcn.10009fbe
add esp, 0xee4
ret 0x2c
mov ecx, dword [esp + 0x68]
call fcn.10005070
mov eax, 3
jmp 0x1000853b