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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x94
push ebx
mov ebx, ecx
push esi
push edi
mov edi, edx
mov dword [esp + 0x24], ebx
mov eax, dword [ebx]
mov dword [esp + 0x10], eax
call fcn.1005f210
mov esi, eax
mov dword [esp + 0x20], esi
test esi, esi
je 0x1005a936
or dword [esi + 0x58], 0x40
lea eax, [ebx + 0x48]
mov ecx, dword [ebp + 8]
mov edx, edi
mov dword [esp + 0x50], eax
mov dword [eax], 2
lea eax, [esp + 0x1c]
push eax
push ecx
mov ecx, ebx
call fcn.1003fbc0
mov ecx, eax
add esp, 8
mov dword [esp + 0x2c], ecx
test ecx, ecx
js 0x1005a936
mov edx, dword [esp + 0x10]
shl eax, 4
mov dword [esp + 0x34], eax
mov ebx, dword [edx + 0x10]
add ebx, eax
mov dword [esp + 0x30], ebx
cmp ecx, 1
jne 0x10054802
mov ecx, dword [esp + 0x24]
call fcn.10045430
test eax, eax
jne 0x1005a936
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x1005a936
mov edi, dword [eax + 4]
mov eax, dword [eax]
mov dword [esp + 0x1c], eax
test eax, eax
jne 0x10054821
mov dword [esp + 0x18], eax
jmp 0x10054854
xor eax, eax
mov ecx, edi
add ecx, 1
adc eax, eax
push eax
push ecx
mov ecx, edx
call fcn.100049f0
add esp, 8
mov dword [esp + 0x18], eax
test eax, eax
je 0x10054854
push edi
push dword [esp + 0x20]
push eax
call fcn.100a9420
mov eax, dword [esp + 0x24]
add esp, 0xc
mov byte [edi + eax], 0
mov ecx, eax
call fcn.10007360
cmp dword [esp + 0x18], 0
je 0x1005a936
cmp dword [ebp + 0x10], 0
je 0x10054889
push dword [ebp + 0xc]
mov edi, dword [esp + 0x14]
push 0x100d9184
push edi
call fcn.100065c0
mov ecx, eax
add esp, 0xc
mov dword [esp + 0x14], ecx
jmp 0x100548fa
mov eax, dword [ebp + 0xc]
test eax, eax
je 0x100548f0
mov edi, dword [eax + 4]
mov eax, dword [eax]
mov dword [esp + 0x1c], eax
test eax, eax
jne 0x100548ae
mov ecx, eax
mov dword [esp + 0x14], eax
call fcn.10007360
mov ecx, dword [esp + 0x14]
jmp 0x100548f6
xor eax, eax
mov ecx, edi
add ecx, 1
adc eax, eax
push eax
push ecx
mov ecx, dword [esp + 0x18]
call fcn.100049f0
add esp, 8
mov dword [esp + 0x14], eax
test eax, eax
je 0x100548e3
push edi
push dword [esp + 0x20]
push eax
call fcn.100a9420
mov eax, dword [esp + 0x20]
add esp, 0xc
mov byte [edi + eax], 0
mov ecx, eax
call fcn.10007360
mov ecx, dword [esp + 0x14]
jmp 0x100548f6
xor ecx, ecx
mov dword [esp + 0x14], ecx
mov edi, dword [esp + 0x10]
mov eax, dword [ebp + 8]
cmp dword [eax + 4], 0
jbe 0x10054907
mov ebx, dword [ebx]
jmp 0x10054909
xor ebx, ebx
push ebx
push ecx
push dword [esp + 0x20]
mov ecx, dword [esp + 0x30]
mov edx, 0x13
mov dword [esp + 0x4c], ebx
call fcn.1003e640
add esp, 0xc
test eax, eax
jne 0x10054a82
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x88], eax
lea eax, [esp + 0x80]
push eax
push 0xe
push ebx
mov dword [esp + 0x98], 0
push edi
mov dword [edi + 0x1c4], 0
call fcn.1007f120
mov edi, eax
add esp, 0x10
test edi, edi
jne 0x10054aa7
cmp dword [esp + 0x80], eax
je 0x10054a82
mov eax, dword [esp + 0x50]
inc dword [eax]
mov ebx, dword [eax]
mov eax, dword [esp + 0x80]
mov edi, dword [esi + 0x20]
mov ecx, edi
mov dword [esp + 0x1c], eax
mov eax, dword [esi + 0x18]
cmp dword [eax + 0x54], edi
jg 0x100549be
mov ecx, esi
call fcn.10021250
test eax, eax
je 0x100549bb
mov edi, 1
jmp 0x100549f1
mov ecx, dword [esi + 0x20]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x61
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], ebx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
push 0
push dword [esp + 0x20]
mov edx, edi
mov ecx, esi
call fcn.100219a0
add esp, 8
mov edx, 1
mov ecx, esi
call fcn.10022a10
mov eax, dword [esi]
cmp byte [eax + 0x40], 0
jne 0x10054a2d
mov ecx, dword [esi + 0x10]
mov edx, 0x100d9188
push 0
push 1
push 0xffffffffffffffff
call fcn.10020860
add esp, 0xc
mov eax, dword [esi + 0x18]
mov edi, dword [esi + 0x20]
cmp dword [eax + 0x54], edi
jg 0x10054a43
mov ecx, esi
call fcn.10021250
test eax, eax
jne 0x10054a73
inc dword [esi + 0x20]
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x23
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], ebx
mov dword [eax + ecx*4 + 8], 1
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
push dword [esp + 0x80]
call fcn.100046a0
add esp, 4
mov ecx, dword [esp + 0x10]
mov ebx, dword [esp + 0x18]
mov edi, dword [esp + 0x14]
cmp dword [ecx + 0x208], 0
je 0x1005a8aa
mov edx, ebx
call fcn.10004740
jmp 0x1005a8dd
cmp edi, 0xc
je 0x10054ae4
mov eax, dword [esp + 0x80]
test eax, eax
je 0x10054ad8
push eax
push 0x100d66d0
push dword [esp + 0x2c]
call fcn.10007210
add esp, 0xc
push dword [esp + 0x80]
call fcn.100046a0
add esp, 4
mov eax, dword [esp + 0x24]
inc dword [eax + 0x40]
mov dword [eax + 0xc], edi
jmp 0x10054a82
mov eax, dword [esp + 0x18]
mov edx, 0x37
xor esi, esi
mov dword [esp + 0x44], edx
mov bh, byte [eax]
lea eax, [edx + esi]
mov bl, bh
cdq
sub eax, edx
mov edi, eax
sar edi, 1
mov dword [esp + 0x1c], edi
lea ecx, [edi + edi*2]
mov edx, dword [ecx*4 + 0x100daa10]
test bh, bh
je 0x10054b45
mov edi, dword [esp + 0x18]
mov al, bh
sub edi, edx
nop dword [eax + eax]
movzx ecx, byte [edx]
mov bl, al
movzx eax, al
mov al, byte [eax + 0x100dc190]
cmp al, byte [ecx + 0x100dc190]
jne 0x10054b41
mov al, byte [edx + edi + 1]
inc edx
mov bl, al
test al, al
jne 0x10054b20
mov edi, dword [esp + 0x1c]
movzx eax, bl
movzx ecx, byte [eax + 0x100dc190]
movzx eax, byte [edx]
movzx eax, byte [eax + 0x100dc190]
sub ecx, eax
je 0x10054b77
test ecx, ecx
lea edx, [edi - 1]
lea eax, [edi + 1]
cmovns edx, dword [esp + 0x44]
cmovns esi, eax
mov dword [esp + 0x44], edx
cmp esi, edx
jle 0x10054af5
jmp 0x10054b7b
mov edx, dword [esp + 0x44]
cmp esi, edx
mov esi, dword [esp + 0x20]
jg 0x10054a82
mov ebx, dword [esp + 0x24]
lea edi, [edi + edi*2]
test byte [edi*4 + 0x100daa15], 1
je 0x10054bba
mov ecx, dword [ebx]
cmp byte [ecx + 0x91], 0
jne 0x10054bba
lea edx, [ebx + 4]
call fcn.1005b1a0
test eax, eax
je 0x10054bba
mov dword [ebx + 0xc], eax
inc dword [ebx + 0x40]
jmp 0x10054a82
movzx eax, byte [edi*4 + 0x100daa14]
cmp eax, 0x23
ja case.0x10054bcb.3
jmp dword [eax*4 + 0x1005a940]
mov eax, dword [esi + 0x60]
mov ecx, dword [esp + 0x2c]
bts eax, ecx
mov ebx, dword [esp + 0x34]
mov dword [esi + 0x60], eax
cmp ecx, 1
je 0x10054c00
mov eax, dword [esi]
mov eax, dword [eax + 0x10]
mov eax, dword [eax + ebx + 4]
cmp byte [eax + 9], 0
je 0x10054c00
mov eax, dword [esi + 0x64]
bts eax, ecx
mov dword [esi + 0x64], eax
mov eax, dword [esp + 0x14]
test eax, eax
jne 0x10054ca0
lea edx, [eax + 1]
mov ecx, esi
call fcn.10022a10
mov eax, dword [esi]
cmp byte [eax + 0x40], 0
jne 0x10054c34
mov ecx, dword [esi + 0x10]
mov edx, 0x100d8d44
push 0
push 1
push 0xffffffffffffffff
call fcn.10020860
add esp, 0xc
mov edx, dword [esp + 0x50]
push ecx
push 0x100daf7c
mov ecx, esi
add dword [edx], 2
mov edx, 9
call fcn.100216e0
mov ecx, dword [esi + 0x20]
mov edi, eax
mov ebx, dword [esp + 0x34]
add esp, 8
cmp ecx, edi
jbe 0x10054c6a
mov ecx, dword [esi + 4]
lea edx, [edi + edi*4]
mov dword [ecx + edx*4 + 4], ebx
mov ecx, dword [esi + 0x20]
lea eax, [edi + 1]
cmp ecx, eax
jbe 0x10054c7e
lea ecx, [eax + eax*4]
mov eax, dword [esi + 4]
mov dword [eax + ecx*4 + 4], ebx
mov ecx, dword [esi + 0x20]
mov ebx, dword [esp + 0x18]
add edi, 6
cmp ecx, edi
jbe 0x10054c97
mov eax, dword [esi + 4]
lea ecx, [edi + edi*4]
mov dword [eax + ecx*4 + 4], 0x7d0
mov ecx, dword [esp + 0x10]
jmp 0x10054a8a
lea edx, [esp + 0x28]
mov dword [esp + 0x28], 0
mov ecx, eax
call fcn.10007e10
mov edi, dword [esp + 0x28]
test edi, edi
jns 0x10054ccc
cmp edi, 0x80000000
jne 0x10054cca
mov edi, 0x7fffffff
jmp 0x10054ccc
neg edi
mov ecx, dword [esp + 0x24]
mov eax, dword [ecx + 0x198]
test eax, eax
cmovne ecx, eax
mov dword [esp + 0x24], ecx
mov eax, dword [ecx]
mov edx, dword [ecx + 0x14c]
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x1c], eax
mov eax, 1
shl eax, cl
test edx, eax
jne 0x10054d2b
mov eax, dword [esp + 0x1c]
bts edx, ecx
mov ecx, dword [esp + 0x24]
mov dword [ecx + 0x14c], edx
mov eax, dword [eax + 0x10]
mov eax, dword [eax + ebx + 0xc]
mov ebx, dword [esp + 0x2c]
mov eax, dword [eax]
mov dword [ecx + ebx*4 + 0x150], eax
cmp ebx, 1
jne 0x10054d33
call fcn.10045430
jmp 0x10054d2f
mov ebx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x24]
mov eax, dword [ecx + 0x148]
bts eax, ebx
mov dword [ecx + 0x148], eax
mov eax, dword [esi + 0x18]
mov ebx, dword [esi + 0x20]
mov ecx, ebx
cmp dword [eax + 0x54], ebx
jg 0x10054d5d
mov ecx, esi
call fcn.10021250
test eax, eax
jne 0x10054d90
mov ecx, dword [esi + 0x20]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [ebx + ebx*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x19
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], edi
mov dword [eax + ecx*4 + 8], 1
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esi + 0x18]
mov ebx, dword [esi + 0x20]
cmp dword [eax + 0x54], ebx
jg 0x10054da6
mov ecx, esi
call fcn.10021250
test eax, eax
jne 0x10054dda
inc dword [esi + 0x20]
lea ecx, [ebx + ebx*4]
mov eax, dword [esi + 4]
mov edx, dword [esp + 0x2c]
mov word [eax + ecx*4], 0x34
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 3
mov dword [eax + ecx*4 + 0xc], 1
mov dword [eax + ecx*4 + 0x10], 0
mov ebx, dword [esp + 0x30]
mov eax, dword [ebx + 0xc]
mov dword [eax + 0x50], edi
mov edx, dword [ebx + 0xc]
mov ecx, dword [ebx + 4]
mov edx, dword [edx + 0x50]
call fcn.10016ba0
jmp 0x10054a82
mov ebx, dword [esp + 0x30]
mov edi, dword [esp + 0x14]
mov esi, dword [ebx + 4]
test edi, edi
jne 0x10054e2c
test esi, esi
je 0x10054e1d
mov eax, dword [esi + 4]
mov eax, dword [eax + 0x20]
cdq
push edx
push eax
mov edx, 0x100d8f5c
jmp 0x100556a5
xor eax, eax
cdq
push edx
push eax
mov edx, 0x100d8f5c
jmp 0x100556a5
lea edx, [esp + 0x28]
mov dword [esp + 0x28], 0
mov ecx, edi
call fcn.10007e10
mov eax, dword [esp + 0x10]
mov ebx, dword [esp + 0x28]
mov dword [eax + 0x48], ebx
cmp byte [esi + 9], 0
mov edi, dword [esi + 4]
je 0x10054e63
inc dword [esi + 0xc]
cmp byte [esi + 0xa], 0
jne 0x10054e63
mov ecx, esi
call fcn.10014e80
test byte [edi + 0x16], 2
je 0x10054e89
cmp byte [esi + 9], 0
je 0x10054a82
add dword [esi + 0xc], 0xffffffff
jne 0x10054a82
mov ecx, esi
call fcn.10014e40
jmp 0x10054a82
mov eax, dword [edi + 0x20]
lea ecx, [edi + 0x20]
sub eax, dword [edi + 0x24]
mov dword [esp + 0x1c], eax
lea eax, [ebx - 0x200]
cmp eax, 0xfe00
ja 0x10054ec8
lea eax, [ebx - 1]
test ebx, eax
jne 0x10054ec8
mov dword [ecx], ebx
mov eax, dword [edi + 0x50]
test eax, eax
je 0x10054ec8
lea ecx, [eax - 4]
mov dword [edi + 0x50], ecx
call fcn.1000c660
mov dword [edi + 0x50], 0
lea ecx, [edi + 0x20]
mov ebx, dword [esp + 0x1c]
mov edx, ecx
mov ecx, dword [edi]
push ebx
call fcn.1000f7c0
mov edx, dword [edi + 0x20]
add esp, 4
movzx ecx, bx
sub edx, ecx
mov dword [esp + 0x1c], eax
mov dword [edi + 0x24], edx
cmp byte [esi + 9], 0
je 0x10054eff
add dword [esi + 0xc], 0xffffffff
jne 0x10054eff
mov ecx, esi
call fcn.10014e40
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x10]
mov edi, dword [esp + 0x14]
mov ebx, dword [esp + 0x18]
cmp eax, 7
jne 0x10054a8e
mov byte [ecx + 0x40], 1
jmp 0x10054a8e
mov ebx, dword [esp + 0x30]
or ecx, 0xffffffff
mov eax, dword [esp + 0x14]
mov dword [esp + 0x44], ecx
mov edi, dword [ebx + 4]
mov dword [esp + 0x1c], edi
test eax, eax
je 0x10054f51
lea edx, [ecx + 2]
mov ecx, eax
push 0
call fcn.10054510
xor ecx, ecx
add esp, 4
test al, al
setne cl
mov dword [esp + 0x44], ecx
mov eax, dword [ebp + 8]
mov ebx, 0xfffb
cmp dword [eax + 4], 0
jne 0x10054fee
test ecx, ecx
js 0x10054fee
mov eax, dword [esp + 0x10]
xor ebx, ebx
cmp dword [eax + 0x14], ebx
jle 0x10054fe9
mov edi, dword [esp + 0x44]
xor ecx, ecx
mov dword [esp + 0x20], ecx
mov eax, dword [eax + 0x10]
mov esi, dword [ecx + eax + 4]
test esi, esi
je 0x10054fd4
cmp byte [esi + 9], 0
je 0x10054fa5
inc dword [esi + 0xc]
cmp byte [esi + 0xa], 0
jne 0x10054fa5
mov ecx, esi
call fcn.10014e80
mov ecx, dword [esp + 0x20]
mov eax, dword [esi + 4]
mov edx, 0xfffb
and word [eax + 0x16], dx
test edi, edi
je 0x10054fbd
mov eax, dword [esi + 4]
or word [eax + 0x16], 4
cmp byte [esi + 9], 0
je 0x10054fd4
add dword [esi + 0xc], 0xffffffff
jne 0x10054fd4
mov ecx, esi
call fcn.10014e40
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x10]
inc ebx
add ecx, 0x10
mov dword [esp + 0x20], ecx
cmp ebx, dword [eax + 0x14]
jl 0x10054f80
mov edi, dword [esp + 0x1c]
mov ebx, 0xfffb
test edi, edi
jne 0x10054ff6
xor esi, esi
jmp 0x10055047
cmp byte [edi + 9], 0
je 0x1005500c
inc dword [edi + 0xc]
cmp byte [edi + 0xa], 0
jne 0x1005500c
mov ecx, edi
call fcn.10014e80
mov ecx, dword [esp + 0x44]
test ecx, ecx
js 0x10055027
mov eax, dword [edi + 4]
and word [eax + 0x16], bx
test ecx, ecx
je 0x10055027
mov eax, dword [edi + 4]
or word [eax + 0x16], 4
mov eax, dword [edi + 4]
movzx esi, word [eax + 0x16]
shr esi, 2
and esi, 1
cmp byte [edi + 9], 0
je 0x10055047
add dword [edi + 0xc], 0xffffffff
jne 0x10055047
mov ecx, edi
call fcn.10014e40
mov ecx, dword [esp + 0x24]
mov edx, 0x100d8fd4
push 0
push esi
call fcn.10054600
add esp, 8
jmp 0x10054a82
mov eax, dword [ebx + 0x198]
test eax, eax
mov ecx, dword [esp + 0x2c]
cmovne ebx, eax
mov eax, 1
shl eax, cl
mov dword [esp + 0x24], ebx
mov edx, dword [ebx + 0x14c]
mov edi, dword [ebx]
test edx, eax
jne 0x100550b5
bts edx, ecx
mov ecx, dword [esp + 0x24]
mov dword [ebx + 0x14c], edx
mov eax, dword [edi + 0x10]
mov ebx, dword [esp + 0x34]
mov edx, dword [esp + 0x2c]
mov eax, dword [eax + ebx + 0xc]
mov eax, dword [eax]
mov dword [ecx + edx*4 + 0x150], eax
cmp edx, 1
jne 0x100550b5
call fcn.10045430
mov eax, dword [esp + 0x50]
inc dword [eax]
mov ebx, dword [eax]
mov eax, dword [esp + 0x18]
mov dword [esp + 0x5c], ebx
movzx eax, byte [eax]
cmp byte [eax + 0x100dc190], 0x70
jne 0x10055128
mov eax, dword [esi + 0x18]
mov edi, dword [esi + 0x20]
mov ecx, edi
cmp dword [eax + 0x54], edi
jg 0x100550f0
mov ecx, esi
call fcn.10021250
test eax, eax
jne 0x100551ae
mov ecx, dword [esi + 0x20]
mov edx, dword [esp + 0x2c]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x97
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], ebx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x100551ae
mov eax, dword [esp + 0x14]
xor edi, edi
mov dword [esp + 0x28], edi
test eax, eax
je 0x1005515a
lea edx, [esp + 0x28]
mov ecx, eax
call fcn.10007e10
mov edi, dword [esp + 0x28]
test edi, edi
jns 0x1005515a
cmp edi, 0x80000000
jne 0x10055158
mov edi, 0x7fffffff
jmp 0x1005515a
neg edi
mov eax, dword [esi + 0x18]
mov ebx, dword [esi + 0x20]
mov ecx, ebx
cmp dword [eax + 0x54], ebx
jg 0x10055175
mov ecx, esi
call fcn.10021250
test eax, eax
jne 0x100551aa
mov ecx, dword [esi + 0x20]
mov edx, dword [esp + 0x2c]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [ebx + ebx*4]
mov eax, dword [esi + 4]
mov ebx, dword [esp + 0x5c]
mov word [eax + ecx*4], 0x98
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], ebx
mov dword [eax + ecx*4 + 0xc], edi
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x100551ae
mov ebx, dword [esp + 0x5c]
mov eax, dword [esi + 0x18]
mov edi, dword [esi + 0x20]
cmp dword [eax + 0x54], edi
jg 0x100551c4
mov ecx, esi
call fcn.10021250
test eax, eax
jne 0x100551f4
inc dword [esi + 0x20]
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x23
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], ebx
mov dword [eax + ecx*4 + 8], 1
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov edx, 1
mov ecx, esi
call fcn.10022a10
mov eax, dword [esi]
mov ebx, dword [esp + 0x18]
cmp byte [eax + 0x40], 0
jne 0x10054c97
mov ecx, dword [esi + 0x10]
mov edx, ebx
push 0xffffffffffffffff
push 1
push 0xffffffffffffffff
call fcn.10020860
mov ecx, dword [esp + 0x1c]
add esp, 0xc
jmp 0x10054a8a
mov edi, dword [esp + 0x14]
test edi, edi
je 0x100552da
mov bl, byte [edi]
mov edx, 0x100d90a8
mov bh, bl
test bl, bl
je 0x10055275
mov al, bl
sub edi, edx
nop dword [eax]
movzx ecx, byte [edx]
mov bh, al
movzx eax, al
mov al, byte [eax + 0x100dc190]
cmp al, byte [ecx + 0x100dc190]
jne 0x10055271
mov al, byte [edi + edx + 1]
inc edx
mov bh, al
test al, al
jne 0x10055250
mov edi, dword [esp + 0x14]
movzx eax, bh
movzx ecx, byte [eax + 0x100dc190]
movzx eax, byte [edx]
movzx eax, byte [eax + 0x100dc190]
sub ecx, eax
jne 0x10055294
mov ecx, 1
jmp 0x100552dd
mov edx, 0x100d90b4
test bl, bl
je 0x100552c2
mov al, bl
sub edi, edx
movzx ecx, byte [edx]
mov bl, al
movzx eax, al
mov al, byte [eax + 0x100dc190]
cmp al, byte [ecx + 0x100dc190]
jne 0x100552c2
mov al, byte [edi + edx + 1]
inc edx
mov bl, al
test al, al
jne 0x100552a1
movzx eax, bl
movzx ecx, byte [eax + 0x100dc190]
movzx eax, byte [edx]
movzx eax, byte [eax + 0x100dc190]
sub ecx, eax
je 0x100552dd
or ecx, 0xffffffff
mov eax, dword [ebp + 8]
cmp dword [eax + 4], 0
jne 0x1005533e
cmp ecx, 0xffffffff
jne 0x100552f4
mov eax, dword [esp + 0x10]
mov al, byte [eax + 0x41]
jmp 0x1005536c
mov ebx, dword [esp + 0x10]
mov edx, 2
cmp dword [ebx + 0x14], edx
jle 0x1005533b
lea edi, [edx + 0x1e]
test ecx, ecx
js 0x10055332
mov eax, dword [ebx + 0x10]
mov eax, dword [edi + eax + 4]
mov eax, dword [eax + 4]
mov eax, dword [eax]
cmp byte [eax + 0xc], 0
jne 0x10055332
mov ebx, dword [eax + 0xd0]
test ebx, ebx
je 0x1005532b
cmp byte [ebx + 0x2b], 2
je 0x1005532e
mov byte [eax + 4], cl
mov ebx, dword [esp + 0x10]
inc edx
add edi, 0x10
cmp edx, dword [ebx + 0x14]
jl 0x10055305
mov byte [ebx + 0x41], cl
mov ebx, dword [esp + 0x30]
mov dl, cl
mov eax, dword [ebx + 4]
mov eax, dword [eax + 4]
mov eax, dword [eax]
test ecx, ecx
js 0x10055369
cmp byte [eax + 0xc], 0
jne 0x10055369
mov ecx, dword [eax + 0xd0]
test ecx, ecx
je 0x10055366
cmp byte [ecx + 0x2b], 2
je 0x10055369
mov byte [eax + 4], dl
mov al, byte [eax + 4]
cmp al, 1
mov ecx, 0x100d90a8
mov ebx, 0x100d90b4
mov edx, 1
cmove ebx, ecx
mov ecx, esi
call fcn.10022a10
mov eax, dword [esi]
cmp byte [eax + 0x40], 0
jne 0x100553a5
mov ecx, dword [esi + 0x10]
mov edx, 0x100d8f24
push 0
push 1
push 0xffffffffffffffff
call fcn.10020860
add esp, 0xc
mov eax, dword [esi + 0x18]
mov edi, dword [esi + 0x20]
mov ecx, edi
cmp dword [eax + 0x54], edi
jg 0x100553c7
mov ecx, esi
call fcn.10021250
test eax, eax
je 0x100553c4
mov edi, 1
jmp 0x100553fe
mov ecx, dword [esi + 0x20]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x61
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], 1
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
push 0
push ebx
mov edx, edi
mov ecx, esi
call fcn.100219a0
add esp, 8
mov eax, dword [esi + 0x18]
mov edi, dword [esi + 0x20]
cmp dword [eax + 0x54], edi
jg 0x10055427
mov ecx, esi
call fcn.10021250
test eax, eax
jne 0x10054a82
inc dword [esi + 0x20]
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x23
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 1
mov dword [eax + ecx*4 + 8], 1
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x10054a82
mov edx, 1
mov ecx, esi
call fcn.10022a10
mov eax, dword [esi]
cmp byte [eax + 0x40], 0
jne 0x1005548a
mov ecx, dword [esi + 0x10]
mov edx, 0x100d8eec
push 0
push 1
push 0xffffffffffffffff
call fcn.10020860
add esp, 0xc
mov ebx, dword [esp + 0x14]
test ebx, ebx
je 0x100555bb
cmp byte [ebx], 0
mov eax, ebx
je 0x100554a6
nop dword [eax]
inc eax
cmp byte [eax], 0
jne 0x100554a0
sub eax, ebx
and eax, 0x3fffffff
xor ecx, ecx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], ecx
cmp ecx, 6
je 0x100555bb
mov edi, dword [ecx*4 + 0x100db888]
test edi, edi
je 0x100555bb
mov edx, eax
test eax, eax
je 0x100554f6
mov al, byte [ebx]
dec edx
test al, al
je 0x100554f7
movzx ecx, byte [edi]
movzx eax, al
mov al, byte [eax + 0x100dc190]
cmp al, byte [ecx + 0x100dc190]
jne 0x100554f7
inc ebx
inc edi
test edx, edx
jg 0x100554d5
dec edx
test edx, edx
js 0x10055522
movzx eax, byte [edi]
movzx ecx, byte [eax + 0x100dc190]
movzx eax, byte [ebx]
movzx eax, byte [eax + 0x100dc190]
sub eax, ecx
je 0x10055522
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x1c]
inc ecx
mov ebx, dword [esp + 0x14]
jmp 0x100554b3
mov ebx, dword [esp + 0x20]
cmp ebx, 0xffffffff
je 0x100555be
mov ecx, dword [ebp + 8]
mov eax, dword [esp + 0x10]
mov edi, dword [eax + 0x14]
sub edi, 1
js 0x1005540d
mov edx, edi
shl edx, 4
mov dword [esp + 0x20], edx
nop dword [eax + eax]
mov eax, dword [eax + 0x10]
cmp dword [edx + eax + 4], 0
je 0x1005560e
cmp edi, dword [esp + 0x2c]
je 0x1005556e
cmp dword [ecx + 4], 0
jne 0x1005560e
mov eax, dword [esi + 0x60]
bts eax, edi
mov dword [esi + 0x60], eax
cmp edi, 1
je 0x10055594
mov eax, dword [esi]
mov eax, dword [eax + 0x10]
mov eax, dword [eax + edx + 4]
cmp byte [eax + 9], 0
je 0x10055594
mov eax, dword [esi + 0x64]
bts eax, edi
mov dword [esi + 0x64], eax
mov eax, dword [esi + 0x18]
mov ecx, dword [esi + 0x20]
mov dword [esp + 0x1c], ecx
cmp dword [eax + 0x54], ecx
jg 0x100555df
mov ecx, esi
call fcn.10021250
mov edx, dword [esp + 0x20]
test eax, eax
jne 0x1005560e
mov eax, dword [esi + 0x20]
mov ecx, dword [esp + 0x1c]
jmp 0x100555e1
or ebx, 0xffffffff
mov ecx, dword [ebp + 8]
cmp dword [ecx + 4], 0
jne 0x10055532
mov dword [esp + 0x2c], 0
mov dword [ecx + 4], 1
jmp 0x10055532
mov eax, ecx
inc eax
lea ecx, [ecx + ecx*4]
mov dword [esi + 0x20], eax
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0xc
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], edi
mov dword [eax + ecx*4 + 8], 1
mov dword [eax + ecx*4 + 0xc], ebx
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [ebp + 8]
sub edx, 0x10
sub edi, 1
mov eax, dword [esp + 0x10]
mov dword [esp + 0x20], edx
jns 0x10055550
jmp 0x1005540d
mov ebx, dword [esp + 0x30]
mov edi, dword [esp + 0x14]
mov dword [esp + 0x60], 0xfffffffe
mov dword [esp + 0x64], 0xffffffff
mov eax, dword [ebx + 4]
mov eax, dword [eax + 4]
mov esi, dword [eax]
test edi, edi
je 0x10055694
lea edx, [esp + 0x60]
mov ecx, edi
call fcn.10007cf0
mov ecx, dword [esp + 0x64]
cmp ecx, 0xffffffff
jg 0x10055674
jl 0x1005566d
mov eax, dword [esp + 0x60]
cmp eax, 0xffffffff
jae 0x10055678
or eax, 0xffffffff
or ecx, eax
jmp 0x10055678
mov eax, dword [esp + 0x60]
mov dword [esi + 0xa0], eax
mov dword [esi + 0xa4], ecx
mov edx, dword [esi + 0xd0]
test edx, edx
je 0x10055694
mov dword [edx + 0x10], eax
mov dword [edx + 0x14], ecx
push dword [esi + 0xa4]
mov edx, 0x100d8efc
push dword [esi + 0xa0]
mov ecx, dword [esp + 0x2c]
call fcn.10054600
mov ecx, dword [esp + 0x18]
add esp, 8
mov ebx, dword [esp + 0x18]
jmp 0x10054a8e
mov ebx, dword [esp + 0x30]
mov ecx, dword [esp + 0x14]
mov edi, dword [ebx + 4]
test ecx, ecx
jne 0x10055721
mov al, byte [edi + 9]
test al, al
je 0x100556e6
inc dword [edi + 0xc]
cmp byte [edi + 0xa], cl
jne 0x100556e6
mov ecx, edi
call fcn.10014e80
mov al, byte [edi + 9]
mov ecx, dword [edi + 4]
xor ebx, ebx
cmp byte [ecx + 0x11], bl
je 0x100556f7
cmp byte [ecx + 0x12], bl
setne bl
inc ebx
test al, al
je 0x10055708
add dword [edi + 0xc], 0xffffffff
jne 0x10055708
mov ecx, edi
call fcn.10014e40
mov ecx, dword [esp + 0x24]
mov edx, 0x100d8d18
push 0
push ebx
call fcn.10054600
add esp, 8
jmp 0x10054a82
mov bl, byte [ecx]
mov edx, 0x100d90bc
mov bh, bl
test bl, bl
je 0x1005575d
sub ecx, edx
mov al, bl
mov dword [esp + 0x1c], ecx
mov esi, ecx
movzx ecx, byte [edx]
mov bh, al
movzx eax, al
mov al, byte [eax + 0x100dc190]
cmp al, byte [ecx + 0x100dc190]
jne 0x10055759
mov al, byte [esi + edx + 1]
inc edx
mov bh, al
test al, al
jne 0x10055738
mov esi, dword [esp + 0x20]
movzx eax, bh
movzx ecx, byte [eax + 0x100dc190]
movzx eax, byte [edx]
movzx eax, byte [eax + 0x100dc190]
sub ecx, eax
jne 0x1005577c
xor ebx, ebx
jmp 0x10055857
mov edx, 0x100d90c4
mov bh, bl
test bl, bl
je 0x100557ba
mov ecx, dword [esp + 0x14]
mov al, bl
sub ecx, edx
mov dword [esp + 0x1c], ecx
mov esi, ecx
movzx ecx, byte [edx]
mov bh, al
movzx eax, al
mov al, byte [eax + 0x100dc190]
cmp al, byte [ecx + 0x100dc190]
jne 0x100557b6
mov al, byte [esi + edx + 1]
inc edx
mov bh, al
test al, al
jne 0x10055795
mov esi, dword [esp + 0x20]
movzx eax, byte [edx]
movzx ecx, byte [eax + 0x100dc190]
movzx eax, bh
movzx eax, byte [eax + 0x100dc190]
sub eax, ecx
jne 0x100557da
lea ebx, [eax + 1]
jmp 0x10055857
mov edx, 0x100d90cc
test bl, bl
je 0x10055816
mov ecx, dword [esp + 0x14]
mov al, bl
sub ecx, edx
mov dword [esp + 0x1c], ecx
mov esi, ecx
movzx ecx, byte [edx]
mov bl, al
movzx eax, al
mov al, byte [eax + 0x100dc190]
cmp al, byte [ecx + 0x100dc190]
jne 0x10055812
mov al, byte [esi + edx + 1]
inc edx
mov bl, al
test al, al
jne 0x100557f1
mov esi, dword [esp + 0x20]
movzx eax, bl
movzx ecx, byte [eax + 0x100dc190]
movzx eax, byte [edx]
movzx eax, byte [eax + 0x100dc190]
sub ecx, eax
jne 0x10055833
lea ebx, [ecx + 2]
jmp 0x10055857
mov ecx, dword [esp + 0x14]
lea edx, [esp + 0x28]
mov dword [esp + 0x28], 0
call fcn.10007e10
xor ecx, ecx
cmp dword [esp + 0x28], 2
cmovbe ecx, dword [esp + 0x28]
movzx ebx, cl
mov eax, dword [esp + 0x10]
mov edx, ebx
mov ecx, edi
mov byte [eax + 0x42], bl
call fcn.10016e00
test eax, eax
jne 0x10054a82
cmp ebx, 1
je 0x1005587d
cmp ebx, 2
jne 0x10054a82
push ecx
push 0x100dd644
mov edx, 6
mov ecx, esi
call fcn.100216e0
mov ecx, dword [esi + 0x20]
mov edi, eax
add esp, 8
cmp ecx, edi
jbe 0x100558ac
mov ecx, dword [esi + 4]
lea edx, [edi + edi*4]
mov eax, dword [esp + 0x2c]
mov dword [ecx + edx*4 + 4], eax
mov ecx, dword [esi + 0x20]
lea eax, [edi + 1]
cmp ecx, eax
jbe 0x100558c4
mov edx, dword [esp + 0x2c]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 4]
mov dword [eax + ecx*4 + 4], edx
mov ecx, dword [esi + 0x20]
lea eax, [edi + 2]
cmp ecx, eax
jbe 0x100558db
lea ecx, [eax + eax*4]
mov eax, dword [esi + 4]
lea edx, [edi + 4]
mov dword [eax + ecx*4 + 8], edx
mov ecx, dword [esi + 0x20]
lea eax, [edi + 4]
cmp ecx, eax
jbe 0x100558f2
lea ecx, [eax + eax*4]
mov eax, dword [esi + 4]
lea edx, [ebx - 1]
mov dword [eax + ecx*4 + 4], edx
mov ecx, dword [esi + 0x20]
add edi, 5
cmp ecx, edi
jbe 0x10055907
mov eax, dword [esi + 4]
lea ecx, [edi + edi*4]
mov edx, dword [esp + 0x2c]
mov dword [eax + ecx*4 + 4], edx
mov eax, dword [esi + 0x60]
mov ecx, dword [esp + 0x2c]
bts eax, ecx
mov dword [esi + 0x60], eax
cmp ecx, 1
je 0x10054a82
mov eax, dword [esi]
mov ebx, dword [esp + 0x34]
mov edi, dword [esp + 0x14]
mov eax, dword [eax + 0x10]
mov eax, dword [eax + ebx + 4]
mov ebx, dword [esp + 0x18]
cmp byte [eax + 9], 0
je 0x10055941
mov eax, dword [esi + 0x64]
bts eax, ecx
mov dword [esi + 0x64], eax
mov ecx, dword [esp + 0x10]
jmp 0x10054a8e
mov eax, dword [esp + 0x14]
test eax, eax
je 0x1005596d
lea edx, [esp + 0x1c]
mov ecx, eax
call fcn.10007e10
test eax, eax
je 0x1005596d
mov ebx, dword [esp + 0x1c]
mov dword [esp + 0x28], ebx
test ebx, ebx
jg 0x10055975
mov dword [esp + 0x28], 0x7fffffff
mov ebx, dword [esp + 0x24]
mov ecx, dword [esp + 0x2c]
mov eax, dword [ebx + 0x198]
test eax, eax
cmovne ebx, eax
mov eax, 1
shl eax, cl
mov dword [esp + 0x24], ebx
mov edx, dword [ebx + 0x14c]
mov edi, dword [ebx]
test edx, eax
jne 0x100559d0
bts edx, ecx
mov dword [ebx + 0x14c], edx
mov eax, dword [edi + 0x10]
mov ebx, dword [esp + 0x34]
mov eax, dword [eax + ebx + 0xc]
mov ebx, dword [esp + 0x24]
mov eax, dword [eax]
mov dword [ebx + ecx*4 + 0x150], eax
cmp ecx, 1
jne 0x100559d0
mov ecx, ebx
call fcn.10045430
mov ecx, dword [esp + 0x2c]
mov eax, dword [ebx + 0x148]
bts eax, ecx
mov dword [ebx + 0x148], eax
mov eax, dword [esi + 0x18]
mov edi, dword [esi + 0x20]
mov ecx, edi
cmp dword [eax + 0x54], edi
jg 0x100559fa
mov ecx, esi
call fcn.10021250
test eax, eax
jne 0x10055a31
mov ecx, dword [esi + 0x20]
mov edx, dword [esp + 0x28]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x19
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 1
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esi + 0x18]
mov edi, dword [esi + 0x20]
mov ecx, edi
cmp dword [eax + 0x54], edi
jg 0x10055a53
mov ecx, esi
call fcn.10021250
test eax, eax
je 0x10055a50
mov edi, 1
jmp 0x10055a8a
mov ecx, dword [esi + 0x20]
mov edx, dword [esp + 0x2c]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x8d
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esi + 0x18]
mov ebx, dword [esi + 0x20]
mov ecx, ebx
cmp dword [eax + 0x54], ebx
jg 0x10055aa5
mov ecx, esi
call fcn.10021250
test eax, eax
jne 0x10055adc
mov ecx, dword [esi + 0x20]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [ebx + ebx*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x23
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 1
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esi + 0x18]
mov ebx, dword [esi + 0x20]
mov ecx, ebx
cmp dword [eax + 0x54], ebx
jg 0x10055af7
mov ecx, esi
call fcn.10021250
test eax, eax
jne 0x10055b2e
mov ecx, dword [esi + 0x20]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [ebx + ebx*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x25
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 1
mov dword [eax + ecx*4 + 8], 0xffffffff
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esi + 0x18]
mov ebx, dword [esi + 0x20]
mov ecx, ebx
cmp dword [eax + 0x54], ebx
jg 0x10055b49
mov ecx, esi
call fcn.10021250
test eax, eax
jne 0x10055b7c
mov ecx, dword [esi + 0x20]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [ebx + ebx*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x89
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 1
mov dword [eax + ecx*4 + 8], edi
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov edx, dword [esi + 0x20]
cmp edx, edi
jbe 0x10055b90
mov eax, dword [esi + 4]
lea ecx, [edi + edi*4]
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [esi + 0x20]
mov eax, dword [esi + 0x18]
lea ecx, [edx - 1]
mov dword [eax + 0x58], ecx
jmp 0x10054a82
mov edi, dword [esp + 0x14]
test edi, edi
jne 0x10055bbd
mov ebx, dword [esp + 0x30]
mov eax, dword [ebx + 0xc]
mov eax, dword [eax + 0x50]
cdq
push edx
push eax
mov edx, 0x100d8d44
jmp 0x100556a5
lea edx, [esp + 0x28]
mov dword [esp + 0x28], 0
mov ecx, edi
call fcn.10007e10
mov ebx, dword [esp + 0x30]
mov eax, dword [esp + 0x28]
mov ecx, dword [ebx + 0xc]
mov dword [ecx + 0x50], eax
mov edx, dword [ebx + 0xc]
mov ecx, dword [ebx + 4]
mov edx, dword [edx + 0x50]
call fcn.10016ba0
mov ecx, dword [esp + 0x10]
mov ebx, dword [esp + 0x18]
jmp 0x10054a8e
mov edi, dword [esp + 0x14]
test edi, edi
je 0x10055d3b
lea edx, [esp + 0x78]
mov ecx, edi
call fcn.10007cf0
cmp dword [esp + 0x7c], 0
jg 0x10055c32
jl 0x10055c20
cmp dword [esp + 0x78], 0
jae 0x10055c32
mov eax, dword [0x100e3b90]
mov dword [esp + 0x78], eax
mov eax, dword [0x100e3b94]
mov dword [esp + 0x7c], eax
mov ecx, dword [ebp + 8]
mov edx, dword [esp + 0x10]
cmp dword [ecx + 4], 0
jne 0x10055c4d
mov eax, dword [esp + 0x78]
mov dword [edx + 0x28], eax
mov eax, dword [esp + 0x7c]
mov dword [edx + 0x2c], eax
mov edi, dword [edx + 0x14]
sub edi, 1
js 0x10055d37
mov ebx, edi
shl ebx, 4
nop
mov eax, dword [edx + 0x10]
mov esi, dword [ebx + eax + 4]
test esi, esi
je 0x10055d2b
cmp edi, dword [esp + 0x2c]
je 0x10055c7f
cmp dword [ecx + 4], 0
jne 0x10055d2b
cmp byte [esi + 9], 0
mov edx, dword [esp + 0x78]
mov eax, dword [esp + 0x7c]
mov ecx, dword [esi + 4]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x28], eax
mov dword [esp + 0x3c], ecx
je 0x10055cb8
inc dword [esi + 0xc]
cmp byte [esi + 0xa], 0
jne 0x10055cb8
mov ecx, esi
call fcn.10014e80
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx]
mov dword [ecx + 0x80], edx
mov dword [ecx + 0x84], eax
mov eax, dword [ecx + 0x3c]
mov eax, dword [eax]
test eax, eax
je 0x10055d11
cmp dword [eax], 3
jl 0x10055d11
mov eax, dword [esp + 0x28]
mov dword [esp + 0x98], edx
mov dword [esp + 0x9c], eax
test eax, eax
jl 0x10055cf4
jg 0x10055cf0
test edx, edx
je 0x10055cf4
mov al, 1
jmp 0x10055cf6
xor al, al
mov byte [ecx + 0x74], al
lea edx, [esp + 0x98]
mov eax, dword [ecx + 0x3c]
push edx
push 0x12
push eax
mov ecx, dword [eax]
mov eax, dword [ecx + 0x28]
call eax
add esp, 0xc
cmp byte [esi + 9], 0
je 0x10055d24
add dword [esi + 0xc], 0xffffffff
jne 0x10055d24
mov ecx, esi
call fcn.10014e40
mov ecx, dword [ebp + 8]
mov edx, dword [esp + 0x10]
sub ebx, 0x10
sub edi, 1
jns 0x10055c60
mov edi, dword [esp + 0x14]
lea eax, [esp + 0x78]
mov dword [esp + 0x78], 0xffffffff
push eax
push 0x12
push dword [esp + 0x48]
mov dword [esp + 0x88], 0xffffffff
push dword [esp + 0x1c]
call fcn.1007f120
add esp, 0x10
test eax, eax
jne 0x10055d7b
push dword [esp + 0x7c]
mov edx, 0x100d8f44
push dword [esp + 0x7c]
jmp 0x100556a5
mov ebx, dword [esp + 0x18]
cmp eax, 0xc
je 0x10055941
mov ecx, dword [esp + 0x24]
inc dword [ecx + 0x40]
mov dword [ecx + 0xc], eax
mov ecx, dword [esp + 0x10]
jmp 0x10054a8e
mov edi, dword [esp + 0x14]
test edi, edi
jne 0x10055dca
mov eax, dword [esp + 0x10]
mov ecx, ebx
movzx eax, byte [eax + 0x3f]
cdq
push edx
push eax
mov edx, 0x100d9038
call fcn.10054600
mov ecx, dword [esp + 0x18]
add esp, 8
mov ebx, dword [esp + 0x18]
jmp 0x10054a8e
mov bl, byte [edi]
mov al, bl
sub al, 0x30
cmp al, 2
ja 0x10055ddf
movsx ebx, bl
sub ebx, 0x30
jmp 0x10055e81
mov edx, 0x100d90d8
mov bh, bl
test bl, bl
je 0x10055e11
mov esi, edi
mov al, bl
sub esi, edx
movzx ecx, byte [edx]
mov bh, al
movzx eax, al
mov al, byte [eax + 0x100dc190]
cmp al, byte [ecx + 0x100dc190]
jne 0x10055e11
mov al, byte [esi + edx + 1]
inc edx
mov bh, al
test al, al
jne 0x10055df0
movzx eax, bh
movzx ecx, byte [eax + 0x100dc190]
movzx eax, byte [edx]
movzx eax, byte [eax + 0x100dc190]
sub ecx, eax
jne 0x10055e2e
lea ebx, [ecx + 1]
jmp 0x10055e81
mov edx, 0x100d90e0
test bl, bl
je 0x10055e61
mov esi, edi
mov al, bl
sub esi, edx
nop dword [eax]
movzx ecx, byte [edx]
mov bl, al
movzx eax, al
mov al, byte [eax + 0x100dc190]
cmp al, byte [ecx + 0x100dc190]
jne 0x10055e61
mov al, byte [esi + edx + 1]
inc edx
mov bl, al
test al, al
jne 0x10055e40
movzx eax, bl
movzx ebx, byte [eax + 0x100dc190]
movzx eax, byte [edx]
movzx eax, byte [eax + 0x100dc190]
sub ebx, eax
neg ebx
sbb ebx, ebx
and ebx, 0xfffffffe
add ebx, 2
mov edx, dword [esp + 0x24]
mov esi, dword [edx]
movzx eax, byte [esi + 0x3f]
cmp eax, ebx
je 0x10056072
mov eax, dword [esi + 0x10]
mov ecx, dword [eax + 0x14]
test ecx, ecx
je 0x10055ebf
cmp byte [esi + 0x3e], 0
je 0x10055ecf
cmp byte [ecx + 8], 0
jne 0x10055ecf
call fcn.10016a20
mov eax, dword [esi + 0x10]
mov ecx, esi
mov dword [eax + 0x14], 0
call fcn.1003f420
mov ecx, dword [esp + 0x10]
mov byte [esi + 0x3f], bl
mov ebx, dword [esp + 0x18]
jmp 0x10054a8e
push 0x100d90e8
push edx
call fcn.10007210
mov ecx, dword [esp + 0x18]
add esp, 8
mov ebx, dword [esp + 0x18]
jmp 0x10054a8e
mov edi, dword [esp + 0x14]
test edi, edi
jne 0x10055f30
cmp dword [0x100e64ec], edi
je 0x10056072
lea edx, [edi + 1]
mov ecx, esi
call fcn.10022a10
mov eax, dword [esi]
cmp byte [eax + 0x40], 0
jne 0x10055f25
mov ecx, dword [esi + 0x10]
mov edx, 0x100d9044
push edi
push 1
push 0xffffffffffffffff
call fcn.10020860
add esp, 0xc
mov ebx, dword [0x100e64ec]
jmp 0x100553a5
cmp byte [edi], 0
je 0x10055f64
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x90]
push ecx
push 1
push edi
mov eax, dword [eax]
push eax
mov eax, dword [eax + 0x20]
call eax
add esp, 0x10
test eax, eax
jne 0x10056064
cmp dword [esp + 0x90], eax
je 0x10056064
mov eax, dword [esp + 0x10]
cmp byte [eax + 0x3f], 1
ja 0x10055fac
mov esi, dword [ebx]
mov eax, dword [esi + 0x10]
mov ecx, dword [eax + 0x14]
test ecx, ecx
je 0x10055fac
cmp byte [esi + 0x3e], 0
je 0x10055f9e
cmp byte [ecx + 8], 0
jne 0x10055f9e
call fcn.10016a20
mov eax, dword [esi + 0x10]
mov ecx, esi
mov dword [eax + 0x14], 0
call fcn.1003f420
jmp 0x10055fac
push 0x100d90e8
push ebx
call fcn.10007210
add esp, 8
push dword [0x100e64ec]
call fcn.100046a0
add esp, 4
cmp byte [edi], 0
je 0x10055fdf
push edi
push 0x100d66d0
call fcn.10006770
mov ecx, dword [esp + 0x18]
add esp, 8
mov ebx, dword [esp + 0x18]
mov dword [0x100e64ec], eax
jmp 0x10054a8e
mov ecx, dword [esp + 0x10]
mov ebx, dword [esp + 0x18]
mov dword [0x100e64ec], 0
jmp 0x10054a8e
mov edi, dword [esp + 0x14]
test edi, edi
jne 0x10056038
cmp dword [0x100e64e8], edi
je 0x10056072
lea edx, [edi + 1]
mov ecx, esi
call fcn.10022a10
mov eax, dword [esi]
cmp byte [eax + 0x40], 0
jne 0x1005602d
mov ecx, dword [esi + 0x10]
mov edx, 0x100d8db8
push edi
push 1
push 0xffffffffffffffff
call fcn.10020860
add esp, 0xc
mov ebx, dword [0x100e64e8]
jmp 0x100553a5
cmp byte [edi], 0
je 0x1005607f
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x94]
push ecx
push 1
push edi
mov eax, dword [eax]
push eax
mov eax, dword [eax + 0x20]
call eax
add esp, 0x10
test eax, eax
jne 0x10056064
cmp dword [esp + 0x94], eax
jne 0x1005607f
push 0x100d9190
push ebx
call fcn.10007210
add esp, 8
mov ecx, dword [esp + 0x10]
mov ebx, dword [esp + 0x18]
jmp 0x10054a8e
push dword [0x100e64e8]
call fcn.100046a0
add esp, 4
cmp byte [edi], 0
je 0x100560b2
push edi
push 0x100d66d0
call fcn.10006770
mov ecx, dword [esp + 0x18]
add esp, 8
mov ebx, dword [esp + 0x18]
mov dword [0x100e64e8], eax
jmp 0x10054a8e
mov ecx, dword [esp + 0x10]
mov ebx, dword [esp + 0x18]
mov dword [0x100e64e8], 0
jmp 0x10054a8e
mov edi, dword [esp + 0x14]
test edi, edi
jne 0x100560eb
mov ebx, dword [esp + 0x30]
movzx eax, byte [ebx + 8]
cdq
sub eax, 1
sbb edx, edi
push edx
push eax
mov edx, 0x100d9020
jmp 0x100556a5
mov eax, dword [esp + 0x10]
cmp byte [eax + 0x3e], 0
jne 0x10056110
push 0x100d91ac
push ebx
call fcn.10007210
mov ecx, dword [esp + 0x18]
add esp, 8
mov ebx, dword [esp + 0x18]
jmp 0x10054a8e
push 1
xor edx, edx
mov ecx, edi
call fcn.10054510
mov ebx, dword [esp + 0x34]
add esp, 4
mov ecx, dword [esp + 0x10]
inc al
mov byte [ebx + 8], al
call fcn.10054720
mov ecx, dword [esp + 0x10]
mov ebx, dword [esp + 0x18]
jmp 0x10054a8e
cmp dword [esp + 0x14], 0
mov eax, dword [edi*4 + 0x100daa18]
mov ecx, dword [esp + 0x10]
push 0
jne 0x10056171
and eax, dword [ecx + 0x18]
mov ecx, ebx
mov edx, dword [edi*4 + 0x100daa10]
neg eax
sbb eax, eax
neg eax
push eax
call fcn.10054600
add esp, 8
jmp 0x10054a82
mov edi, eax
mov edx, 1
and edi, 0xfff7ffff
cmp byte [ecx + 0x3e], 0
mov ecx, dword [esp + 0x18]
cmovne edi, eax
call fcn.10054510
mov edx, dword [esp + 0x14]
add esp, 4
mov ecx, dword [edx + 0x18]
test al, al
je 0x100561a3
or edi, ecx
mov dword [edx + 0x18], edi
jmp 0x100561c8
mov eax, edi
not eax
and eax, ecx
mov dword [edx + 0x18], eax
cmp edi, 0x1000000
jne 0x100561c8
mov dword [edx + 0x200], 0
mov dword [edx + 0x204], 0
mov eax, dword [esi + 0x18]
mov edi, dword [esi + 0x20]
cmp dword [eax + 0x54], edi
jg 0x100561de
mov ecx, esi
call fcn.10021250
test eax, eax
jne 0x10056212
inc dword [esi + 0x20]
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x8e
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esp + 0x10]
call fcn.10054720
jmp 0x10054a82
mov edi, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
test edi, edi
je 0x10056076
push dword [esp + 0x40]
mov edx, edi
call fcn.1003ee40
add esp, 4
mov dword [esp + 0x40], eax
test eax, eax
je 0x10056072
mov ecx, dword [eax + 8]
mov dword [esp + 0x20], 0
mov dword [esp + 0x28], ecx
test ecx, ecx
je 0x10056274
nop dword [eax]
mov eax, dword [ecx + 0x38]
and al, 3
cmp al, 2
je 0x10056270
mov ecx, dword [ecx + 0x14]
test ecx, ecx
jne 0x10056260
mov dword [esp + 0x28], ecx
mov edx, 6
mov ecx, esi
call fcn.10022a10
mov edx, dword [esp + 0x50]
mov ecx, dword [esp + 0x2c]
mov dword [edx], 6
mov edx, ebx
mov eax, dword [ebx + 0x198]
test eax, eax
cmovne edx, eax
mov eax, 1
shl eax, cl
mov edi, dword [edx + 0x14c]
mov ebx, dword [edx]
test edi, eax
jne 0x100562d7
bts edi, ecx
mov dword [edx + 0x14c], edi
mov eax, dword [ebx + 0x10]
mov ebx, dword [esp + 0x34]
mov eax, dword [eax + ebx + 0xc]
mov eax, dword [eax]
mov dword [edx + ecx*4 + 0x150], eax
cmp ecx, 1
jne 0x100562d7
mov ecx, edx
call fcn.10045430
mov eax, dword [esi]
cmp byte [eax + 0x40], 0
jne 0x100563ac
mov ecx, dword [esi + 0x10]
mov edx, 0x100d91e4
push 0
push 1
push 0xffffffffffffffff
call fcn.10020860
mov eax, dword [esi]
add esp, 0xc
cmp byte [eax + 0x40], 0
jne 0x100563ac
mov ecx, dword [esi + 0x10]
mov edx, 0x100d91e8
push 0
push 1
push 0xffffffffffffffff
add ecx, 0x28
call fcn.10020860
mov eax, dword [esi]
add esp, 0xc
cmp byte [eax + 0x40], 0
jne 0x100563ac
mov ecx, dword [esi + 0x10]
mov edx, 0x100d91f0
push 0
push 1
push 0xffffffffffffffff
add ecx, 0x50
call fcn.10020860
mov eax, dword [esi]
add esp, 0xc
cmp byte [eax + 0x40], 0
jne 0x100563ac
mov ecx, dword [esi + 0x10]
mov edx, 0x100d91f8
push 0
push 1
push 0xffffffffffffffff
add ecx, 0x78
call fcn.10020860
mov eax, dword [esi]
add esp, 0xc
cmp byte [eax + 0x40], 0
jne 0x100563ac
mov ecx, dword [esi + 0x10]
mov edx, 0x100d9200
push 0
push 1
push 0xffffffffffffffff
add ecx, 0xa0
call fcn.10020860
mov eax, dword [esi]
add esp, 0xc
cmp byte [eax + 0x40], 0
jne 0x100563ac
mov ecx, dword [esi + 0x10]
mov edx, 0x100d920c
push 0
push 1
push 0xffffffffffffffff
add ecx, 0xc8
call fcn.10020860
add esp, 0xc
mov edi, dword [esp + 0x40]
mov edx, edi
mov ecx, dword [esp + 0x24]
call fcn.10041f90
mov eax, dword [esp + 0x40]
xor ecx, ecx
mov edi, dword [edi + 4]
xor ebx, ebx
mov dword [esp + 0x38], edi
cmp cx, word [eax + 0x26]
jge 0x10054a82
test byte [edi + 0x17], 2
je 0x100563e3
inc dword [esp + 0x20]
jmp 0x10056738
mov eax, dword [esi + 0x18]
mov ecx, dword [esi + 0x20]
mov edx, ecx
mov dword [esp + 0x1c], ecx
cmp dword [eax + 0x54], ecx
jg 0x10056406
mov ecx, esi
call fcn.10021250
test eax, eax
jne 0x1005643e
mov edx, dword [esi + 0x20]
mov ecx, dword [esp + 0x1c]
lea eax, [edx + 1]
mov dword [esi + 0x20], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x19
mov byte [eax + ecx*4 + 3], 0
lea ecx, [eax + ecx*4]
mov eax, ebx
sub eax, dword [esp + 0x20]
mov dword [ecx + 4], eax
mov dword [ecx + 8], 1
mov dword [ecx + 0xc], 0
mov dword [ecx + 0x10], 0
mov eax, dword [edi]
mov edi, dword [esi + 0x20]
mov ecx, edi
mov dword [esp + 0x1c], eax
mov eax, dword [esi + 0x18]
cmp dword [eax + 0x54], edi
jg 0x10056466
mov ecx, esi
call fcn.10021250
test eax, eax
je 0x10056463
mov edi, 1
jmp 0x1005649d
mov ecx, dword [esi + 0x20]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x61
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], 2
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
push 0
push dword [esp + 0x20]
mov edx, edi
mov ecx, esi
call fcn.100219a0
mov eax, dword [esp + 0x40]
add esp, 8
mov edi, dword [esi + 0x20]
mov ecx, 0x100d5b48
mov eax, dword [eax + 0xc]
test eax, eax
cmovne ecx, eax
mov eax, dword [esi + 0x18]
mov dword [esp + 0x1c], ecx
mov ecx, edi
cmp dword [eax + 0x54], edi
jg 0x100564e6
mov ecx, esi
call fcn.10021250
test eax, eax
je 0x100564e3
mov edi, 1
jmp 0x1005651d
mov ecx, dword [esi + 0x20]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x61
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], 3
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
push 0
push dword [esp + 0x20]
mov edx, edi
mov ecx, esi
call fcn.100219a0
mov edi, dword [esp + 0x40]
xor eax, eax
mov ecx, dword [esi + 0x20]
add esp, 8
mov dword [esp + 0x1c], ecx
mov edx, ecx
cmp byte [edi + 0x14], al
setne al
mov dword [esp + 0x3c], eax
mov eax, dword [esi + 0x18]
cmp dword [eax + 0x54], ecx
jg 0x10056562
mov ecx, esi
call fcn.10021250
test eax, eax
jne 0x10056599
mov edx, dword [esi + 0x20]
mov ecx, dword [esp + 0x1c]
lea eax, [edx + 1]
mov edx, dword [esp + 0x3c]
mov dword [esi + 0x20], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x19
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 4
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [edi + 8]
test eax, eax
mov edi, dword [esi + 0x20]
mov ecx, dword [esi + 0x18]
mov dword [esp + 0x1c], eax
mov eax, edi
je 0x1005660f
cmp dword [ecx + 0x54], edi
jg 0x100565c6
mov ecx, esi
call fcn.10021250
test eax, eax
je 0x100565c3
mov edi, 1
jmp 0x100565fb
mov eax, dword [esi + 0x20]
inc eax
lea ecx, [edi + edi*4]
mov dword [esi + 0x20], eax
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x61
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], 5
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
push 0
push dword [esp + 0x20]
mov edx, edi
mov ecx, esi
call fcn.100219a0
add esp, 8
jmp 0x10056657
cmp dword [ecx + 0x54], edi
jg 0x10056622
mov ecx, esi
call fcn.10021250
test eax, eax
jne 0x10056657
mov eax, dword [esi + 0x20]
inc eax
lea ecx, [edi + edi*4]
mov dword [esi + 0x20], eax
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x1c
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], 5
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esp + 0x38]
test byte [eax + 0x17], 1
jne 0x10056665
xor edi, edi
jmp 0x10056690
mov eax, dword [esp + 0x28]
mov edi, 1
test eax, eax
je 0x10056690
mov ecx, dword [esp + 0x40]
movsx edx, word [ecx + 0x26]
cmp edx, edi
jl 0x10056690
mov ecx, dword [eax + 4]
movsx eax, word [ecx]
cmp eax, ebx
je 0x10056690
inc edi
add ecx, 2
cmp edi, edx
jle 0x10056681
mov eax, dword [esi + 0x18]
mov ecx, dword [esi + 0x20]
mov edx, ecx
mov dword [esp + 0x1c], ecx
cmp dword [eax + 0x54], ecx
jg 0x100566b3
mov ecx, esi
call fcn.10021250
test eax, eax
jne 0x100566e6
mov edx, dword [esi + 0x20]
mov ecx, dword [esp + 0x1c]
lea eax, [edx + 1]
mov dword [esi + 0x20], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x19
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], edi
mov dword [eax + ecx*4 + 8], 6
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esi + 0x18]
mov edi, dword [esi + 0x20]
cmp dword [eax + 0x54], edi
jg 0x100566fc
mov ecx, esi
call fcn.10021250
test eax, eax
jne 0x10056730
inc dword [esi + 0x20]
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x23
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 1
mov dword [eax + ecx*4 + 8], 6
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esp + 0x40]
mov edi, dword [esp + 0x38]
movsx eax, word [eax + 0x26]
inc ebx
add edi, 0x18
cmp ebx, eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x38], edi
jl 0x100563d4
jmp 0x10054a82
mov ecx, ebx
call fcn.1005f210
mov esi, eax
mov edx, 4
mov ecx, esi
call fcn.10022a10
mov edx, dword [esp + 0x50]
mov eax, 1
mov dword [edx], 4
mov ecx, dword [ebx + 0x198]
test ecx, ecx
cmovne ebx, ecx
mov ecx, dword [esp + 0x2c]
shl eax, cl
mov dword [esp + 0x24], ebx
mov edx, dword [ebx + 0x14c]
mov edi, dword [ebx]
test edx, eax
jne 0x100567c9
bts edx, ecx
mov ecx, dword [esp + 0x24]
mov dword [ebx + 0x14c], edx
mov eax, dword [edi + 0x10]
mov ebx, dword [esp + 0x34]
mov edx, dword [esp + 0x2c]
mov eax, dword [eax + ebx + 0xc]
mov eax, dword [eax]
mov dword [ecx + edx*4 + 0x150], eax
cmp edx, 1
jne 0x100567c9
call fcn.10045430
mov eax, dword [esi]
cmp byte [eax + 0x40], 0
jne 0x1005684e
mov ecx, dword [esi + 0x10]
mov edx, 0x100d8274
push 0
push 1
push 0xffffffffffffffff
call fcn.10020860
mov eax, dword [esi]
add esp, 0xc
cmp byte [eax + 0x40], 0
jne 0x1005684e
mov ecx, dword [esi + 0x10]
mov edx, 0x100d8580
push 0
push 1
push 0xffffffffffffffff
add ecx, 0x28
call fcn.10020860
mov eax, dword [esi]
add esp, 0xc
cmp byte [eax + 0x40], 0
jne 0x1005684e
mov ecx, dword [esi + 0x10]
mov edx, 0x100d9210
push 0
push 1
push 0xffffffffffffffff
add ecx, 0x50
call fcn.10020860
mov eax, dword [esi]
add esp, 0xc
cmp byte [eax + 0x40], 0
jne 0x1005684e
mov ecx, dword [esi + 0x10]
mov edx, 0x100d9218
push 0
push 1
push 0xffffffffffffffff
add ecx, 0x78
call fcn.10020860
add esp, 0xc
mov ebx, dword [esp + 0x30]
mov eax, dword [ebx + 0xc]
mov eax, dword [eax + 0x10]
mov dword [esp + 0x28], eax
test eax, eax
je 0x10054a82
mov ebx, dword [eax + 8]
mov edi, dword [esi + 0x20]
mov ecx, edi
mov eax, dword [ebx]
mov dword [esp + 0x1c], eax
mov eax, dword [esi + 0x18]
cmp dword [eax + 0x54], edi
jg 0x1005688f
mov ecx, esi
call fcn.10021250
test eax, eax
je 0x1005688c
mov edi, 1
jmp 0x100568c6
mov ecx, dword [esi + 0x20]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x61
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], 1
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
push 0
push dword [esp + 0x20]
mov edx, edi
mov ecx, esi
call fcn.100219a0
mov eax, dword [esi + 0x18]
add esp, 8
mov edi, dword [esi + 0x20]
mov ecx, edi
cmp dword [eax + 0x54], edi
jg 0x100568f3
mov ecx, esi
call fcn.10021250
test eax, eax
jne 0x1005692a
mov ecx, dword [esi + 0x20]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x1c
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], 2
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov cx, word [ebx + 0x2a]
call fcn.10008680
mov ecx, dword [esi + 0x18]
mov edi, dword [esi + 0x20]
mov dword [esp + 0x1c], eax
mov eax, edi
cmp dword [ecx + 0x54], edi
jg 0x10056952
mov ecx, esi
call fcn.10021250
test eax, eax
jne 0x10056987
mov eax, dword [esi + 0x20]
mov edx, dword [esp + 0x1c]
lea ecx, [edi + edi*4]
inc eax
mov dword [esi + 0x20], eax
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x19
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 3
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov cx, word [ebx + 0x1c]
call fcn.10008680
mov ecx, dword [esi + 0x18]
mov edi, dword [esi + 0x20]
mov dword [esp + 0x1c], eax
mov eax, edi
cmp dword [ecx + 0x54], edi
jg 0x100569af
mov ecx, esi
call fcn.10021250
test eax, eax
jne 0x100569e4
mov eax, dword [esi + 0x20]
mov edx, dword [esp + 0x1c]
lea ecx, [edi + edi*4]
inc eax
mov dword [esi + 0x20], eax
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x19
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 4
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esi + 0x18]
mov edi, dword [esi + 0x20]
cmp dword [eax + 0x54], edi
jg 0x100569fa
mov ecx, esi
call fcn.10021250
test eax, eax
jne 0x10056a2e
inc dword [esi + 0x20]
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x23
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 1
mov dword [eax + ecx*4 + 8], 4
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ebx, dword [ebx + 8]
test ebx, ebx
je 0x10056bc2
nop dword [eax]
mov eax, dword [ebx]
mov edi, dword [esi + 0x20]
mov ecx, edi
mov dword [esp + 0x1c], eax
mov eax, dword [esi + 0x18]
cmp dword [eax + 0x54], edi
jg 0x10056a68
mov ecx, esi
call fcn.10021250
test eax, eax
je 0x10056a65
mov edi, 1
jmp 0x10056a9f
mov ecx, dword [esi + 0x20]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x61
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], 2
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
push 0
push dword [esp + 0x20]
mov edx, edi
mov ecx, esi
call fcn.100219a0
mov cx, word [ebx + 0x30]
add esp, 8
call fcn.10008680
mov ecx, dword [esi + 0x18]
mov edi, dword [esi + 0x20]
mov dword [esp + 0x1c], eax
mov eax, edi
cmp dword [ecx + 0x54], edi
jg 0x10056ad9
mov ecx, esi
call fcn.10021250
test eax, eax
jne 0x10056b0e
mov eax, dword [esi + 0x20]
mov edx, dword [esp + 0x1c]
lea ecx, [edi + edi*4]
inc eax
mov dword [esi + 0x20], eax
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x19
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 3
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [ebx + 8]
mov cx, word [eax]
call fcn.10008680
mov ecx, dword [esi + 0x18]
mov edi, dword [esi + 0x20]
mov dword [esp + 0x1c], eax
mov eax, edi
cmp dword [ecx + 0x54], edi
jg 0x10056b38
mov ecx, esi
call fcn.10021250
test eax, eax
jne 0x10056b6d
mov eax, dword [esi + 0x20]
mov edx, dword [esp + 0x1c]
lea ecx, [edi + edi*4]
inc eax
mov dword [esi + 0x20], eax
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x19
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 4
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esi + 0x18]
mov edi, dword [esi + 0x20]
cmp dword [eax + 0x54], edi
jg 0x10056b83
mov ecx, esi
call fcn.10021250
test eax, eax
jne 0x10056bb7
inc dword [esi + 0x20]
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x23
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 1
mov dword [eax + ecx*4 + 8], 4
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ebx, dword [ebx + 0x14]
test ebx, ebx
jne 0x10056a40
mov eax, dword [esp + 0x28]
mov eax, dword [eax]
mov dword [esp + 0x28], eax
test eax, eax
jne 0x10056864
jmp 0x10054a82
mov edi, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
test edi, edi
je 0x10056076
push dword [esp + 0x40]
mov edx, edi
call fcn.1003efc0
mov edi, eax
add esp, 4
mov dword [esp + 0x74], edi
test edi, edi
je 0x10054a82
mov eax, dword [edi + 0xc]
mov edx, 3
mov ecx, esi
mov dword [esp + 0x1c], eax
call fcn.10022a10
mov edx, dword [esp + 0x50]
mov dword [edx], 3
mov ecx, dword [ebx + 0x198]
test ecx, ecx
cmovne ebx, ecx
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x24], ebx
mov eax, dword [esp + 0x24]
mov ebx, dword [ebx]
mov edx, dword [eax + 0x14c]
mov eax, 1
shl eax, cl
test edx, eax
jne 0x10056c7b
bts edx, ecx
mov ecx, dword [esp + 0x24]
mov dword [ecx + 0x14c], edx
mov eax, dword [ebx + 0x10]
mov ebx, dword [esp + 0x34]
mov edx, dword [esp + 0x2c]
mov eax, dword [eax + ebx + 0xc]
mov eax, dword [eax]
mov dword [ecx + edx*4 + 0x150], eax
cmp edx, 1
jne 0x10056c7b
call fcn.10045430
mov eax, dword [esi]
cmp byte [eax + 0x40], 0
jne 0x10056cdb
mov ecx, dword [esi + 0x10]
mov edx, 0x100d9220
push 0
push 1
push 0xffffffffffffffff
call fcn.10020860
mov eax, dword [esi]
add esp, 0xc
cmp byte [eax + 0x40], 0
jne 0x10056cdb
mov ecx, dword [esi + 0x10]
mov edx, 0x100d91e4
push 0
push 1
push 0xffffffffffffffff
add ecx, 0x28
call fcn.10020860
mov eax, dword [esi]
add esp, 0xc
cmp byte [eax + 0x40], 0
jne 0x10056cdb
mov ecx, dword [esi + 0x10]
mov edx, 0x100d91e8
push 0
push 1
push 0xffffffffffffffff
add ecx, 0x50
call fcn.10020860
add esp, 0xc
xor eax, eax
xor ebx, ebx
cmp ax, word [edi + 0x32]
jae 0x10054a82
nop dword [eax]
mov eax, dword [edi + 4]
mov edi, dword [esi + 0x20]
mov ecx, edi
movzx eax, word [eax + ebx*2]
mov dword [esp + 0x28], eax
mov eax, dword [esi + 0x18]
cmp dword [eax + 0x54], edi
jg 0x10056d16
mov ecx, esi
call fcn.10021250
test eax, eax
jne 0x10056d49
mov ecx, dword [esi + 0x20]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x19
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], ebx
mov dword [eax + ecx*4 + 8], 1
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esi + 0x18]
mov edi, dword [esi + 0x20]
mov ecx, edi
cmp dword [eax + 0x54], edi
jg 0x10056d64
mov ecx, esi
call fcn.10021250
test eax, eax
jne 0x10056dce
mov ecx, dword [esi + 0x20]
mov edx, dword [esp + 0x28]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
movsx edx, dx
mov word [eax + ecx*4], 0x19
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 2
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esp + 0x1c]
lea ecx, [edx + edx*2]
mov edi, dword [esi + 0x20]
mov eax, dword [eax + 4]
mov eax, dword [eax + ecx*8]
mov ecx, edi
mov dword [esp + 0x3c], eax
mov eax, dword [esi + 0x18]
cmp dword [eax + 0x54], edi
jg 0x10056dda
mov ecx, esi
call fcn.10021250
test eax, eax
je 0x10056dd7
mov edi, 1
jmp 0x10056e11
mov edx, dword [esp + 0x28]
movsx edx, dx
jmp 0x10056d9e
mov ecx, dword [esi + 0x20]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x61
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], 3
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
push 0
push dword [esp + 0x40]
mov edx, edi
mov ecx, esi
call fcn.100219a0
mov eax, dword [esi + 0x18]
add esp, 8
mov edi, dword [esi + 0x20]
cmp dword [eax + 0x54], edi
jg 0x10056e39
mov ecx, esi
call fcn.10021250
test eax, eax
jne 0x10056e6d
inc dword [esi + 0x20]
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x23
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 1
mov dword [eax + ecx*4 + 8], 3
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov edi, dword [esp + 0x74]
inc ebx
movzx eax, word [edi + 0x32]
cmp ebx, eax
jl 0x10056cf0
jmp 0x10054a82
mov edi, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
test edi, edi
je 0x10056076
push dword [esp + 0x40]
mov edx, edi
call fcn.1003ee40
mov edi, eax
add esp, 4
test edi, edi
je 0x10054a82
mov ecx, ebx
call fcn.1005f210
mov esi, eax
mov edx, 3
mov ecx, esi
call fcn.10022a10
mov edx, dword [esp + 0x50]
mov dword [edx], 3
mov ecx, dword [ebx + 0x198]
test ecx, ecx
cmovne ebx, ecx
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x24], ebx
mov eax, dword [esp + 0x24]
mov ebx, dword [ebx]
mov edx, dword [eax + 0x14c]
mov eax, 1
shl eax, cl
test edx, eax
jne 0x10056f23
bts edx, ecx
mov ecx, dword [esp + 0x24]
mov dword [ecx + 0x14c], edx
mov eax, dword [ebx + 0x10]
mov ebx, dword [esp + 0x34]
mov edx, dword [esp + 0x2c]
mov eax, dword [eax + ebx + 0xc]
mov eax, dword [eax]
mov dword [ecx + edx*4 + 0x150], eax
cmp edx, 1
jne 0x10056f23
call fcn.10045430
mov eax, dword [esi]
cmp byte [eax + 0x40], 0
jne 0x10056f83
mov ecx, dword [esi + 0x10]
mov edx, 0x100d9228
push 0
push 1
push 0xffffffffffffffff
call fcn.10020860
mov eax, dword [esi]
add esp, 0xc
cmp byte [eax + 0x40], 0
jne 0x10056f83
mov ecx, dword [esi + 0x10]
mov edx, 0x100d91e8
push 0
push 1
push 0xffffffffffffffff
add ecx, 0x28
call fcn.10020860
mov eax, dword [esi]
add esp, 0xc
cmp byte [eax + 0x40], 0
jne 0x10056f83
mov ecx, dword [esi + 0x10]
mov edx, 0x100d922c
push 0
push 1
push 0xffffffffffffffff
add ecx, 0x50
call fcn.10020860
add esp, 0xc
mov ebx, dword [edi + 8]
xor edx, edx
mov dword [esp + 0x20], edx
test ebx, ebx
je 0x10054a82
mov eax, dword [esi + 0x18]
mov edi, dword [esi + 0x20]
mov ecx, edi
cmp dword [eax + 0x54], edi
jg 0x10056fb3
mov ecx, esi
call fcn.10021250
test eax, eax
jne 0x10056fe6
mov ecx, dword [esi + 0x20]
mov edx, dword [esp + 0x20]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x19
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 1
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [ebx]
mov edi, dword [esi + 0x20]
mov ecx, edi
mov dword [esp + 0x1c], eax
mov eax, dword [esi + 0x18]
cmp dword [eax + 0x54], edi
jg 0x1005700e
mov ecx, esi
call fcn.10021250
test eax, eax
je 0x1005700b
mov edi, 1
jmp 0x10057045
mov ecx, dword [esi + 0x20]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x61
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], 2
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
push 0
push dword [esp + 0x20]
mov edx, edi
mov ecx, esi
call fcn.100219a0
mov edi, dword [esi + 0x20]
xor eax, eax
add esp, 8
mov ecx, edi
cmp byte [ebx + 0x36], al
setne al
mov dword [esp + 0x1c], eax
mov eax, dword [esi + 0x18]
cmp dword [eax + 0x54], edi
jg 0x1005707e
mov ecx, esi
call fcn.10021250
test eax, eax
jne 0x100570b5
mov ecx, dword [esi + 0x20]
mov edx, dword [esp + 0x1c]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x19
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 3
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esi + 0x18]
mov edi, dword [esi + 0x20]
cmp dword [eax + 0x54], edi
jg 0x100570cb
mov ecx, esi
call fcn.10021250
test eax, eax
jne 0x100570ff
inc dword [esi + 0x20]
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x23
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 1
mov dword [eax + ecx*4 + 8], 3
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov edx, dword [esp + 0x20]
mov ebx, dword [ebx + 0x14]
inc edx
mov dword [esp + 0x20], edx
test ebx, ebx
jne 0x10056f94
jmp 0x10054a82
mov edx, 3
mov ecx, esi
call fcn.10022a10
mov edx, dword [esp + 0x50]
mov dword [edx], 3
mov eax, dword [esi]
cmp byte [eax + 0x40], 0
jne 0x1005718e
mov ecx, dword [esi + 0x10]
mov edx, 0x100d9228
push 0
push 1
push 0xffffffffffffffff
call fcn.10020860
mov eax, dword [esi]
add esp, 0xc
cmp byte [eax + 0x40], 0
jne 0x1005718e
mov ecx, dword [esi + 0x10]
mov edx, 0x100d91e8
push 0
push 1
push 0xffffffffffffffff
add ecx, 0x28
call fcn.10020860
mov eax, dword [esi]
add esp, 0xc
cmp byte [eax + 0x40], 0
jne 0x1005718e
mov ecx, dword [esi + 0x10]
mov edx, 0x100d90d8
push 0
push 1
push 0xffffffffffffffff
add ecx, 0x50
call fcn.10020860
add esp, 0xc
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x20], 0
cmp dword [ecx + 0x14], 0
jle 0x10054a86
xor ebx, ebx
nop word [eax + eax]
mov eax, dword [ecx + 0x10]
cmp dword [eax + ebx + 4], 0
je 0x10057364
mov eax, dword [esi + 0x18]
mov edi, dword [esi + 0x20]
mov ecx, edi
cmp dword [eax + 0x54], edi
jg 0x100571d9
mov ecx, esi
call fcn.10021250
test eax, eax
jne 0x10057210
mov ecx, dword [esi + 0x20]
mov edx, dword [esp + 0x20]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x19
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 1
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esp + 0x10]
mov edi, dword [esi + 0x20]
mov ecx, edi
mov eax, dword [eax + 0x10]
mov eax, dword [ebx + eax]
mov dword [esp + 0x1c], eax
mov eax, dword [esi + 0x18]
cmp dword [eax + 0x54], edi
jg 0x10057240
mov ecx, esi
call fcn.10021250
test eax, eax
je 0x1005723d
mov edi, 1
jmp 0x10057277
mov ecx, dword [esi + 0x20]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x61
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], 2
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
push 0
push dword [esp + 0x20]
mov edx, edi
mov ecx, esi
call fcn.100219a0
mov eax, dword [esp + 0x18]
add esp, 8
mov eax, dword [eax + 0x10]
mov eax, dword [eax + ebx + 4]
mov eax, dword [eax + 4]
mov eax, dword [eax]
cmp byte [eax + 0xf], 0
je 0x100572a9
mov dword [esp + 0x28], 0x100d5b48
jmp 0x100572b3
mov eax, dword [eax + 0xa8]
mov dword [esp + 0x28], eax
mov eax, dword [esi + 0x18]
mov edi, dword [esi + 0x20]
cmp dword [eax + 0x54], edi
jg 0x100572d0
mov ecx, esi
call fcn.10021250
test eax, eax
je 0x100572d0
mov edi, 1
jmp 0x10057304
inc dword [esi + 0x20]
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x61
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], 3
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
push 0
push dword [esp + 0x2c]
mov edx, edi
mov ecx, esi
call fcn.100219a0
mov eax, dword [esi + 0x18]
add esp, 8
mov edi, dword [esi + 0x20]
cmp dword [eax + 0x54], edi
jg 0x1005732c
mov ecx, esi
call fcn.10021250
test eax, eax
jne 0x10057360
inc dword [esi + 0x20]
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x23
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 1
mov dword [eax + ecx*4 + 8], 3
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x20]
add ebx, 0x10
inc eax
mov dword [esp + 0x20], eax
cmp eax, dword [ecx + 0x14]
jl 0x100571b0
jmp 0x10054a86
mov edx, 2
mov dword [esp + 0x20], 0
mov ecx, esi
call fcn.10022a10
mov edx, dword [esp + 0x50]
mov dword [edx], 2
mov eax, dword [esi]
cmp byte [eax + 0x40], 0
jne 0x100573db
mov ecx, dword [esi + 0x10]
mov edx, 0x100d9228
push 0
push 1
push 0xffffffffffffffff
call fcn.10020860
mov eax, dword [esi]
add esp, 0xc
cmp byte [eax + 0x40], 0
jne 0x100573db
mov ecx, dword [esi + 0x10]
mov edx, 0x100d91e8
push 0
push 1
push 0xffffffffffffffff
add ecx, 0x28
call fcn.10020860
add esp, 0xc
mov ebx, dword [esp + 0x10]
mov ebx, dword [ebx + 0x1b4]
test ebx, ebx
je 0x10054a82
nop dword [eax]
mov eax, dword [ebx + 8]
mov edi, dword [esi + 0x20]
mov ecx, edi
mov dword [esp + 0x1c], eax
mov eax, dword [esi + 0x18]
cmp dword [eax + 0x54], edi
jg 0x10057412
mov ecx, esi
call fcn.10021250
test eax, eax
jne 0x10057449
mov ecx, dword [esi + 0x20]
mov edx, dword [esp + 0x20]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x19
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 1
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esp + 0x1c]
mov edi, dword [esi + 0x20]
mov ecx, edi
inc dword [esp + 0x20]
mov eax, dword [eax]
mov dword [esp + 0x1c], eax
mov eax, dword [esi + 0x18]
cmp dword [eax + 0x54], edi
jg 0x10057479
mov ecx, esi
call fcn.10021250
test eax, eax
je 0x10057476
mov edi, 1
jmp 0x100574b0
mov ecx, dword [esi + 0x20]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x61
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], 2
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
push 0
push dword [esp + 0x20]
mov edx, edi
mov ecx, esi
call fcn.100219a0
mov eax, dword [esi + 0x18]
add esp, 8
mov edi, dword [esi + 0x20]
cmp dword [eax + 0x54], edi
jg 0x100574d8
mov ecx, esi
call fcn.10021250
test eax, eax
jne 0x1005750c
inc dword [esi + 0x20]
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x23
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 1
mov dword [eax + ecx*4 + 8], 2
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ebx, dword [ebx]
test ebx, ebx
jne 0x100573f0
jmp 0x10054a82
mov edi, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
test edi, edi
je 0x10056076
push dword [esp + 0x40]
mov edx, edi
call fcn.1003ee40
mov ebx, eax
add esp, 4
mov dword [esp + 0x3c], ebx
test ebx, ebx
je 0x10056072
mov ecx, dword [esp + 0x24]
call fcn.1005f210
mov ebx, dword [ebx + 0x10]
mov esi, eax
mov dword [esp + 0x38], ebx
test ebx, ebx
je 0x10056072
mov edx, 8
mov dword [esp + 0x4c], 0
mov ecx, esi
call fcn.10022a10
mov edx, dword [esp + 0x50]
mov ecx, dword [esp + 0x24]
mov dword [edx], 8
mov eax, dword [ecx + 0x198]
test eax, eax
cmovne ecx, eax
mov eax, 1
mov dword [esp + 0x24], ecx
mov edx, dword [ecx + 0x14c]
mov edi, dword [ecx]
mov ecx, dword [esp + 0x2c]
shl eax, cl
test edx, eax
jne 0x100575dc
mov eax, dword [esp + 0x24]
bts edx, ecx
mov ecx, dword [esp + 0x34]
mov dword [eax + 0x14c], edx
mov eax, dword [edi + 0x10]
mov edx, dword [esp + 0x2c]
mov eax, dword [eax + ecx + 0xc]
mov ecx, dword [esp + 0x24]
mov eax, dword [eax]
mov dword [ecx + edx*4 + 0x150], eax
cmp edx, 1
jne 0x100575dc
call fcn.10045430
mov eax, dword [esi]
cmp byte [eax + 0x40], 0
jne 0x10057701
mov ecx, dword [esi + 0x10]
mov edx, 0x100d9234
push 0
push 1
push 0xffffffffffffffff
call fcn.10020860
mov eax, dword [esi]
add esp, 0xc
cmp byte [eax + 0x40], 0
jne 0x10057701
mov ecx, dword [esi + 0x10]
mov edx, 0x100d9228
push 0
push 1
push 0xffffffffffffffff
add ecx, 0x28
call fcn.10020860
mov eax, dword [esi]
add esp, 0xc
cmp byte [eax + 0x40], 0
jne 0x10057701
mov ecx, dword [esi + 0x10]
mov edx, 0x100d8274
push 0
push 1
push 0xffffffffffffffff
add ecx, 0x50
call fcn.10020860
mov eax, dword [esi]
add esp, 0xc
cmp byte [eax + 0x40], 0
jne 0x10057701
mov ecx, dword [esi + 0x10]
mov edx, 0x100d9238
push 0
push 1
push 0xffffffffffffffff
add ecx, 0x78
call fcn.10020860
mov eax, dword [esi]
add esp, 0xc
cmp byte [eax + 0x40], 0
jne 0x10057701
mov ecx, dword [esi + 0x10]
mov edx, 0x100d9240
push 0
push 1
push 0xffffffffffffffff
add ecx, 0xa0
call fcn.10020860
mov eax, dword [esi]
add esp, 0xc
cmp byte [eax + 0x40], 0
jne 0x10057701
mov ecx, dword [esi + 0x10]
mov edx, 0x100d9244
push 0
push 1
push 0xffffffffffffffff
add ecx, 0xc8
call fcn.10020860
mov eax, dword [esi]
add esp, 0xc
cmp byte [eax + 0x40], 0
jne 0x10057701
mov ecx, dword [esi + 0x10]
mov edx, 0x100d9250
push 0
push 1
push 0xffffffffffffffff
add ecx, 0xf0
call fcn.10020860
mov eax, dword [esi]
add esp, 0xc
cmp byte [eax + 0x40], 0
jne 0x10057701
mov ecx, dword [esi + 0x10]
mov edx, 0x100d925c
push 0
push 1
push 0xffffffffffffffff
add ecx, 0x118
call fcn.10020860
add esp, 0xc
mov dword [esp + 0x74], 0x61
xor eax, eax
nop dword [eax + eax]
cmp dword [ebx + 0x14], 0
mov dword [esp + 0x20], 0
jle 0x10057b72
lea eax, [ebx + 0x24]
mov dword [esp + 0x44], eax
nop dword [eax]
mov eax, dword [eax + 4]
mov dword [esp + 0x28], eax
movzx eax, byte [ebx + 0x19]
add eax, 0xfffffffa
cmp eax, 3
ja case.default.0x10057743
jmp dword [eax*4 + 0x1005a9d0]
mov dword [esp + 0x48], 0x100d9128
jmp 0x1005777a
mov dword [esp + 0x48], 0x100d9134
jmp 0x1005777a
mov dword [esp + 0x48], 0x100d9140
jmp 0x1005777a
mov dword [esp + 0x48], 0x100d9148
jmp 0x1005777a
mov dword [esp + 0x48], 0x100d9154
movzx eax, byte [ebx + 0x1a]
add eax, 0xfffffffa
cmp eax, 3
ja case.default.0x10057786
jmp dword [eax*4 + 0x1005a9e0]
mov ebx, 0x100d9128
jmp 0x100577ae
mov ebx, 0x100d9134
jmp 0x100577ae
mov ebx, 0x100d9140
jmp 0x100577ae
mov ebx, 0x100d9148
jmp 0x100577ae
mov ebx, 0x100d9154
mov eax, dword [esi + 0x18]
mov edi, dword [esi + 0x20]
mov ecx, edi
cmp dword [eax + 0x54], edi
jg 0x100577c9
mov ecx, esi
call fcn.10021250
test eax, eax
jne 0x10057800
mov ecx, dword [esi + 0x20]
mov edx, dword [esp + 0x4c]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x19
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 1
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esi + 0x18]
mov edi, dword [esi + 0x20]
mov ecx, edi
cmp dword [eax + 0x54], edi
jg 0x1005781b
mov ecx, esi
call fcn.10021250
test eax, eax
jne 0x10057852
mov ecx, dword [esi + 0x20]
mov edx, dword [esp + 0x20]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x19
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 2
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esp + 0x38]
mov edi, dword [esi + 0x20]
mov ecx, edi
mov eax, dword [eax + 8]
mov dword [esp + 0x1c], eax
mov eax, dword [esi + 0x18]
cmp dword [eax + 0x54], edi
jg 0x1005787f
mov ecx, esi
call fcn.10021250
test eax, eax
je 0x1005787c
mov edi, 1
jmp 0x100578b6
mov ecx, dword [esi + 0x20]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x61
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], 3
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
push 0
push dword [esp + 0x20]
mov edx, edi
mov ecx, esi
call fcn.100219a0
mov eax, dword [esp + 0x4c]
add esp, 8
mov edi, dword [esi + 0x20]
mov eax, dword [eax]
lea ecx, [eax + eax*2]
mov eax, dword [esp + 0x3c]
mov eax, dword [eax + 4]
mov eax, dword [eax + ecx*8]
mov ecx, edi
mov dword [esp + 0x1c], eax
mov eax, dword [esi + 0x18]
cmp dword [eax + 0x54], edi
jg 0x10057901
mov ecx, esi
call fcn.10021250
test eax, eax
je 0x100578fe
mov edi, 1
jmp 0x10057938
mov ecx, dword [esi + 0x20]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x61
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], 4
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
push 0
push dword [esp + 0x20]
mov edx, edi
mov ecx, esi
call fcn.100219a0
mov eax, dword [esi + 0x18]
add esp, 8
mov edi, dword [esi + 0x20]
mov ecx, edi
cmp dword [eax + 0x54], edi
jg 0x10057970
mov ecx, esi
call fcn.10021250
test eax, eax
je 0x1005796d
mov edx, dword [esp + 0x28]
mov edi, 1
jmp 0x100579b5
mov ecx, dword [esi + 0x20]
mov edx, dword [esp + 0x28]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
test edx, edx
lea ecx, [eax + ecx*4]
mov eax, 0x1c
cmovne eax, dword [esp + 0x74]
mov byte [ecx], al
mov byte [ecx + 3], 0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 5
mov dword [ecx + 0xc], 0
mov dword [ecx + 0x10], 0
mov byte [ecx + 1], 0
push 0
push edx
mov edx, edi
mov ecx, esi
call fcn.100219a0
mov eax, dword [esi + 0x18]
add esp, 8
mov edi, dword [esi + 0x20]
mov ecx, edi
cmp dword [eax + 0x54], edi
jg 0x100579e6
mov ecx, esi
call fcn.10021250
test eax, eax
je 0x100579e3
mov edi, 1
jmp 0x10057a1d
mov ecx, dword [esi + 0x20]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x61
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], 6
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
push 0
push ebx
mov edx, edi
mov ecx, esi
call fcn.100219a0
mov eax, dword [esi + 0x18]
add esp, 8
mov edi, dword [esi + 0x20]
mov ecx, edi
cmp dword [eax + 0x54], edi
jg 0x10057a4e
mov ecx, esi
call fcn.10021250
test eax, eax
je 0x10057a4b
mov edi, 1
jmp 0x10057a85
mov ecx, dword [esi + 0x20]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x61
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], 7
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
push 0
push dword [esp + 0x4c]
mov edx, edi
mov ecx, esi
call fcn.100219a0
mov eax, dword [esi + 0x18]
add esp, 8
mov edi, dword [esi + 0x20]
mov ecx, edi
cmp dword [eax + 0x54], edi
jg 0x10057ab9
mov ecx, esi
call fcn.10021250
test eax, eax
je 0x10057ab6
mov edi, 1
jmp 0x10057af0
mov ecx, dword [esi + 0x20]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x61
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], 8
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
push 0
push 0x100d9264
mov edx, edi
mov ecx, esi
call fcn.100219a0
mov eax, dword [esi + 0x18]
add esp, 8
mov edi, dword [esi + 0x20]
cmp dword [eax + 0x54], edi
jg 0x10057b19
mov ecx, esi
call fcn.10021250
test eax, eax
jne 0x10057b4d
inc dword [esi + 0x20]
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x23
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 1
mov dword [eax + ecx*4 + 8], 8
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esp + 0x20]
mov ebx, dword [esp + 0x38]
inc ecx
mov eax, dword [esp + 0x44]
add eax, 8
mov dword [esp + 0x20], ecx
mov dword [esp + 0x44], eax
cmp ecx, dword [ebx + 0x14]
jl 0x10057730
mov eax, dword [esp + 0x4c]
mov ebx, dword [ebx + 4]
inc eax
mov dword [esp + 0x4c], eax
mov dword [esp + 0x38], ebx
test ebx, ebx
jne 0x10057710
jmp 0x10054a82
mov edx, dword [esp + 0x50]
mov eax, dword [edx]
lea ecx, [eax + 1]
add eax, 5
mov dword [esp + 0x70], eax
inc eax
mov dword [esp + 0x4c], ecx
mov ecx, ebx
mov dword [esp + 0x30], eax
mov dword [edx], eax
call fcn.1005f210
mov esi, eax
mov edx, 4
mov ecx, esi
call fcn.10022a10
mov eax, dword [esi]
cmp byte [eax + 0x40], 0
jne 0x10057c3c
mov ecx, dword [esi + 0x10]
mov edx, 0x100d8274
push 0
push 1
push 0xffffffffffffffff
call fcn.10020860
mov eax, dword [esi]
add esp, 0xc
cmp byte [eax + 0x40], 0
jne 0x10057c3c
mov ecx, dword [esi + 0x10]
mov edx, 0x100d926c
push 0
push 1
push 0xffffffffffffffff
add ecx, 0x28
call fcn.10020860
mov eax, dword [esi]
add esp, 0xc
cmp byte [eax + 0x40], 0
jne 0x10057c3c
mov ecx, dword [esi + 0x10]
mov edx, 0x100d9274
push 0
push 1
push 0xffffffffffffffff
add ecx, 0x50
call fcn.10020860
mov eax, dword [esi]
add esp, 0xc
cmp byte [eax + 0x40], 0
jne 0x10057c3c
mov ecx, dword [esi + 0x10]
mov edx, 0x100d927c
push 0
push 1
push 0xffffffffffffffff
add ecx, 0x78
call fcn.10020860
add esp, 0xc
mov eax, dword [ebx + 0x198]
mov edx, ebx
mov ecx, dword [esp + 0x2c]
test eax, eax
cmovne edx, eax
mov eax, 1
shl eax, cl
mov edi, dword [edx + 0x14c]
mov ebx, dword [edx]
test edi, eax
jne 0x10057c8b
bts edi, ecx
mov dword [edx + 0x14c], edi
mov eax, dword [ebx + 0x10]
mov ebx, dword [esp + 0x34]
mov eax, dword [eax + ebx + 0xc]
mov eax, dword [eax]
mov dword [edx + ecx*4 + 0x150], eax
cmp ecx, 1
jne 0x10057c8f
mov ecx, edx
call fcn.10045430
jmp 0x10057c8f
mov ebx, dword [esp + 0x34]
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x10]
mov eax, dword [ebx + eax + 0xc]
mov eax, dword [eax + 0x10]
test eax, eax
je 0x10054a82
cmp dword [esp + 0x14], 0
je 0x10057d45
mov ebx, dword [esp + 0x24]
mov ecx, dword [ebx]
cmp byte [ecx + 0x91], 0
jne 0x10057cdb
lea edx, [ebx + 4]
call fcn.1005b1a0
test eax, eax
je 0x10057cdb
mov dword [ebx + 0xc], eax
inc dword [ebx + 0x40]
xor ebx, ebx
mov dword [esp + 0x34], ebx
xor eax, eax
jmp 0x10057d4e
mov edi, dword [esp + 0x40]
mov edx, dword [esp + 0x14]
mov ecx, dword [ebx]
push edi
call fcn.1003ee40
mov ebx, eax
add esp, 4
mov dword [esp + 0x34], ebx
test ebx, ebx
jne 0x10057d41
push dword [esp + 0x14]
test edi, edi
je 0x10057d23
push edi
push 0x100d803c
push str._s:__s._s
push dword [esp + 0x34]
call fcn.10007210
mov eax, dword [esp + 0x38]
add esp, 0x14
mov byte [eax + 0x11], 1
xor eax, eax
jmp 0x10057d4e
push 0x100d803c
push str._s:__s
push dword [esp + 0x30]
call fcn.10007210
mov eax, dword [esp + 0x34]
add esp, 0x10
mov byte [eax + 0x11], 1
xor eax, eax
jmp 0x10057d4e
mov ebx, dword [eax + 8]
mov eax, dword [eax]
mov dword [esp + 0x34], ebx
mov dword [esp + 0x58], eax
test ebx, ebx
je 0x1005865f
cmp dword [ebx + 0x10], 0
je 0x1005865f
push dword [ebx]
mov edi, dword [esp + 0x28]
mov ecx, edi
mov edx, dword [esp + 0x30]
push 0
push dword [ebx + 0x20]
call fcn.1003e6e0
mov ecx, dword [esp + 0x5c]
add esp, 0xc
movsx eax, word [ebx + 0x26]
add eax, dword [esp + 0x30]
cmp eax, dword [ecx]
jle 0x10057d8f
mov dword [ecx], eax
push 0x36
push ebx
push dword [esp + 0x34]
xor edx, edx
mov ecx, edi
call fcn.1004e910
mov eax, dword [esi + 0x18]
add esp, 0xc
mov edi, dword [esi + 0x20]
mov ebx, dword [ebx]
cmp dword [eax + 0x54], edi
jg 0x10057dc1
mov ecx, esi
call fcn.10021250
test eax, eax
je 0x10057dc1
mov edi, 1
jmp 0x10057df5
inc dword [esi + 0x20]
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov edx, dword [esp + 0x4c]
mov word [eax + ecx*4], 0x61
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
push 0
push ebx
mov edx, edi
mov ecx, esi
call fcn.100219a0
mov edi, dword [esp + 0x3c]
add esp, 8
mov eax, 1
mov dword [esp + 0x20], eax
mov ebx, dword [edi + 0x10]
test ebx, ebx
je 0x10057f76
nop dword [eax]
push dword [esp + 0x40]
mov edx, dword [ebx + 8]
mov ecx, dword [esp + 0x14]
call fcn.1003ee40
mov edi, eax
add esp, 4
test edi, edi
je 0x10057f5e
push dword [edi]
mov edx, dword [esp + 0x30]
mov ecx, dword [esp + 0x28]
push 0
push dword [edi + 0x20]
mov dword [esp + 0x44], 0
call fcn.1003e6e0
mov ecx, dword [esp + 0x30]
lea eax, [esp + 0x44]
add esp, 0xc
mov edx, edi
push 0
push eax
push ebx
call fcn.1004be20
add esp, 0xc
test eax, eax
jne 0x10054a82
mov eax, dword [esp + 0x38]
test eax, eax
jne 0x10057e9e
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
push 0x36
push edi
push dword [esp + 0x34]
call fcn.1004e910
add esp, 0xc
jmp 0x10057f5e
mov eax, dword [eax + 0x2c]
mov edi, dword [esi + 0x20]
mov dword [esp + 0x1c], eax
mov eax, dword [esi + 0x18]
cmp dword [eax + 0x54], edi
jg 0x10057ebb
mov ecx, esi
call fcn.10021250
test eax, eax
jne 0x10057eef
inc dword [esi + 0x20]
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov edx, dword [esp + 0x20]
mov word [eax + ecx*4], 0x36
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x1c]
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [esp + 0x2c]
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esp + 0x24]
mov ecx, eax
mov edx, dword [esp + 0x38]
mov edi, dword [eax + 8]
call fcn.10045eb0
cmp dword [edi + 4], 0
mov ecx, dword [edi]
mov dword [esp + 0x1c], eax
je 0x10057f50
cmp byte [ecx + 0x40], 0
jne 0x10057f50
mov edx, dword [edi + 0x20]
dec edx
lea eax, [edx + edx*4]
mov edx, dword [edi + 4]
push dword [edx + eax*4 + 0x10]
lea edi, [edx + eax*4]
movsx edx, byte [edi + 1]
call fcn.100217a0
mov eax, dword [esp + 0x20]
add esp, 4
test eax, eax
jne 0x10057f40
mov dword [edi + 0x10], eax
mov byte [edi + 1], al
jmp 0x10057f5e
mov dword [edi + 0x10], eax
mov byte [edi + 1], 0xfa
jmp 0x10057f5e
push eax
mov edx, 0xfffffffa
call fcn.100217a0
add esp, 4
mov eax, dword [esp + 0x20]
mov ebx, dword [ebx + 4]
inc eax
mov dword [esp + 0x20], eax
test ebx, ebx
jne 0x10057e20
mov edi, dword [esp + 0x34]
mov ecx, dword [esp + 0x24]
cmp dword [ecx + 0x44], eax
jge 0x10057f82
mov dword [ecx + 0x44], eax
mov eax, dword [esi + 0x18]
mov ebx, dword [esi + 0x20]
mov ecx, ebx
mov dword [esp + 0x28], ebx
cmp dword [eax + 0x54], ebx
jg 0x10057fab
mov ecx, esi
call fcn.10021250
test eax, eax
je 0x10057fa8
mov dword [esp + 0x28], 1
jmp 0x10057fe2
mov ecx, dword [esi + 0x20]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [ebx + ebx*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x6c
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov edi, dword [edi + 0x10]
mov dword [esp + 0x20], 1
mov dword [esp + 0x48], edi
test edi, edi
je 0x100585e7
mov ebx, dword [esp + 0x10]
nop dword [eax]
push dword [esp + 0x40]
mov edx, dword [edi + 8]
mov ecx, ebx
call fcn.1003ee40
mov ebx, eax
mov dword [esp + 0x3c], 0
add esp, 4
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x5c], 0
test ebx, ebx
je 0x10058044
mov ecx, dword [esp + 0x24]
lea eax, [esp + 0x5c]
push eax
lea eax, [esp + 0x3c]
mov edx, ebx
push eax
push edi
call fcn.1004be20
add esp, 0xc
mov ecx, esi
call fcn.10021480
mov dword [esp + 0x44], eax
test ebx, ebx
je 0x10058293
cmp dword [esp + 0x38], 0
jne 0x10058293
mov eax, dword [esi + 0x18]
mov ebx, dword [edi + 0x24]
mov edi, dword [esi + 0x20]
mov ecx, dword [eax + 0x54]
mov eax, dword [esp + 0x34]
movsx eax, word [eax + 0x24]
cmp ebx, eax
mov eax, edi
je 0x10058181
cmp ecx, edi
jg 0x10058092
mov ecx, esi
call fcn.10021250
test eax, eax
jne 0x100580c3
mov eax, dword [esi + 0x20]
mov edx, dword [esp + 0x30]
lea ecx, [edi + edi*4]
inc eax
mov dword [esi + 0x20], eax
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x2f
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], ebx
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
push dword [esp + 0x30]
mov edx, dword [esp + 0x38]
mov ecx, esi
push ebx
call fcn.10068c70
mov eax, dword [esi + 0x18]
add esp, 8
mov edi, dword [esi + 0x20]
mov ecx, edi
cmp dword [eax + 0x54], edi
jg 0x100580f1
mov ecx, esi
call fcn.10021250
test eax, eax
jne 0x10058128
mov ecx, dword [esi + 0x20]
mov edx, dword [esp + 0x30]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x4c
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x44]
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov edi, dword [esi + 0x20]
mov ecx, edi
mov eax, dword [esi + 0x18]
lea ebx, [edi + 3]
cmp dword [eax + 0x54], edi
jg 0x1005814a
mov ecx, esi
call fcn.10021250
test eax, eax
jne 0x100581ca
mov ecx, dword [esi + 0x20]
mov edx, dword [esp + 0x30]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x26
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], ebx
mov ebx, edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x100581ce
cmp ecx, edi
jg 0x10058193
mov ecx, esi
call fcn.10021250
test eax, eax
jne 0x100581ca
mov eax, dword [esi + 0x20]
mov ebx, dword [esp + 0x30]
lea ecx, [edi + edi*4]
inc eax
mov dword [esi + 0x20], eax
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x67
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], ebx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x100581ce
mov ebx, dword [esp + 0x30]
mov eax, dword [esi + 0x18]
mov edi, dword [esi + 0x20]
mov ecx, edi
cmp dword [eax + 0x54], edi
jg 0x100581e9
mov ecx, esi
call fcn.10021250
test eax, eax
jne 0x1005821c
mov ecx, dword [esi + 0x20]
mov edx, dword [esp + 0x20]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x46
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], ebx
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esi + 0x18]
mov edi, dword [esi + 0x20]
mov ecx, edi
cmp dword [eax + 0x54], edi
jg 0x10058237
mov ecx, esi
call fcn.10021250
test eax, eax
jne 0x1005826e
mov ecx, dword [esi + 0x20]
mov edx, dword [esp + 0x44]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x10
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov edx, dword [esi + 0x20]
lea eax, [edx - 2]
cmp edx, eax
jbe 0x10058285
lea ecx, [eax + eax*4]
mov eax, dword [esi + 4]
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [esi + 0x20]
mov eax, dword [esi + 0x18]
lea ecx, [edx - 1]
mov dword [eax + 0x58], ecx
jmp 0x100583f0
mov edi, dword [edi + 0x14]
xor ebx, ebx
test edi, edi
jle 0x10058348
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x30]
add eax, 0x24
mov dword [esp + 0x68], ecx
mov dword [esp + 0x6c], eax
mov edx, dword [esp + 0x5c]
test edx, edx
je 0x100582be
lea eax, [edx + ebx*4]
mov eax, dword [eax]
mov edx, dword [esp + 0x34]
push ecx
push eax
push 0
mov ecx, esi
call fcn.10036ff0
mov eax, dword [esi + 0x18]
add esp, 0xc
mov edi, dword [esi + 0x20]
mov ecx, edi
cmp dword [eax + 0x54], edi
jg 0x100582ed
mov ecx, esi
call fcn.10021250
test eax, eax
jne 0x10058324
mov ecx, dword [esi + 0x20]
mov edx, dword [esp + 0x68]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x4c
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x44]
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov edx, dword [esp + 0x48]
inc ebx
mov eax, dword [esp + 0x6c]
mov ecx, dword [esp + 0x68]
add eax, 8
inc ecx
mov dword [esp + 0x6c], eax
mov edi, dword [edx + 0x14]
mov dword [esp + 0x68], ecx
cmp ebx, edi
jl 0x100582b3
cmp dword [esp + 0x1c], 0
je 0x100583f0
mov edx, dword [esp + 0x38]
mov ecx, esi
call fcn.1004ea50
mov ecx, dword [esi + 0x18]
mov ebx, dword [esi + 0x20]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x48]
mov eax, dword [eax + 0x14]
mov dword [esp + 0x1c], eax
mov eax, ebx
cmp dword [ecx + 0x54], ebx
jg 0x1005838f
mov ecx, esi
call fcn.10021250
test eax, eax
je 0x1005838c
mov ebx, 1
jmp 0x100583c4
mov eax, dword [esi + 0x20]
mov edx, dword [esp + 0x30]
lea ecx, [ebx + ebx*4]
inc eax
mov dword [esi + 0x20], eax
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x31
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x1c]
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [esp + 0x70]
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
push edi
push dword [esp + 0x40]
mov edx, ebx
mov ecx, esi
call fcn.100219a0
mov edx, dword [esp + 0x28]
mov ecx, esi
push 0
push dword [esp + 0x7c]
push dword [esp + 0x54]
push edx
mov edx, 0x45
call fcn.100213c0
add esp, 0x18
mov eax, dword [esi + 0x18]
mov edi, dword [esi + 0x20]
mov ecx, edi
cmp dword [eax + 0x54], edi
jg 0x1005840b
mov ecx, esi
call fcn.10021250
test eax, eax
jne 0x10058443
mov ecx, dword [esi + 0x20]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x67
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 0
lea ecx, [eax + ecx*4]
mov eax, dword [esp + 0x4c]
inc eax
mov dword [ecx + 8], eax
mov dword [ecx + 0xc], 0
mov dword [ecx + 0x10], 0
mov eax, dword [esp + 0x48]
mov edi, dword [esi + 0x20]
mov ecx, edi
mov ebx, dword [eax + 8]
mov eax, dword [esi + 0x18]
cmp dword [eax + 0x54], edi
jg 0x1005846c
mov ecx, esi
call fcn.10021250
test eax, eax
je 0x10058469
mov edi, 1
jmp 0x100584a6
mov ecx, dword [esi + 0x20]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x61
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 0
lea ecx, [eax + ecx*4]
mov eax, dword [esp + 0x4c]
add eax, 2
mov dword [ecx + 8], eax
mov dword [ecx + 0xc], 0
mov dword [ecx + 0x10], 0
push 0
push ebx
mov edx, edi
mov ecx, esi
call fcn.100219a0
mov eax, dword [esi + 0x18]
add esp, 8
mov edi, dword [esi + 0x20]
mov ecx, edi
cmp dword [eax + 0x54], edi
jg 0x100584d0
mov ecx, esi
call fcn.10021250
test eax, eax
jne 0x1005850c
mov ecx, dword [esi + 0x20]
mov ebx, dword [esp + 0x4c]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x19
mov byte [eax + ecx*4 + 3], 0
lea ecx, [eax + ecx*4]
mov eax, dword [esp + 0x20]
dec eax
mov dword [ecx + 4], eax
lea eax, [ebx + 3]
mov dword [ecx + 8], eax
mov dword [ecx + 0xc], 0
mov dword [ecx + 0x10], 0
jmp 0x10058510
mov ebx, dword [esp + 0x4c]
mov eax, dword [esi + 0x18]
mov edi, dword [esi + 0x20]
cmp dword [eax + 0x54], edi
jg 0x10058526
mov ecx, esi
call fcn.10021250
test eax, eax
jne 0x10058556
inc dword [esi + 0x20]
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x23
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], ebx
mov dword [eax + ecx*4 + 8], 4
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ebx, dword [esp + 0x44]
mov eax, ebx
mov edx, dword [esi + 0x18]
neg eax
test eax, eax
jle 0x1005857a
mov ecx, dword [edx + 0x70]
test ecx, ecx
je 0x1005857a
lea eax, [ebx*4 + 4]
sub ecx, eax
mov eax, dword [esi + 0x20]
mov dword [ecx], eax
mov eax, dword [esi + 0x20]
mov ecx, dword [esp + 0x5c]
dec eax
mov ebx, dword [esp + 0x10]
mov dword [edx + 0x58], eax
test ecx, ecx
je 0x100585d0
cmp dword [ebx + 0x208], 0
je 0x100585a1
mov edx, ecx
mov ecx, ebx
call fcn.10004740
jmp 0x100585d0
cmp ecx, dword [ebx + 0x114]
jb 0x100585c7
cmp ecx, dword [ebx + 0x118]
jae 0x100585c7
mov eax, dword [ebx + 0x110]
mov dword [ecx], eax
mov dword [ebx + 0x110], ecx
dec dword [ebx + 0xfc]
jmp 0x100585d0
push ecx
call fcn.100046a0
add esp, 4
mov edi, dword [esp + 0x48]
inc dword [esp + 0x20]
mov edi, dword [edi + 4]
mov dword [esp + 0x48], edi
test edi, edi
jne 0x10058000
mov eax, dword [esi + 0x18]
mov edi, dword [esi + 0x20]
mov ecx, edi
cmp dword [eax + 0x54], edi
jg 0x10058602
mov ecx, esi
call fcn.10021250
test eax, eax
jne 0x1005863a
mov ecx, dword [esi + 0x20]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 9
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 0
lea ecx, [eax + ecx*4]
mov eax, dword [esp + 0x28]
inc eax
mov dword [ecx + 8], eax
mov dword [ecx + 0xc], 0
mov dword [ecx + 0x10], 0
mov edx, dword [esi + 0x20]
mov eax, dword [esp + 0x28]
cmp edx, eax
jbe 0x10058652
lea ecx, [eax + eax*4]
mov eax, dword [esi + 4]
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [esi + 0x20]
mov eax, dword [esi + 0x18]
lea ecx, [edx - 1]
mov dword [eax + 0x58], ecx
mov eax, dword [esp + 0x58]
test eax, eax
jne 0x10057ca5
jmp 0x10054a82
mov edi, dword [esp + 0x14]
test edi, edi
je 0x10056072
push 0
mov edx, 1
mov ecx, edi
call fcn.10054510
mov edi, dword [esp + 0x14]
add esp, 4
xor ebx, ebx
mov ecx, 0x100dadfc
test al, al
mov esi, 0x100dbb40
mov edx, 0x100d89d4
push 0
push 0
setne bl
test al, al
push 0
cmove esi, ecx
mov ecx, edi
push 0x10049e50
push esi
push 1
push 2
call fcn.1007cef0
add esp, 0x1c
mov edx, 0x100d89d4
mov ecx, edi
push 0
push 0
push 0
push 0x10049e50
push esi
push 1
push 3
call fcn.1007cef0
add esp, 0x1c
mov edx, 0x100d89dc
mov ecx, edi
push 0
push 0
push 0
push 0x10049e50
push 0x100dbe04
push 1
push 2
call fcn.1007cef0
add esp, 0x1c
mov eax, 0x100d89dc
nop dword [eax]
inc eax
cmp byte [eax], 0
jne 0x10058710
push 0
sub eax, 0x100d89dc
mov edx, 0x100d89dc
push 1
and eax, 0x3fffffff
mov ecx, edi
push 2
push eax
call fcn.100468f0
add esp, 0x10
test eax, eax
je 0x1005873f
or word [eax + 2], 0xc
mov eax, 0x100d89d4
inc eax
cmp byte [eax], 0
jne 0x10058744
push 0
sub eax, 0x100d89d4
mov edx, 0x100d89d4
push 1
and eax, 0x3fffffff
mov ecx, edi
push 2
push eax
call fcn.100468f0
add esp, 0x10
test eax, eax
je 0x10058780
xor ecx, ecx
test ebx, ebx
setne cl
lea ecx, [ecx*8 + 4]
or word [eax + 2], cx
mov ecx, edi
jmp 0x10054a86
mov eax, dword [esp + 0x18]
or ecx, 0xffffffff
mov edx, dword [esp + 0x50]
movzx eax, byte [eax]
mov al, byte [eax + 0x100dc190]
mov byte [esp + 0x57], al
mov eax, dword [ebp + 8]
cmp dword [eax], 0
mov eax, dword [esp + 0x2c]
cmove eax, ecx
mov dword [edx], 6
lea edx, [ecx + 2]
mov dword [esp + 0x2c], eax
mov ecx, esi
call fcn.10022a10
mov eax, dword [esi]
cmp byte [eax + 0x40], 0
jne 0x100587de
mov ecx, dword [esi + 0x10]
mov edx, 0x100d8edc
push 0
push 1
push 0xffffffffffffffff
call fcn.10020860
add esp, 0xc
mov eax, dword [esp + 0x14]
mov ebx, 0x64
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x58], ebx
test eax, eax
je 0x10058810
lea edx, [esp + 0x58]
mov ecx, eax
call fcn.10007e10
mov ebx, dword [esp + 0x58]
mov eax, 0x64
test ebx, ebx
cmovle ebx, eax
mov dword [esp + 0x1c], ebx
mov eax, dword [esi + 0x18]
mov edi, dword [esi + 0x20]
mov ecx, edi
cmp dword [eax + 0x54], edi
jg 0x1005882b
mov ecx, esi
call fcn.10021250
test eax, eax
jne 0x1005885e
mov ecx, dword [esi + 0x20]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x19
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], ebx
mov dword [eax + ecx*4 + 8], 1
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esp + 0x10]
xor eax, eax
mov dword [esp + 0x34], eax
cmp dword [ecx + 0x14], eax
jle 0x10059ef0
mov edx, dword [esp + 0x2c]
xor ebx, ebx
mov dword [esp + 0x20], ebx
test edx, edx
js 0x10058887
cmp eax, edx
jne 0x10059ee2
mov ecx, dword [esp + 0x24]
mov edi, ecx
mov eax, dword [ecx + 0x198]
test eax, eax
mov ecx, dword [esp + 0x34]
cmovne edi, eax
mov eax, dword [edi]
mov edx, dword [edi + 0x14c]
mov dword [esp + 0x3c], eax
mov eax, 1
shl eax, cl
test edx, eax
jne 0x100588e0
mov eax, dword [esp + 0x3c]
bts edx, ecx
mov dword [edi + 0x14c], edx
mov edx, ecx
add edx, edx
mov eax, dword [eax + 0x10]
mov eax, dword [eax + edx*8 + 0xc]
mov eax, dword [eax]
mov dword [edi + ecx*4 + 0x150], eax
cmp ecx, 1
jne 0x100588e0
mov ecx, edi
call fcn.10045430
mov eax, dword [esi + 0x18]
mov edi, dword [esi + 0x20]
mov ecx, edi
cmp dword [eax + 0x54], edi
jg 0x10058902
mov ecx, esi
call fcn.10021250
test eax, eax
je 0x100588ff
mov edi, 1
jmp 0x1005892c
mov ecx, dword [esi + 0x20]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x89
mov byte [eax + ecx*4 + 3], bl
mov dword [eax + ecx*4 + 4], 1
mov dword [eax + ecx*4 + 8], ebx
mov dword [eax + ecx*4 + 0xc], ebx
mov dword [eax + ecx*4 + 0x10], ebx
mov eax, dword [esi + 0x18]
mov ecx, dword [esi + 0x20]
mov edx, ecx
mov dword [esp + 0x3c], ecx
cmp dword [eax + 0x54], ecx
jg 0x1005894f
mov ecx, esi
call fcn.10021250
test eax, eax
jne 0x10058975
mov edx, dword [esi + 0x20]
mov ecx, dword [esp + 0x3c]
lea eax, [edx + 1]
mov dword [esi + 0x20], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x18
mov byte [eax + ecx*4 + 3], bl
mov dword [eax + ecx*4 + 4], ebx
mov dword [eax + ecx*4 + 8], ebx
mov dword [eax + ecx*4 + 0xc], ebx
mov dword [eax + ecx*4 + 0x10], ebx
mov edx, dword [esi + 0x20]
cmp edx, edi
jbe 0x10058989
mov eax, dword [esi + 4]
lea ecx, [edi + edi*4]
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [esi + 0x20]
mov eax, dword [esi + 0x18]
lea ecx, [edx - 1]
mov dword [eax + 0x58], ecx
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x34]
shl ecx, 4
mov dword [esp + 0x6c], ecx
mov eax, dword [eax + 0x10]
mov eax, dword [ecx + eax + 0xc]
mov dword [esp + 0x28], eax
mov eax, dword [eax + 0x10]
mov dword [esp + 0x58], eax
test eax, eax
je 0x10058aab
nop dword [eax + eax]
mov eax, dword [eax + 8]
mov dword [esp + 0x70], eax
test byte [eax + 0x2c], 0x20
jne 0x10058a2d
mov eax, dword [eax + 0x20]
mov edi, dword [esi + 0x20]
mov ecx, edi
mov dword [esp + 0x3c], eax
mov eax, dword [esi + 0x18]
cmp dword [eax + 0x54], edi
jg 0x100589ef
mov ecx, esi
call fcn.10021250
test eax, eax
jne 0x10058a24
mov ecx, dword [esi + 0x20]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x19
mov byte [eax + ecx*4 + 3], 0
lea ecx, [eax + ecx*4]
mov eax, dword [esp + 0x3c]
mov dword [ecx + 4], eax
lea eax, [ebx + 2]
mov dword [ecx + 8], eax
mov dword [ecx + 0xc], 0
mov dword [ecx + 0x10], 0
mov eax, dword [esp + 0x70]
inc ebx
mov dword [esp + 0x20], ebx
mov edi, dword [eax + 8]
test edi, edi
je 0x10058a99
mov eax, dword [edi + 0x2c]
mov ebx, dword [esi + 0x20]
mov dword [esp + 0x3c], eax
mov eax, dword [esi + 0x18]
cmp dword [eax + 0x54], ebx
jg 0x10058a51
mov ecx, esi
call fcn.10021250
test eax, eax
jne 0x10058a89
inc dword [esi + 0x20]
lea ecx, [ebx + ebx*4]
mov eax, dword [esi + 4]
mov ebx, dword [esp + 0x20]
mov word [eax + ecx*4], 0x19
mov byte [eax + ecx*4 + 3], 0
lea ecx, [eax + ecx*4]
mov eax, dword [esp + 0x3c]
mov dword [ecx + 4], eax
lea eax, [ebx + 2]
mov dword [ecx + 8], eax
mov dword [ecx + 0xc], 0
mov dword [ecx + 0x10], 0
jmp 0x10058a8d
mov ebx, dword [esp + 0x20]
mov edi, dword [edi + 0x14]
inc ebx
mov dword [esp + 0x20], ebx
test edi, edi
jne 0x10058a34
mov eax, dword [esp + 0x58]
mov eax, dword [eax]
mov dword [esp + 0x58], eax
test eax, eax
jne 0x100589c0
mov edx, dword [esp + 0x50]
lea eax, [ebx + 8]
mov ecx, dword [edx]
cmp ecx, eax
cmovle ecx, eax
mov dword [edx], ecx
mov eax, dword [esi + 0x18]
mov edi, dword [esi + 0x20]
mov ecx, edi
cmp dword [eax + 0x54], edi
jg 0x10058ad6
mov ecx, esi
call fcn.10021250
test eax, eax
jne 0x10058b09
mov ecx, dword [esi + 0x20]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x7f
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 2
mov dword [eax + ecx*4 + 8], ebx
mov dword [eax + ecx*4 + 0xc], 1
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x10058b1e
mov eax, dword [esi + 0x20]
mov edx, dword [esp + 0x34]
lea eax, [eax + eax*4]
mov byte [ecx + eax*4 - 0x11], dl
mov eax, dword [esi + 0x18]
mov edi, dword [esi + 0x20]
mov ecx, edi
cmp dword [eax + 0x54], edi
jg 0x10058b40
mov ecx, esi
call fcn.10021250
test eax, eax
je 0x10058b3d
mov edi, 1
jmp 0x10058b77
mov ecx, dword [esi + 0x20]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x4c
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 2
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x6c]
mov eax, dword [edx + 0x10]
push dword [ecx + eax]
push 0x100d9284
push edx
call fcn.100065c0
mov ecx, dword [esi + 0x18]
add esp, 0xc
mov ebx, dword [esi + 0x20]
mov dword [esp + 0x3c], eax
mov eax, ebx
cmp dword [ecx + 0x54], ebx
jg 0x10058bb9
mov ecx, esi
call fcn.10021250
test eax, eax
je 0x10058bb6
mov ebx, 1
jmp 0x10058bee
mov eax, dword [esi + 0x20]
inc eax
lea ecx, [ebx + ebx*4]
mov dword [esi + 0x20], eax
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x61
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], 3
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
push 0xffffffffffffffff
push dword [esp + 0x40]
mov edx, ebx
mov ecx, esi
call fcn.100219a0
mov eax, dword [esi + 0x18]
add esp, 8
mov ebx, dword [esi + 0x20]
mov ecx, ebx
cmp dword [eax + 0x54], ebx
jg 0x10058c1b
mov ecx, esi
call fcn.10021250
test eax, eax
jne 0x10058c52
mov ecx, dword [esi + 0x20]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [ebx + ebx*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x20
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 2
mov dword [eax + ecx*4 + 8], 4
mov dword [eax + ecx*4 + 0xc], 1
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esi + 0x18]
mov ebx, dword [esi + 0x20]
mov ecx, ebx
cmp dword [eax + 0x54], ebx
jg 0x10058c6d
mov ecx, esi
call fcn.10021250
test eax, eax
jne 0x10058ca4
mov ecx, dword [esi + 0x20]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [ebx + ebx*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x5e
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 4
mov dword [eax + ecx*4 + 8], 3
mov dword [eax + ecx*4 + 0xc], 2
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esi + 0x18]
mov ebx, dword [esi + 0x20]
mov ecx, ebx
cmp dword [eax + 0x54], ebx
jg 0x10058cbf
mov ecx, esi
call fcn.10021250
test eax, eax
jne 0x10058cf6
mov ecx, dword [esi + 0x20]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [ebx + ebx*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x23
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 2
mov dword [eax + ecx*4 + 8], 1
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov edx, dword [esi + 0x20]
cmp edx, edi
jbe 0x10058d0a
mov eax, dword [esi + 4]
lea ecx, [edi + edi*4]
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [esi + 0x20]
mov eax, dword [esi + 0x18]
lea ecx, [edx - 1]
mov dword [eax + 0x58], ecx
mov eax, dword [esp + 0x28]
mov eax, dword [eax + 0x10]
mov dword [esp + 0x3c], eax
test eax, eax
je 0x10059ed6
mov cl, byte [esp + 0x57]
nop word [eax + eax]
cmp cl, 0x71
je 0x10059ed6
mov eax, dword [eax + 8]
mov dword [esp + 0x38], eax
mov dword [esp + 0x6c], 0
mov dword [esp + 0x20], 0xffffffff
mov edx, dword [eax + 8]
test edx, edx
je 0x10059ec4
test byte [eax + 0x2c], 0x20
jne 0x10058d70
mov dword [esp + 0x40], 0
jmp 0x10058d84
mov eax, dword [edx + 0x38]
and al, 3
cmp al, 2
je 0x10058d80
mov edx, dword [edx + 0x14]
test edx, edx
jne 0x10058d70
mov dword [esp + 0x40], edx
mov eax, dword [esi + 0x18]
mov edi, dword [esi + 0x20]
mov ecx, edi
cmp dword [eax + 0x54], edi
jg 0x10058da6
mov ecx, esi
call fcn.10021250
test eax, eax
je 0x10058da3
mov edi, 1
jmp 0x10058ddd
mov ecx, dword [esi + 0x20]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x89
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 1
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esi + 0x18]
mov ebx, dword [esi + 0x20]
mov ecx, ebx
cmp dword [eax + 0x54], ebx
jg 0x10058df8
mov ecx, esi
call fcn.10021250
test eax, eax
jne 0x10058e2f
mov ecx, dword [esi + 0x20]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [ebx + ebx*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x18
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov edx, dword [esi + 0x20]
cmp edx, edi
jbe 0x10058e43
mov eax, dword [esi + 4]
lea ecx, [edi + edi*4]
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [esi + 0x20]
mov eax, dword [esi + 0x18]
lea ecx, [edx - 1]
mov dword [eax + 0x58], ecx
mov ecx, dword [esp + 0x24]
call fcn.10037280
mov ebx, dword [esp + 0x38]
lea eax, [esp + 0x74]
push eax
lea eax, [esp + 0x48]
mov edx, ebx
push eax
push 0
push 1
push 0x36
call fcn.100526d0
mov eax, dword [esi + 0x18]
add esp, 0x14
mov edi, dword [esi + 0x20]
mov ecx, edi
cmp dword [eax + 0x54], edi
jg 0x10058e8e
mov ecx, esi
call fcn.10021250
test eax, eax
jne 0x10058ec5
mov ecx, dword [esi + 0x20]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x19
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], 7
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ebx, dword [ebx + 8]
xor edx, edx
mov dword [esp + 0x28], edx
test ebx, ebx
je 0x10058f33
mov eax, dword [esi + 0x18]
mov edi, dword [esi + 0x20]
mov ecx, edi
cmp dword [eax + 0x54], edi
jg 0x10058ef1
mov ecx, esi
call fcn.10021250
mov edx, dword [esp + 0x28]
test eax, eax
jne 0x10058f27
mov ecx, dword [esi + 0x20]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x19
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 0
lea ecx, [eax + ecx*4]
lea eax, [edx + 8]
mov dword [ecx + 8], eax
mov dword [ecx + 0xc], 0
mov dword [ecx + 0x10], 0
mov ebx, dword [ebx + 0x14]
inc edx
mov dword [esp + 0x28], edx
test ebx, ebx
jne 0x10058ed2
mov ebx, dword [esp + 0x50]
lea eax, [edx + 8]
mov ecx, dword [ebx]
cmp ecx, eax
cmovle ecx, eax
mov dword [ebx], ecx
mov eax, dword [esi + 0x18]
mov edi, dword [esi + 0x20]
mov ecx, edi
cmp dword [eax + 0x54], edi
jg 0x10058f5e
mov ecx, esi
call fcn.10021250
test eax, eax
jne 0x10058f97
mov ecx, dword [esi + 0x20]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov edi, dword [esp + 0x44]
mov word [eax + ecx*4], 0x6c
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], edi
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x10058f9b
mov edi, dword [esp + 0x44]
mov eax, dword [esi + 0x18]
mov edx, dword [esi + 0x20]
mov ecx, edx
mov dword [esp + 0x4c], edx
cmp dword [eax + 0x54], edx
jg 0x10058fc8
mov ecx, esi
call fcn.10021250
test eax, eax
je 0x10058fc1
mov dword [esp + 0x4c], 1
jmp 0x10058fff
mov ecx, dword [esi + 0x20]
mov edx, dword [esp + 0x4c]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [edx + edx*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x25
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 7
mov dword [eax + ecx*4 + 8], 1
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ebx, dword [esp + 0x38]
xor ecx, ecx
xor eax, eax
mov dword [esp + 0x70], ecx
cmp ax, word [ebx + 0x26]
jge 0x100592fa
xor edx, edx
mov dword [esp + 0x28], edx
nop dword [eax + eax]
movsx eax, word [ebx + 0x24]
cmp ecx, eax
je 0x100592de
mov eax, dword [ebx + 4]
cmp byte [eax + edx + 0x14], 0
je 0x100592de
push 3
push ecx
push edi
mov edx, ebx
mov ecx, esi
call fcn.10036ff0
mov ecx, dword [esi + 4]
add esp, 0xc
test ecx, ecx
je 0x1005905c
mov eax, dword [esi + 0x20]
lea eax, [eax + eax*4]
mov byte [ecx + eax*4 - 0x11], 0x80
mov eax, dword [esi + 0x18]
mov ebx, dword [esi + 0x20]
mov ecx, ebx
mov dword [esp + 0x58], ebx
cmp dword [eax + 0x54], ebx
jg 0x10059085
mov ecx, esi
call fcn.10021250
test eax, eax
je 0x10059082
mov dword [esp + 0x58], 1
jmp 0x100590bc
mov ecx, dword [esi + 0x20]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [ebx + ebx*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x4d
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 3
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esi + 0x18]
mov edi, dword [esi + 0x20]
mov ecx, edi
cmp dword [eax + 0x54], edi
jg 0x100590d7
mov ecx, esi
call fcn.10021250
test eax, eax
jne 0x1005910e
mov ecx, dword [esi + 0x20]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x25
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 1
mov dword [eax + ecx*4 + 8], 0xffffffff
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x28]
mov eax, dword [edx + 4]
push dword [eax + ecx]
push dword [edx]
push 0x100d929c
push dword [esp + 0x1c]
call fcn.100065c0
mov ecx, dword [esi + 0x18]
add esp, 0x10
mov edi, dword [esi + 0x20]
mov ebx, eax
mov eax, edi
cmp dword [ecx + 0x54], edi
jg 0x10059153
mov ecx, esi
call fcn.10021250
test eax, eax
je 0x10059150
mov edi, 1
jmp 0x10059188
mov eax, dword [esi + 0x20]
inc eax
lea ecx, [edi + edi*4]
mov dword [esi + 0x20], eax
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x61
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], 3
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
push 0xffffffffffffffff
push ebx
mov edx, edi
mov ecx, esi
call fcn.100219a0
mov eax, dword [esi + 0x18]
add esp, 8
mov edi, dword [esi + 0x20]
mov ecx, edi
cmp dword [eax + 0x54], edi
jg 0x100591b2
mov ecx, esi
call fcn.10021250
test eax, eax
jne 0x100591e9
mov ecx, dword [esi + 0x20]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x23
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 3
mov dword [eax + ecx*4 + 8], 1
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esi + 0x18]
mov edi, dword [esi + 0x20]
mov ecx, edi
cmp dword [eax + 0x54], edi
jg 0x1005920b
mov ecx, esi
call fcn.10021250
test eax, eax
je 0x10059208
mov edi, 1
jmp 0x10059242
mov ecx, dword [esi + 0x20]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x89
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 1
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esi + 0x18]
mov ebx, dword [esi + 0x20]
mov ecx, ebx
cmp dword [eax + 0x54], ebx
jg 0x1005925d
mov ecx, esi
call fcn.10021250
test eax, eax
jne 0x10059294
mov ecx, dword [esi + 0x20]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [ebx + ebx*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x18
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov edx, dword [esi + 0x20]
mov eax, dword [esp + 0x58]
cmp edx, eax
jbe 0x100592ac
lea ecx, [eax + eax*4]
mov eax, dword [esi + 4]
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [esi + 0x20]
mov eax, dword [esi + 0x18]
lea ecx, [edx - 1]
mov dword [eax + 0x58], ecx
mov edx, dword [esi + 0x20]
cmp edx, edi
jbe 0x100592c9
mov eax, dword [esi + 4]
lea ecx, [edi + edi*4]
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [esi + 0x20]
mov eax, dword [esi + 0x18]
lea ecx, [edx - 1]
mov edx, dword [esp + 0x28]
mov ebx, dword [esp + 0x38]
mov dword [eax + 0x58], ecx
mov ecx, dword [esp + 0x70]
movsx eax, word [ebx + 0x26]
inc ecx
mov edi, dword [esp + 0x44]
add edx, 0x18
mov dword [esp + 0x70], ecx
mov dword [esp + 0x28], edx
cmp ecx, eax
jl 0x10059020
mov edi, dword [ebx + 8]
mov dword [esp + 0x30], edi
test edi, edi
je 0x10059ad7
mov eax, dword [esp + 0x74]
mov ecx, 8
sub ecx, eax
mov dword [esp + 0x48], eax
mov dword [esp + 0x58], ecx
nop dword [eax]
mov ecx, esi
call fcn.10021480
mov ebx, eax
cmp dword [esp + 0x40], edi
je 0x10059ac0
push dword [esp + 0x20]
mov ecx, dword [esp + 0x28]
lea eax, [esp + 0x64]
push dword [esp + 0x70]
mov edx, edi
push eax
push 0
push 0
push dword [esp + 0x58]
call fcn.10048610
mov ecx, dword [esi + 0x18]
add esp, 0x18
mov dword [esp + 0x6c], edi
mov edi, dword [esi + 0x20]
mov dword [esp + 0x20], eax
mov eax, edi
cmp dword [ecx + 0x54], edi
jg 0x10059379
mov ecx, esi
call fcn.10021250
test eax, eax
jne 0x100593b1
mov eax, dword [esi + 0x20]
inc eax
lea ecx, [edi + edi*4]
mov dword [esi + 0x20], eax
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x25
mov byte [eax + ecx*4 + 3], 0
lea ecx, [eax + ecx*4]
mov eax, dword [esp + 0x58]
add eax, dword [esp + 0x48]
mov dword [ecx + 4], eax
mov dword [ecx + 8], 1
mov dword [ecx + 0xc], 0
mov dword [ecx + 0x10], 0
mov eax, dword [esp + 0x30]
mov edx, 0x45
mov ecx, esi
movzx eax, word [eax + 0x34]
push eax
push dword [esp + 0x24]
push ebx
push dword [esp + 0x54]
call fcn.100213c0
mov ecx, dword [esi + 0x18]
add esp, 0x10
mov edi, dword [esi + 0x20]
mov ebx, eax
mov eax, edi
cmp dword [ecx + 0x54], edi
jg 0x100593ef
mov ecx, esi
call fcn.10021250
test eax, eax
jne 0x10059424
mov eax, dword [esi + 0x20]
inc eax
lea ecx, [edi + edi*4]
mov dword [esi + 0x20], eax
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x25
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 1
mov dword [eax + ecx*4 + 8], 0xffffffff
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esi + 0x18]
mov edi, dword [esi + 0x20]
mov ecx, edi
cmp dword [eax + 0x54], edi
jg 0x10059446
mov ecx, esi
call fcn.10021250
test eax, eax
je 0x10059443
mov edi, 1
jmp 0x1005947d
mov ecx, dword [esi + 0x20]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x61
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], 3
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
push 0xfffffffffffffffe
push 0x100d92b0
mov edx, edi
mov ecx, esi
call fcn.100219a0
mov eax, dword [esi + 0x18]
add esp, 8
mov edi, dword [esi + 0x20]
mov ecx, edi
cmp dword [eax + 0x54], edi
jg 0x100594ab
mov ecx, esi
call fcn.10021250
test eax, eax
jne 0x100594e2
mov ecx, dword [esi + 0x20]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x5e
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 7
mov dword [eax + ecx*4 + 8], 3
mov dword [eax + ecx*4 + 0xc], 3
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esi + 0x18]
mov edi, dword [esi + 0x20]
mov ecx, edi
cmp dword [eax + 0x54], edi
jg 0x10059504
mov ecx, esi
call fcn.10021250
test eax, eax
je 0x10059501
mov edi, 1
jmp 0x1005953b
mov ecx, dword [esi + 0x20]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x61
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], 4
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
push 0xfffffffffffffffe
push 0x100d92b8
mov edx, edi
mov ecx, esi
call fcn.100219a0
mov eax, dword [esi + 0x18]
add esp, 8
mov edi, dword [esi + 0x20]
mov ecx, edi
cmp dword [eax + 0x54], edi
jg 0x10059569
mov ecx, esi
call fcn.10021250
test eax, eax
jne 0x100595a0
mov ecx, dword [esi + 0x20]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x5e
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 4
mov dword [eax + ecx*4 + 8], 3
mov dword [eax + ecx*4 + 0xc], 3
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esp + 0x30]
mov edx, dword [esi + 0x20]
mov ecx, edx
mov dword [esp + 0x5c], edx
mov edi, dword [eax]
mov eax, dword [esi + 0x18]
cmp dword [eax + 0x54], edx
jg 0x100595d4
mov ecx, esi
call fcn.10021250
test eax, eax
je 0x100595cd
mov edx, 1
mov dword [esp + 0x5c], edx
jmp 0x1005960b
mov ecx, dword [esi + 0x20]
mov edx, dword [esp + 0x5c]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [edx + edx*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x61
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], 4
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
push 0
push edi
mov ecx, esi
call fcn.100219a0
mov eax, dword [esi + 0x18]
add esp, 8
mov edi, dword [esi + 0x20]
mov ecx, edi
cmp dword [eax + 0x54], edi
jg 0x10059633
mov ecx, esi
call fcn.10021250
test eax, eax
jne 0x1005966a
mov ecx, dword [esi + 0x20]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x5e
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 4
mov dword [eax + ecx*4 + 8], 3
mov dword [eax + ecx*4 + 0xc], 3
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esi + 0x18]
mov edi, dword [esi + 0x20]
mov ecx, edi
cmp dword [eax + 0x54], edi
jg 0x10059685
mov ecx, esi
call fcn.10021250
test eax, eax
jne 0x100596bc
mov ecx, dword [esi + 0x20]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x23
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 3
mov dword [eax + ecx*4 + 8], 1
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esi + 0x18]
mov edx, dword [esi + 0x20]
mov ecx, edx
mov dword [esp + 0x68], edx
cmp dword [eax + 0x54], edx
jg 0x100596e9
mov ecx, esi
call fcn.10021250
test eax, eax
je 0x100596e2
mov dword [esp + 0x68], 1
jmp 0x10059720
mov ecx, dword [esi + 0x20]
mov edx, dword [esp + 0x68]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [edx + edx*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x89
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 1
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esi + 0x18]
mov edi, dword [esi + 0x20]
mov ecx, edi
cmp dword [eax + 0x54], edi
jg 0x1005973b
mov ecx, esi
call fcn.10021250
test eax, eax
jne 0x10059772
mov ecx, dword [esi + 0x20]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x18
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov edx, dword [esi + 0x20]
cmp edx, ebx
jbe 0x10059786
mov eax, dword [esi + 4]
lea ecx, [ebx + ebx*4]
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [esi + 0x20]
mov eax, dword [esi + 0x18]
lea ecx, [edx - 1]
mov edi, dword [esp + 0x30]
mov dword [eax + 0x58], ecx
cmp byte [edi + 0x36], 0
je 0x10059a66
mov ecx, esi
call fcn.10021480
mov dword [esp + 0x28], eax
xor ecx, ecx
mov eax, dword [esp + 0x30]
xor edi, edi
cmp cx, word [eax + 0x32]
jae 0x1005983c
jmp 0x100597c4
mov eax, dword [esp + 0x30]
mov eax, dword [eax + 4]
movsx eax, word [eax + edi*2]
lea ecx, [eax + eax*2]
mov eax, dword [esp + 0x38]
mov eax, dword [eax + 4]
cmp byte [eax + ecx*8 + 0x14], 0
jne 0x1005982f
mov eax, dword [esi + 0x18]
mov ebx, dword [esi + 0x20]
mov ecx, ebx
cmp dword [eax + 0x54], ebx
jg 0x100597f7
mov ecx, esi
call fcn.10021250
test eax, eax
jne 0x1005982f
mov ecx, dword [esi + 0x20]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [ebx + ebx*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x4c
mov byte [eax + ecx*4 + 3], 0
lea ecx, [eax + ecx*4]
mov eax, dword [esp + 0x20]
add eax, edi
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x28]
mov dword [ecx + 8], eax
mov dword [ecx + 0xc], 0
mov dword [ecx + 0x10], 0
mov eax, dword [esp + 0x30]
inc edi
movzx eax, word [eax + 0x32]
cmp edi, eax
jl 0x100597c0
mov eax, dword [esi + 0x18]
mov edi, dword [esi + 0x20]
mov ecx, edi
cmp dword [eax + 0x54], edi
jg 0x1005985e
mov ecx, esi
call fcn.10021250
test eax, eax
je 0x1005985b
mov edi, 1
jmp 0x10059895
mov ecx, dword [esi + 0x20]
mov edx, dword [esp + 0x48]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 9
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esi + 0x18]
mov ebx, dword [esi + 0x20]
mov ecx, ebx
cmp dword [eax + 0x54], ebx
jg 0x100598b0
mov ecx, esi
call fcn.10021250
test eax, eax
jne 0x100598e9
mov ecx, dword [esi + 0x20]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [ebx + ebx*4]
mov eax, dword [esi + 4]
mov ebx, dword [esp + 0x28]
mov word [eax + ecx*4], 0x10
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], ebx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x100598ed
mov ebx, dword [esp + 0x28]
mov edx, dword [esi + 0x20]
cmp edx, edi
jbe 0x10059901
mov eax, dword [esi + 4]
lea ecx, [edi + edi*4]
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [esi + 0x20]
mov eax, dword [esi + 0x18]
lea ecx, [edx - 1]
mov edx, 0x72
mov dword [eax + 0x58], ecx
mov ecx, esi
mov eax, dword [esp + 0x30]
movzx eax, word [eax + 0x32]
push eax
push dword [esp + 0x24]
push ebx
push dword [esp + 0x54]
call fcn.100213c0
mov eax, dword [esi + 0x18]
add esp, 0x10
mov edi, dword [esi + 0x20]
mov ecx, edi
cmp dword [eax + 0x54], edi
jg 0x10059946
mov ecx, esi
call fcn.10021250
test eax, eax
jne 0x1005997d
mov ecx, dword [esi + 0x20]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x25
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 1
mov dword [eax + ecx*4 + 8], 0xffffffff
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esi + 0x18]
mov edi, dword [esi + 0x20]
mov ecx, edi
cmp dword [eax + 0x54], edi
jg 0x1005999f
mov ecx, esi
call fcn.10021250
test eax, eax
je 0x1005999c
mov edi, 1
jmp 0x100599d6
mov ecx, dword [esi + 0x20]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x61
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], 3
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
push 0xfffffffffffffffe
push 0x100d92d0
mov edx, edi
mov ecx, esi
call fcn.100219a0
mov eax, dword [esi + 0x18]
add esp, 8
mov edi, dword [esi + 0x20]
mov ecx, edi
cmp dword [eax + 0x54], edi
jg 0x10059a04
mov ecx, esi
call fcn.10021250
test eax, eax
jne 0x10059a3b
mov ecx, dword [esi + 0x20]
mov edx, dword [esp + 0x5c]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x10
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov edx, dword [esi + 0x18]
mov eax, ebx
neg eax
test eax, eax
jle 0x10059a5b
mov ecx, dword [edx + 0x70]
test ecx, ecx
je 0x10059a5b
lea eax, [ebx*4 + 4]
sub ecx, eax
mov eax, dword [esi + 0x20]
mov dword [ecx], eax
mov eax, dword [esi + 0x20]
mov edi, dword [esp + 0x30]
dec eax
mov dword [edx + 0x58], eax
mov edx, dword [esi + 0x20]
mov eax, dword [esp + 0x68]
cmp edx, eax
jbe 0x10059a7e
lea ecx, [eax + eax*4]
mov eax, dword [esi + 4]
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [esi + 0x20]
mov eax, dword [esi + 0x18]
lea ecx, [edx - 1]
mov dword [eax + 0x58], ecx
mov ecx, dword [esp + 0x60]
test ecx, ecx
je 0x10059ac0
mov eax, dword [esp + 0x24]
not ecx
mov edx, dword [eax + 8]
mov ebx, dword [edx + 0x18]
test ecx, ecx
js 0x10059aac
mov edi, dword [ebx + 0x70]
test edi, edi
je 0x10059aac
mov eax, dword [edx + 0x20]
mov dword [edi + ecx*4], eax
mov eax, dword [edx + 0x20]
mov ecx, dword [esp + 0x24]
dec eax
mov dword [ebx + 0x58], eax
call fcn.10036fa0
mov edi, dword [esp + 0x30]
mov edi, dword [edi + 0x14]
inc dword [esp + 0x48]
mov dword [esp + 0x30], edi
test edi, edi
jne 0x10059320
mov ebx, dword [esp + 0x38]
mov eax, dword [esi + 0x18]
mov edi, dword [esi + 0x20]
mov ecx, edi
cmp dword [eax + 0x54], edi
jg 0x10059af2
mov ecx, esi
call fcn.10021250
test eax, eax
jne 0x10059b2b
mov ecx, dword [esi + 0x20]
mov edx, dword [esp + 0x44]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 9
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x4c]
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x10059b2f
mov edx, dword [esp + 0x4c]
lea eax, [edx - 1]
mov edx, dword [esi + 0x20]
cmp edx, eax
jbe 0x10059b46
lea ecx, [eax + eax*4]
mov eax, dword [esi + 4]
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [esi + 0x20]
mov eax, dword [esi + 0x18]
lea ecx, [edx - 1]
mov dword [eax + 0x58], ecx
mov eax, dword [esi + 0x18]
mov edi, dword [esi + 0x20]
mov ecx, edi
cmp dword [eax + 0x54], edi
jg 0x10059b71
mov ecx, esi
call fcn.10021250
test eax, eax
je 0x10059b6e
mov edi, 1
jmp 0x10059ba8
mov ecx, dword [esi + 0x20]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x61
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], 2
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
push 0xfffffffffffffffe
push 0x100d92ec
mov edx, edi
mov ecx, esi
call fcn.100219a0
mov eax, dword [ebx + 8]
add esp, 8
mov dword [esp + 0x4c], eax
test eax, eax
je 0x10059ec0
mov edx, dword [esp + 0x40]
mov ecx, 8
mov dword [esp + 0x20], ecx
cmp edx, eax
je 0x10059eac
mov eax, dword [esi + 0x18]
mov ebx, dword [esi + 0x20]
mov ecx, ebx
cmp dword [eax + 0x54], ebx
jg 0x10059bfa
mov ecx, esi
call fcn.10021250
test eax, eax
jne 0x10059c30
mov ecx, dword [esi + 0x20]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [ebx + ebx*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x89
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 1
lea ecx, [eax + ecx*4]
lea eax, [ebx + 2]
mov dword [ecx + 8], eax
mov dword [ecx + 0xc], 0
mov dword [ecx + 0x10], 0
mov eax, dword [esi + 0x18]
mov edi, dword [esi + 0x20]
mov ecx, edi
cmp dword [eax + 0x54], edi
jg 0x10059c4b
mov ecx, esi
call fcn.10021250
test eax, eax
jne 0x10059c82
mov ecx, dword [esi + 0x20]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x18
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esi + 0x18]
mov edi, dword [esi + 0x20]
mov ecx, edi
cmp dword [eax + 0x54], edi
jg 0x10059c9d
mov ecx, esi
call fcn.10021250
test eax, eax
jne 0x10059cda
mov ecx, dword [esi + 0x20]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x32
mov byte [eax + ecx*4 + 3], 0
lea ecx, [eax + ecx*4]
mov eax, dword [esp + 0x20]
add eax, 0xfffffff8
add eax, dword [esp + 0x74]
mov dword [ecx + 4], eax
mov dword [ecx + 8], 3
mov dword [ecx + 0xc], 0
mov dword [ecx + 0x10], 0
mov eax, dword [esi + 0x18]
mov edi, dword [esi + 0x20]
mov ecx, edi
cmp dword [eax + 0x54], edi
jg 0x10059cf5
mov ecx, esi
call fcn.10021250
test eax, eax
jne 0x10059d2a
mov ecx, dword [esi + 0x20]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x4f
mov byte [eax + ecx*4 + 3], 0
lea ecx, [eax + ecx*4]
mov eax, dword [esp + 0x20]
mov dword [ecx + 4], eax
lea eax, [ebx + 8]
mov dword [ecx + 8], eax
mov dword [ecx + 0xc], 3
mov dword [ecx + 0x10], 0
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x10059d3c
mov eax, dword [esi + 0x20]
lea eax, [eax + eax*4]
mov byte [ecx + eax*4 - 0x11], 0x90
mov eax, dword [esi + 0x18]
mov edi, dword [esi + 0x20]
mov ecx, edi
cmp dword [eax + 0x54], edi
jg 0x10059d57
mov ecx, esi
call fcn.10021250
test eax, eax
jne 0x10059d8e
mov ecx, dword [esi + 0x20]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x25
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 1
mov dword [eax + ecx*4 + 8], 0xffffffff
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esi + 0x18]
mov ebx, dword [esp + 0x4c]
mov edi, dword [esi + 0x20]
mov ecx, edi
mov ebx, dword [ebx]
cmp dword [eax + 0x54], edi
jg 0x10059db6
mov ecx, esi
call fcn.10021250
test eax, eax
je 0x10059db3
mov edi, 1
jmp 0x10059ded
mov ecx, dword [esi + 0x20]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x61
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], 3
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
push 0
push ebx
mov edx, edi
mov ecx, esi
call fcn.100219a0
mov eax, dword [esi + 0x18]
add esp, 8
mov edi, dword [esi + 0x20]
mov ecx, edi
cmp dword [eax + 0x54], edi
jg 0x10059e17
mov ecx, esi
call fcn.10021250
test eax, eax
jne 0x10059e4e
mov ecx, dword [esi + 0x20]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x5e
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 3
mov dword [eax + ecx*4 + 8], 2
mov dword [eax + ecx*4 + 0xc], 7
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esi + 0x18]
mov edi, dword [esi + 0x20]
mov ecx, edi
cmp dword [eax + 0x54], edi
jg 0x10059e69
mov ecx, esi
call fcn.10021250
test eax, eax
jne 0x10059ea0
mov ecx, dword [esi + 0x20]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x23
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 7
mov dword [eax + ecx*4 + 8], 1
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov edx, dword [esp + 0x40]
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x4c]
mov eax, dword [eax + 0x14]
inc ecx
mov dword [esp + 0x4c], eax
mov dword [esp + 0x20], ecx
test eax, eax
jne 0x10059bd7
mov cl, byte [esp + 0x57]
mov eax, dword [esp + 0x3c]
mov eax, dword [eax]
mov dword [esp + 0x3c], eax
test eax, eax
jne 0x10058d30
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x34]
inc eax
mov dword [esp + 0x34], eax
cmp eax, dword [ecx + 0x14]
jl 0x10058875
push ecx
push 0x100ddcac
mov edx, 3
mov ecx, esi
call fcn.100216e0
mov edi, dword [esi + 0x20]
mov edx, eax
add esp, 8
cmp edi, edx
jbe 0x10059f32
mov eax, dword [esi + 4]
lea ecx, [edx + edx*4]
mov edi, dword [esp + 0x1c]
neg edi
mov dword [eax + ecx*4 + 0xc], edi
mov edi, dword [esi + 0x20]
cmp edi, edx
jbe 0x10059f32
mov eax, dword [esi + 4]
lea ecx, [edx + edx*4]
mov dword [eax + ecx*4 + 8], edi
mov edi, dword [esi + 0x20]
mov eax, dword [esi + 0x18]
lea ecx, [edi - 1]
inc edx
mov dword [eax + 0x58], ecx
mov edi, dword [esi + 4]
mov ecx, dword [esi]
test edi, edi
je 0x10059f80
cmp byte [ecx + 0x40], 0
jne 0x10059f80
test edx, edx
jns 0x10059f53
mov edx, dword [esi + 0x20]
dec edx
lea eax, [edx + edx*4]
movsx edx, byte [edi + eax*4 + 1]
push dword [edi + eax*4 + 0x10]
lea esi, [edi + eax*4]
call fcn.100217a0
mov dword [esi + 0x10], 0x100d930c
mov byte [esi + 1], 0xfe
jmp 0x10054a7f
push 0x100d930c
mov edx, 0xfffffffe
call fcn.100217a0
jmp 0x10054a7f
mov edi, dword [esp + 0x14]
test edi, edi
jne 0x1005a0b3
mov ecx, dword [ebx]
cmp byte [ecx + 0x91], 0
jne 0x10059fca
lea edx, [ebx + 4]
call fcn.1005b1a0
test eax, eax
je 0x10059fca
mov ecx, dword [esp + 0x10]
mov dword [ebx + 0xc], eax
inc dword [ebx + 0x40]
mov ebx, dword [esp + 0x18]
jmp 0x10054a8e
mov edx, 1
mov ecx, esi
call fcn.10022a10
mov eax, dword [esi]
cmp byte [eax + 0x40], 0
jne 0x10059ff4
mov ecx, dword [esi + 0x10]
mov edx, 0x100d8e20
push 0
push 1
push 0xffffffffffffffff
call fcn.10020860
add esp, 0xc
mov eax, dword [esi + 0x18]
mov edi, dword [esi + 0x20]
mov ecx, edi
cmp dword [eax + 0x54], edi
jg 0x1005a00f
mov ecx, esi
call fcn.10021250
test eax, eax
jne 0x1005a046
mov ecx, dword [esi + 0x20]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x61
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], 1
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [ebx]
mov edx, dword [esi + 4]
mov ecx, dword [esi]
mov eax, dword [eax + 0x10]
mov eax, dword [eax + 0xc]
movzx eax, byte [eax + 0x4d]
mov ebx, dword [eax*8 + 0x100db840]
test edx, edx
je 0x1005a0a0
cmp byte [ecx + 0x40], 0
jne 0x1005a0a0
mov eax, dword [esi + 0x20]
dec eax
lea eax, [eax + eax*4]
push dword [edx + eax*4 + 0x10]
lea edi, [edx + eax*4]
movsx edx, byte [edi + 1]
call fcn.100217a0
add esp, 4
test ebx, ebx
jne 0x1005a091
mov dword [edi + 0x10], ebx
mov byte [edi + 1], bl
jmp 0x1005540d
mov dword [edi + 0x10], ebx
mov byte [edi + 1], 0xfe
jmp 0x1005540d
push ebx
mov edx, 0xfffffffe
call fcn.100217a0
add esp, 4
jmp 0x1005540d
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x10]
mov eax, dword [eax + 0xc]
mov al, byte [eax + 0x4e]
and al, 5
cmp al, 1
je 0x10056072
mov edx, dword [0x100db840]
mov edi, 0x100db840
test edx, edx
je 0x1005a161
mov ecx, dword [esp + 0x14]
mov bh, byte [ecx]
mov bl, bh
test bh, bh
je 0x1005a111
mov esi, ecx
mov al, bh
sub esi, edx
nop
movzx ecx, byte [edx]
mov bl, al
movzx eax, al
mov al, byte [eax + 0x100dc190]
cmp al, byte [ecx + 0x100dc190]
jne 0x1005a111
mov al, byte [esi + edx + 1]
inc edx
mov bl, al
test al, al
jne 0x1005a0f0
movzx eax, bl
movzx ecx, byte [eax + 0x100dc190]
movzx eax, byte [edx]
movzx eax, byte [eax + 0x100dc190]
sub ecx, eax
je 0x1005a139
mov edx, dword [edi + 8]
add edi, 8
mov ecx, dword [esp + 0x14]
test edx, edx
jne 0x1005a0e3
jmp 0x1005a161
mov cl, byte [edi + 4]
mov edx, 2
test cl, cl
movzx eax, cl
cmovne edx, eax
mov eax, dword [esp + 0x24]
mov eax, dword [eax]
mov eax, dword [eax + 0x10]
mov eax, dword [eax + 0xc]
mov byte [eax + 0x4d], dl
cmp dword [edi], 0
jne 0x10054a82
mov edi, dword [esp + 0x14]
push edi
push 0x100d9358
push dword [esp + 0x2c]
call fcn.10007210
mov ecx, dword [esp + 0x1c]
add esp, 0xc
mov ebx, dword [esp + 0x18]
jmp 0x10054a8e
mov eax, dword [esi + 0x60]
mov edi, dword [esp + 0x2c]
bts eax, edi
mov dword [esi + 0x60], eax
cmp edi, 1
je 0x1005a1b2
mov eax, dword [esi]
mov ecx, dword [esp + 0x34]
mov eax, dword [eax + 0x10]
mov eax, dword [eax + ecx + 4]
cmp byte [eax + 9], 0
je 0x1005a1b2
mov eax, dword [esi + 0x64]
bts eax, edi
mov dword [esi + 0x64], eax
mov eax, dword [esp + 0x18]
movsx eax, byte [eax]
add eax, 0xffffffbf
cmp eax, 0x32
ja case.0x1005a1c8.66
movzx eax, byte [eax + 0x1005aa00]
jmp dword [eax*4 + 0x1005a9f0]
mov ebx, 8
jmp 0x1005a1e6
xor ebx, ebx
jmp 0x1005a1e6
mov ebx, 1
jmp 0x1005a1e6
mov ebx, 6
cmp dword [esp + 0x14], 0
je 0x1005a292
test ebx, ebx
je 0x1005a292
push ecx
push 0x100dd9fc
mov edx, 3
mov ecx, esi
call fcn.100216e0
mov edi, dword [esi + 0x20]
add esp, 8
mov dword [esp + 0x3c], eax
cmp edi, eax
jbe 0x1005a22a
mov ecx, dword [esi + 4]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x2c]
mov dword [ecx + edx*4 + 4], eax
mov edi, dword [esi + 0x20]
mov ecx, dword [esp + 0x14]
lea edx, [esp + 0x1c]
mov dword [esp + 0x1c], 0
call fcn.10007e10
mov eax, dword [esp + 0x3c]
lea ecx, [eax + 1]
cmp edi, ecx
jbe 0x1005a25f
mov eax, dword [esp + 0x1c]
lea edx, [ecx + ecx*4]
mov ecx, dword [esi + 4]
mov dword [ecx + edx*4 + 4], eax
mov edi, dword [esi + 0x20]
mov eax, dword [esp + 0x3c]
lea edx, [eax + 2]
cmp edi, edx
jbe 0x10054a82
mov eax, dword [esi + 4]
lea ecx, [edx + edx*4]
mov edi, dword [esp + 0x2c]
mov dword [eax + ecx*4 + 4], edi
mov edi, dword [esi + 0x20]
cmp edi, edx
jbe 0x10054a82
mov eax, dword [esi + 4]
lea ecx, [edx + edx*4]
mov dword [eax + ecx*4 + 8], ebx
jmp 0x10054a82
push ecx
push 0x100dadd4
mov edx, 3
mov ecx, esi
call fcn.100216e0
mov ecx, dword [esi + 0x20]
add esp, 8
cmp ecx, eax
jbe 0x1005a2bb
mov ecx, dword [esi + 4]
lea edx, [eax + eax*4]
mov dword [ecx + edx*4 + 4], edi
mov ecx, dword [esi + 0x20]
lea edx, [eax + 1]
cmp ecx, edx
jbe 0x100551f4
mov eax, dword [esi + 4]
lea ecx, [edx + edx*4]
mov dword [eax + ecx*4 + 4], edi
mov ecx, dword [esi + 0x20]
cmp ecx, edx
jbe 0x100551f4
mov eax, dword [esi + 4]
lea ecx, [edx + edx*4]
mov dword [eax + ecx*4 + 0xc], ebx
jmp 0x100551f4
xor ebx, ebx
mov ecx, esi
lea edx, [ebx + 1]
call fcn.10022a10
mov edx, dword [esp + 0x50]
mov dword [edx], 1
mov eax, dword [esi]
cmp byte [eax + 0x40], bl
jne 0x1005a320
mov ecx, dword [esi + 0x10]
mov edx, 0x100d9374
push ebx
push 1
push 0xffffffffffffffff
call fcn.10020860
add esp, 0xc
nop dword [eax]
cmp ebx, 1
ja 0x1005a32e
mov eax, dword [ebx*4 + 0x100ddbe0]
jmp 0x1005a330
xor eax, eax
inc ebx
mov dword [esp + 0x1c], eax
test eax, eax
je 0x10054a82
mov eax, dword [esi + 0x18]
mov edi, dword [esi + 0x20]
mov ecx, edi
cmp dword [eax + 0x54], edi
jg 0x1005a35f
mov ecx, esi
call fcn.10021250
test eax, eax
je 0x1005a35c
mov edi, 1
jmp 0x1005a396
mov ecx, dword [esi + 0x20]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x61
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], 1
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
push 0
push dword [esp + 0x20]
mov edx, edi
mov ecx, esi
call fcn.100219a0
mov eax, dword [esi + 0x18]
add esp, 8
mov edi, dword [esi + 0x20]
cmp dword [eax + 0x54], edi
jg 0x1005a3c2
mov ecx, esi
call fcn.10021250
test eax, eax
jne 0x1005a320
inc dword [esi + 0x20]
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x23
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 1
mov dword [eax + ecx*4 + 8], 1
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x1005a320
mov ecx, dword [ebp + 8]
mov eax, 0xa
mov edi, dword [esp + 0x14]
cmp dword [ecx], 0
cmovne eax, dword [esp + 0x2c]
xor ebx, ebx
mov dword [esp + 0x60], eax
test edi, edi
je 0x1005a4c4
mov bl, byte [edi]
mov edx, 0x100d90c4
mov bh, bl
test bl, bl
je 0x1005a455
mov al, bl
sub edi, edx
nop
movzx ecx, byte [edx]
mov bh, al
movzx eax, al
mov al, byte [eax + 0x100dc190]
cmp al, byte [ecx + 0x100dc190]
jne 0x1005a451
mov al, byte [edi + edx + 1]
inc edx
mov bh, al
test al, al
jne 0x1005a430
mov edi, dword [esp + 0x14]
movzx eax, byte [edx]
movzx ecx, byte [eax + 0x100dc190]
movzx eax, bh
movzx eax, byte [eax + 0x100dc190]
sub eax, ecx
jne 0x1005a472
lea ebx, [eax + 1]
jmp 0x1005a4c4
mov edx, 0x100d9384
test bl, bl
je 0x1005a4a1
mov al, bl
sub edi, edx
nop
movzx ecx, byte [edx]
mov bl, al
movzx eax, al
mov al, byte [eax + 0x100dc190]
cmp al, byte [ecx + 0x100dc190]
jne 0x1005a4a1
mov al, byte [edx + edi + 1]
inc edx
mov bl, al
test al, al
jne 0x1005a480
movzx eax, byte [edx]
movzx ecx, byte [eax + 0x100dc190]
movzx eax, bl
mov ebx, 0
movzx eax, byte [eax + 0x100dc190]
sub eax, ecx
mov eax, 2
cmove ebx, eax
mov edx, 3
mov ecx, esi
call fcn.10022a10
mov edx, dword [esp + 0x50]
mov dword [edx], 3
mov eax, dword [esi]
cmp byte [eax + 0x40], 0
jne 0x1005a53a
mov ecx, dword [esi + 0x10]
mov edx, 0x100d938c
push 0
push 1
push 0xffffffffffffffff
call fcn.10020860
mov eax, dword [esi]
add esp, 0xc
cmp byte [eax + 0x40], 0
jne 0x1005a53a
mov ecx, dword [esi + 0x10]
mov edx, 0x100d9394
push 0
push 1
push 0xffffffffffffffff
add ecx, 0x28
call fcn.10020860
mov eax, dword [esi]
add esp, 0xc
cmp byte [eax + 0x40], 0
jne 0x1005a53a
mov ecx, dword [esi + 0x10]
mov edx, 0x100d9398
push 0
push 1
push 0xffffffffffffffff
add ecx, 0x50
call fcn.10020860
add esp, 0xc
mov eax, dword [esi + 0x18]
mov edi, dword [esi + 0x20]
mov ecx, edi
cmp dword [eax + 0x54], edi
jg 0x1005a555
mov ecx, esi
call fcn.10021250
test eax, eax
jne 0x1005a588
mov ecx, dword [esi + 0x20]
mov edx, dword [esp + 0x60]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0xb
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], ebx
mov dword [eax + ecx*4 + 0xc], 1
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esi + 0x18]
mov edi, dword [esi + 0x20]
cmp dword [eax + 0x54], edi
jg 0x1005a5a2
mov ecx, esi
call fcn.10021250
test eax, eax
jne 0x10054a82
inc dword [esi + 0x20]
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x23
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 1
mov dword [eax + ecx*4 + 8], 3
jmp 0x1005544b
mov edi, dword [esp + 0x14]
test edi, edi
je 0x1005a5f6
lea edx, [esp + 0x1c]
mov dword [esp + 0x1c], 0
mov ecx, edi
call fcn.10007e10
push dword [esp + 0x1c]
push dword [esp + 0x14]
call fcn.1007d6b0
add esp, 8
mov eax, dword [esp + 0x10]
cmp dword [eax + 0xd4], 0x1007d5d0
jne 0x1005a60e
mov eax, dword [eax + 0xd8]
jmp 0x1005a610
xor eax, eax
cdq
push edx
mov edx, 0x100d9074
push eax
mov ecx, ebx
call fcn.10054600
mov ecx, dword [esp + 0x18]
add esp, 8
mov ebx, dword [esp + 0x18]
jmp 0x10054a8e
mov esi, dword [esp + 0x10]
mov eax, dword [esi + 0xc]
test eax, eax
je 0x1005a644
push eax
call dword [0x100e3b34]
add esp, 4
mov ecx, esi
call fcn.10014f20
mov eax, dword [esi + 0x14]
xor edi, edi
test eax, eax
jle 0x1005a68d
mov ebx, dword [esp + 0x10]
xor esi, esi
nop word [eax + eax]
mov eax, dword [ebx + 0x10]
mov eax, dword [eax + esi + 4]
test eax, eax
je 0x1005a682
mov eax, dword [eax + 4]
mov eax, dword [eax]
mov eax, dword [eax + 0xcc]
push dword [eax + 0x28]
call dword [0x100e3b78]
add esp, 4
mov eax, dword [ebx + 0x14]
inc edi
add esi, 0x10
cmp edi, eax
jl 0x1005a660
xor esi, esi
test eax, eax
mov eax, dword [esp + 0x10]
jle 0x1005a6c9
xor edi, edi
nop dword [eax]
mov eax, dword [eax + 0x10]
mov ecx, dword [eax + edi + 4]
test ecx, ecx
je 0x1005a6bc
cmp byte [ecx + 9], 0
je 0x1005a6bc
add dword [ecx + 0xc], 0xffffffff
jne 0x1005a6bc
call fcn.10014e40
mov eax, dword [esp + 0x10]
inc esi
add edi, 0x10
cmp esi, dword [eax + 0x14]
jl 0x1005a6a0
mov eax, dword [eax + 0xc]
test eax, eax
je 0x10054a82
push eax
call dword [0x100e3b3c]
jmp 0x10054a7f
mov eax, dword [esp + 0x14]
test eax, eax
je 0x1005a707
lea edx, [esp + 0x60]
mov ecx, eax
call fcn.10007cf0
test eax, eax
jne 0x1005a707
push dword [esp + 0x64]
push dword [esp + 0x64]
call fcn.10004070
add esp, 8
call fcn.1007b6c0
test eax, eax
je 0x1005a717
or esi, 0xffffffff
or edi, esi
jmp 0x1005a749
mov eax, dword [0x100e6870]
test eax, eax
je 0x1005a72f
push eax
call dword [0x100e3b34]
mov eax, dword [0x100e6870]
add esp, 4
mov esi, dword [0x100e6878]
mov edi, dword [0x100e687c]
test eax, eax
je 0x1005a749
push eax
call dword [0x100e3b3c]
add esp, 4
push edi
push esi
mov edx, 0x100d9008
mov ecx, ebx
call fcn.10054600
add esp, 8
jmp 0x10054a82
mov edi, dword [esp + 0x14]
test edi, edi
je 0x1005a79f
lea edx, [esp + 0x60]
mov ecx, edi
call fcn.10007cf0
test eax, eax
jne 0x1005a79f
cmp dword [esp + 0x64], eax
jl 0x1005a79f
mov eax, dword [esp + 0x60]
jg 0x1005a786
test eax, eax
jb 0x1005a79f
mov ecx, 8
and eax, 0x7fffffff
cmp eax, ecx
cmova eax, ecx
mov ecx, dword [esp + 0x10]
mov dword [ecx + 0x84], eax
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x84]
cdq
push edx
mov edx, 0x100d905c
jmp 0x1005a617
mov edi, dword [esp + 0x14]
test edi, edi
je 0x1005a881
lea edx, [esp + 0x1c]
mov dword [esp + 0x1c], 0
mov ecx, edi
call fcn.10007e10
mov ecx, dword [esp + 0x10]
mov esi, dword [esp + 0x1c]
mov eax, dword [ecx + 0xc]
test esi, esi
jle 0x1005a836
test eax, eax
je 0x1005a7f8
push eax
call dword [0x100e3b34]
mov ecx, dword [esp + 0x14]
add esp, 4
mov eax, dword [ecx + 0xc]
mov dword [ecx + 0x1bc], 0x1007ccd0
mov dword [ecx + 0x1c0], ecx
mov dword [ecx + 0x1c4], 0
mov dword [ecx + 0x1ec], 0
test eax, eax
je 0x1005a82e
push eax
call dword [0x100e3b3c]
mov ecx, dword [esp + 0x14]
add esp, 4
mov dword [ecx + 0x1ec], esi
jmp 0x1005a885
test eax, eax
je 0x1005a84b
push eax
call dword [0x100e3b34]
mov ecx, dword [esp + 0x14]
add esp, 4
mov eax, dword [ecx + 0xc]
mov dword [ecx + 0x1bc], 0
mov dword [ecx + 0x1c0], 0
mov dword [ecx + 0x1c4], 0
mov dword [ecx + 0x1ec], 0
test eax, eax
je 0x1005a885
push eax
call dword [0x100e3b3c]
add esp, 4
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0x1ec]
mov ecx, ebx
cdq
push edx
push eax
mov edx, 0x100d93a8
call fcn.10054600
mov ecx, dword [esp + 0x18]
add esp, 8
mov ebx, dword [esp + 0x18]
jmp 0x10054a8e
cmp ebx, dword [ecx + 0x114]
jb 0x1005a8d4
cmp ebx, dword [ecx + 0x118]
jae 0x1005a8d4
mov eax, dword [ecx + 0x110]
mov dword [ebx], eax
mov eax, dword [esp + 0x10]
mov dword [eax + 0x110], ebx
dec dword [eax + 0xfc]
jmp 0x1005a8e1
push ebx
call fcn.100046a0
add esp, 4
mov eax, dword [esp + 0x10]
test edi, edi
je 0x1005a936
cmp dword [eax + 0x208], 0
je 0x1005a8fe
mov edx, edi
mov ecx, eax
call fcn.10004740
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp edi, dword [eax + 0x114]
jb 0x1005a92d
cmp edi, dword [eax + 0x118]
jae 0x1005a92d
mov eax, dword [eax + 0x110]
mov dword [edi], eax
mov eax, dword [esp + 0x10]
mov dword [eax + 0x110], edi
dec dword [eax + 0xfc]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push edi
call fcn.100046a0
add esp, 4
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret