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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0xd8
mov eax, ecx
mov dword [esp + 0x68], 0
push esi
mov dword [esp + 4], eax
mov esi, edx
mov edx, dword [ebp + 8]
mov eax, dword [eax]
push edi
mov edi, dword [ebp + 0x10]
mov dword [esp + 0x68], eax
lea ecx, [edx + 0x58]
mov dword [esp + 0x7c], ecx
mov dword [esp + 0x24], esi
mov eax, dword [edi + 0x50]
mov dword [esp + 0x28], eax
movzx eax, byte [edi + 0x3c]
lea ecx, [eax + eax*8]
mov eax, dword [edx + 4]
lea eax, [eax + ecx*8]
add eax, 8
mov dword [esp + 0x80], eax
mov eax, dword [eax + 0x2c]
mov dword [esp + 0x38], eax
cmp dword [edx + 0x200], eax
jne 0x48d29b
mov ecx, 1
xor edx, edx
jmp 0x48d2e5
mov edx, dword [edx + 0x1fc]
mov eax, 1
cmp edx, eax
jle 0x48d2cb
mov ecx, dword [ebp + 8]
add ecx, 0x204
mov esi, dword [esp + 0x38]
cmp dword [ecx], esi
mov esi, dword [esp + 0x24]
je 0x48d379
inc eax
add ecx, 4
cmp eax, edx
jl 0x48d2b3
xorps xmm0, xmm0
movlpd qword [esp + 0x90], xmm0
mov edx, dword [esp + 0x94]
mov ecx, dword [esp + 0x90]
not ecx
not edx
and ecx, dword [ebp + 0x14]
and edx, dword [ebp + 0x18]
mov dword [edi + 0x58], ecx
mov ecx, dword [ebp + 8]
mov dword [edi + 0x5c], edx
mov edi, dword [ebp + 0xc]
mov eax, dword [ecx + 0x50]
mov edx, dword [ecx + 0x54]
mov ecx, edi
call fcn.004d1770
mov ecx, dword [esp + 8]
and eax, 1
mov edx, dword [ebp + 0x10]
mov dword [esp + 0x30], eax
mov eax, dword [ecx + 0x38]
dec eax
mov dword [ecx + 0x38], eax
mov dword [edx + 0x10], eax
mov dword [edx + 0xc], eax
mov dword [esp + 0x1c], eax
mov eax, dword [ecx + 0x38]
dec eax
mov dword [ecx + 0x38], eax
cmp byte [edx + 0x3c], 0
mov dword [esp + 0x84], eax
mov dword [edx + 0x18], eax
jbe 0x48d3c2
mov eax, dword [esp + 0x80]
test byte [eax + 0x24], 8
je 0x48d3c2
mov edx, dword [ecx + 0x2c]
mov eax, dword [ebp + 0x10]
inc edx
mov dword [ecx + 0x2c], edx
mov dword [eax], edx
mov ecx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ecx
jg 0x48d393
push 0
push edx
push 0
mov edx, 0x47
mov ecx, esi
call fcn.004284c0
add esp, 0xc
jmp 0x48d3c2
xor ecx, ecx
xor edx, edx
bts ecx, eax
cmp eax, 0x20
cmovae edx, ecx
xor ecx, edx
cmp eax, 0x40
cmovae edx, ecx
jmp 0x48d2e5
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0x47
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 ecx, edi
test edi, edi
jle 0x48d3f3
mov edx, dword [ebp + 8]
lea eax, [edi + edi*2]
shl eax, 5
add edx, 0x338
add eax, edx
nop dword [eax]
cmp dword [eax - 0x38], 0
jne 0x48d3f3
cmp dword [eax], 0
jne 0x48d3f3
dec ecx
sub eax, 0x60
test ecx, ecx
jg 0x48d3e0
lea eax, [ecx + ecx*2]
mov ecx, dword [ebp + 8]
shl eax, 5
mov edi, dword [eax + ecx + 0x30c]
mov eax, dword [esp + 0x80]
mov dword [esp + 0x5c], edi
test byte [eax + 0x28], 0x20
je 0x48d4db
mov ecx, dword [esi + 0x6c]
mov edi, dword [eax + 0x1c]
mov edx, dword [eax + 0x18]
cmp dword [esi + 0x70], ecx
jg 0x48d43b
push edx
push 0
push edi
mov edx, 0xa
mov ecx, esi
call fcn.004284c0
add esp, 0xc
jmp 0x48d46a
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov esi, dword [esp + 0x24]
mov dword [eax + ecx*4], 0xa
mov dword [eax + ecx*4 + 4], edi
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov edx, dword [esi + 0x6c]
cmp dword [esi + 0x70], edx
jg 0x48d499
push 0
push dword [esp + 0x20]
mov edx, 0xb
mov ecx, esi
push edi
call fcn.004284c0
mov ecx, dword [ebp + 0x10]
mov edx, eax
add esp, 0xc
mov dword [ecx + 0x44], edx
mov byte [ecx + 0x3d], 8
jmp 0x48dbec
lea eax, [edx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [edx + edx*4]
mov eax, dword [esi + 0x68]
mov esi, dword [esp + 0x24]
mov dword [eax + ecx*4 + 4], edi
mov edi, dword [esp + 0x1c]
mov dword [eax + ecx*4], 0xb
mov dword [eax + ecx*4 + 8], edi
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [ebp + 0x10]
mov dword [ecx + 0x44], edx
mov byte [ecx + 0x3d], 8
jmp 0x48dbec
mov eax, dword [esp + 0x28]
mov edx, dword [eax + 0x2c]
test edx, 0x400
je 0x48dac3
movzx eax, word [eax + 0x30]
mov dword [esp + 0x1c], eax
lea ecx, [eax + 2]
cmp ecx, 1
jne 0x48d528
mov ecx, dword [esp + 8]
mov al, byte [ecx + 0x13]
test al, al
jne 0x48d517
inc dword [ecx + 0x2c]
mov eax, dword [ecx + 0x2c]
mov edx, eax
mov dword [esp + 0x2c], eax
jmp 0x48d562
dec al
mov byte [ecx + 0x13], al
movzx eax, al
mov edx, dword [ecx + eax*4 + 0x98]
jmp 0x48d55e
mov eax, dword [esp + 8]
mov edx, dword [eax + 0x1c]
mov edi, dword [eax + 0x20]
mov dword [esp + 0x2c], edi
cmp ecx, edx
jg 0x48d54f
lea eax, [ecx + edi]
sub edx, ecx
mov edi, dword [esp + 8]
mov dword [edi + 0x1c], edx
mov edx, dword [esp + 0x2c]
mov dword [edi + 0x20], eax
jmp 0x48d562
mov eax, dword [eax + 0x2c]
lea edx, [eax + 1]
add eax, ecx
mov ecx, dword [esp + 8]
mov dword [ecx + 0x2c], eax
mov dword [esp + 0x2c], edx
mov eax, dword [ebp + 0x10]
xor edi, edi
mov eax, dword [eax + 0xc]
mov dword [esp + 0x5c], eax
cmp dword [esp + 0x1c], edi
jbe 0x48d633
mov eax, dword [esp + 0x28]
add edx, 2
mov dword [esp + 0x10], edx
mov eax, dword [eax + 0x38]
mov ecx, dword [eax + edi*4]
mov dword [esp + 0x18], ecx
test ecx, ecx
je 0x48d624
test byte [ecx + 0xc], 1
je 0x48d6c2
cmp edi, 0x1f
ja 0x48d5b3
mov ecx, edi
mov eax, 1
shl eax, cl
mov ecx, dword [esp + 0x18]
jmp 0x48d5b5
xor eax, eax
mov esi, dword [esp + 0x28]
test dword [esi + 0x28], eax
mov esi, dword [esp + 0x24]
je 0x48d699
mov eax, dword [esp + 8]
mov esi, dword [esp + 8]
mov edx, dword [eax + 0x28]
mov dword [esp + 0x18], edx
push edx
lea eax, [edx + 1]
mov dword [esi + 0x28], eax
mov eax, esi
inc dword [eax + 0x2c]
mov edx, dword [ecx]
mov ecx, esi
mov eax, dword [eax + 0x2c]
mov dword [esp + 0x18], eax
call fcn.00442720
mov esi, dword [esp + 0x28]
add esp, 4
mov eax, dword [esp + 0x10]
add eax, edi
mov ecx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ecx
jg 0x48d662
mov edx, dword [esp + 0x14]
push edx
mov edx, dword [esp + 0x1c]
push eax
push edx
mov edx, 0xae
mov ecx, esi
call fcn.004284c0
add esp, 0xc
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x28]
inc edi
cmp edi, dword [esp + 0x1c]
jl 0x48d583
mov eax, dword [esp + 0x28]
mov ecx, dword [esi + 0x6c]
mov edi, dword [esp + 0x2c]
mov edx, dword [eax + 0x18]
cmp dword [esi + 0x70], ecx
jg 0x48d74e
push 0
push edi
push edx
mov edx, 0x47
mov ecx, esi
call fcn.004284c0
add esp, 0xc
jmp 0x48d779
mov edx, dword [esp + 0x18]
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x10]
add edx, edi
mov dword [eax + ecx*4], 0xae
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [esp + 0x14]
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x48d620
lea eax, [edx + edi]
mov edx, ecx
mov ecx, dword [esp + 8]
push eax
push dword [esp + 0x34]
push edi
push dword [ebp + 0x10]
call fcn.0048bd00
mov eax, dword [ebp + 0x10]
add esp, 0x10
mov eax, dword [eax + 0x10]
mov dword [esp + 0x5c], eax
jmp 0x48d620
lea eax, [edx + edi]
mov edx, dword [ecx]
mov ecx, dword [esp + 8]
push 1
push eax
mov edx, dword [edx + 0x10]
call fcn.0048ca70
mov eax, dword [esp + 0x20]
add esp, 8
cmp byte [eax + 0xf], 0x4a
mov eax, dword [esp + 0x28]
jne 0x48d745
test byte [eax + 0x1c], 2
je 0x48d745
mov eax, dword [ebp + 8]
mov ecx, dword [esi + 0x6c]
mov eax, dword [eax + 0x14]
mov edx, dword [eax + 0xc]
cmp dword [esi + 0x70], ecx
jg 0x48d70d
push 0
push edx
push 0
mov edx, 0x47
jmp 0x48d616
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov esi, dword [esp + 0x24]
mov dword [eax + ecx*4], 0x47
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
jmp 0x48d620
mov edx, dword [esp + 0x10]
jmp 0x48d628
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0x47
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], edi
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esi + 0x6c]
lea edx, [edi + 1]
cmp dword [esi + 0x70], ecx
jg 0x48d79c
push 0
push edx
push dword [esp + 0x24]
mov edx, 0x47
mov ecx, esi
call fcn.004284c0
add esp, 0xc
jmp 0x48d7cf
mov edi, dword [esp + 0x1c]
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4 + 4], edi
mov edi, dword [esp + 0x2c]
mov dword [eax + ecx*4], 0x47
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esp + 0x28]
mov edx, 0xfffffffa
mov eax, 0xffffffff
test byte [ecx + 0x1c], 1
cmovne eax, edx
mov edx, 6
push eax
push dword [ecx + 0x24]
mov ecx, esi
push edi
push dword [esp + 0x68]
push dword [esp + 0x48]
call fcn.004287f0
mov eax, dword [esp + 0x3c]
add esp, 0x14
mov ecx, dword [esp + 0x68]
and dword [eax + 0x1c], 0xfffffffe
cmp byte [ecx + 0x57], 0
je 0x48d819
mov dword [eax + 0x24], 0
mov edx, dword [ebp + 0x10]
mov ecx, dword [ebp + 8]
mov eax, dword [esp + 0x38]
mov dword [edx + 0x40], eax
mov eax, 0x3e
cmp byte [ecx + 0x32], 0
mov ecx, 0xb8
cmovne eax, ecx
xor ecx, ecx
mov byte [edx + 0x3d], al
mov eax, dword [esi + 0x6c]
mov dword [edx + 0x44], eax
mov dword [esp + 0x10], ecx
cmp dword [esp + 0x1c], ecx
jbe 0x48dbec
lea eax, [edi + 2]
mov edi, dword [esp + 0x28]
mov dword [esp + 0x14], eax
nop dword [eax + eax]
mov eax, dword [edi + 0x38]
mov edx, dword [eax + ecx*4]
mov dword [esp + 0x60], edx
cmp ecx, 0x10
jae 0x48d88b
mov ax, word [edi + 0x22]
shr ax, cl
test al, 1
je 0x48d887
mov ecx, dword [ebp + 0x10]
call fcn.0048b990
jmp 0x48daab
mov ecx, dword [esp + 0x10]
test byte [edx + 0xc], 1
je 0x48daaf
cmp ecx, 0x1f
ja 0x48d8a3
mov eax, 1
shl eax, cl
jmp 0x48d8a5
xor eax, eax
test dword [edi + 0x28], eax
jne 0x48daaf
mov eax, dword [esp + 0x68]
cmp byte [eax + 0x57], 0
jne 0x48daaf
mov ecx, dword [ebp + 0x10]
mov dword [esp + 0x18], 0
cmp dword [ecx + 0x48], 0
jle 0x48d9a3
mov eax, dword [esi]
mov edi, dword [ecx + 0x4c]
add edi, 4
mov dh, byte [eax + 0x57]
nop dword [eax]
mov eax, dword [edi]
test eax, eax
jns 0x48d8ea
mov eax, dword [esi + 0x6c]
dec eax
test dh, dh
je 0x48d8f5
mov ecx, 0x4f06d8
jmp 0x48d8fe
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x68]
lea ecx, [eax + ecx*4]
mov dl, byte [ecx]
cmp dl, 0x5e
jne 0x48d912
mov eax, dword [esp + 0x10]
add eax, dword [esp + 0x14]
cmp dword [ecx + 0xc], eax
jmp 0x48d922
cmp dl, 0x87
jne 0x48d928
mov eax, dword [esp + 0x10]
add eax, dword [esp + 0x14]
cmp dword [ecx + 8], eax
mov esi, dword [esp + 0x24]
je 0x48d93e
mov ecx, dword [esp + 0x18]
add edi, 0x14
mov eax, dword [ebp + 0x10]
inc ecx
mov dword [esp + 0x18], ecx
cmp ecx, dword [eax + 0x48]
jl 0x48d8e0
jmp 0x48d9a3
mov eax, dword [ecx + 8]
mov edi, dword [ecx + 0xc]
mov ecx, dword [ecx + 4]
mov dword [esp + 0x18], ecx
mov ecx, dword [esi + 0x6c]
mov dword [esp + 0x40], eax
cmp dword [esi + 0x70], ecx
jg 0x48d96d
mov ecx, dword [esp + 0x18]
push edi
push eax
push ecx
movzx edx, dl
mov ecx, esi
call fcn.004284c0
add esp, 0xc
jmp 0x48d9a3
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov byte [eax + ecx*4], dl
mov dword [eax + ecx*4 + 0xc], edi
mov dword [eax + ecx*4 + 0x10], 0
lea eax, [eax + ecx*4]
xor ecx, ecx
mov byte [eax + 1], 0
mov word [eax + 2], cx
mov ecx, dword [esp + 0x18]
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x40]
mov dword [eax + 8], ecx
mov eax, dword [esp + 8]
push 0
push 0x34
mov ecx, dword [eax]
call fcn.00404910
mov edi, eax
add esp, 8
test edi, edi
je 0x48d9f9
push 0x34
push 0
push edi
call fcn.004bb940
add esp, 0xc
mov byte [edi], 0x35
or eax, 0xffffffff
mov ecx, edi
mov word [edi + 0x22], ax
call fcn.0043f920
mov ecx, dword [esp + 8]
mov eax, dword [ecx]
mov eax, dword [eax + 0x84]
cmp dword [edi + 0x18], eax
jle 0x48d9f9
push eax
push str.Expression_tree_is_too_large__maximum_depth__d_
push ecx
call fcn.00407e20
add esp, 0xc
mov eax, dword [esp + 0x68]
cmp byte [eax + 0x57], 0
jne 0x48da9a
mov eax, dword [esp + 0x60]
mov ecx, dword [eax + 0x1c]
mov eax, dword [eax]
mov edx, dword [eax + 0xc]
test ecx, ecx
jle 0x48da21
mov eax, dword [edx + 0x14]
lea ecx, [ecx + ecx*4]
mov edx, dword [eax + ecx*4 - 0xc]
mov ecx, dword [esp + 0x68]
push 0
push 0x35
mov dword [edi + 0xc], edx
call fcn.00404910
add esp, 8
mov dword [esp + 0x40], eax
test eax, eax
je 0x48da8c
push 0x34
push 0
push eax
call fcn.004bb940
mov ecx, dword [esp + 0x4c]
or eax, 0xffffffff
add esp, 0xc
mov word [ecx + 0x22], ax
lea eax, [ecx + 0x34]
mov dword [ecx + 8], eax
mov byte [ecx], 0xb0
mov byte [eax], 0
mov eax, dword [esp + 0x10]
add eax, dword [esp + 0x14]
mov dword [ecx + 0x18], 1
mov dword [edi + 0x10], ecx
mov dword [ecx + 0x1c], eax
mov eax, dword [ebp + 0x10]
push 0x10
push dword [eax + 0x18]
push edi
push dword [esp + 0x14]
call fcn.00447d40
add esp, 0x10
jmp 0x48da8f
mov dword [edi + 0x10], eax
mov eax, dword [esp + 0x68]
mov dword [edi + 0xc], 0
test edi, edi
je 0x48daa7
mov edx, edi
mov ecx, eax
call fcn.004402a0
mov edi, dword [esp + 0x28]
mov ecx, dword [esp + 0x10]
inc ecx
mov dword [esp + 0x10], ecx
cmp ecx, dword [esp + 0x1c]
jl 0x48d860
jmp 0x48dbec
test dl, 5
setne cl
bt edx, 8
setb al
test al, cl
je 0x48dc96
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x30]
mov eax, dword [eax + 0x38]
mov edx, dword [eax]
mov eax, dword [esp + 8]
inc dword [eax + 0x2c]
mov edi, dword [eax + 0x2c]
push edi
push ecx
push 0
push dword [ebp + 0x10]
mov ecx, eax
call fcn.0048bd00
mov ecx, eax
add esp, 0x10
mov dword [esp + 0x14], ecx
cmp ecx, edi
je 0x48db26
test edi, edi
je 0x48db26
mov edx, dword [esp + 8]
mov al, byte [edx + 0x13]
cmp al, 8
jae 0x48db26
movzx eax, al
mov dword [edx + eax*4 + 0x98], edi
inc byte [edx + 0x13]
mov eax, dword [ebp + 0x10]
mov edi, dword [eax + 0x10]
mov eax, dword [eax + 0x34]
mov dword [esp + 0x40], eax
test eax, eax
je 0x48dbc4
mov edx, dword [esi + 0x6c]
cmp dword [esi + 0x70], edx
jg 0x48db59
push ecx
push edi
push eax
mov edx, 0x3f
mov ecx, esi
call fcn.004284c0
add esp, 0xc
mov edx, eax
jmp 0x48db8c
lea eax, [edx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [edx + edx*4]
mov eax, dword [esi + 0x68]
mov esi, dword [esp + 0x40]
mov dword [eax + ecx*4 + 4], esi
mov esi, dword [esp + 0x14]
mov dword [eax + ecx*4 + 0xc], esi
mov esi, dword [esp + 0x24]
mov dword [eax + ecx*4], 0x3f
mov dword [eax + ecx*4 + 8], edi
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esi]
cmp byte [eax + 0x57], 0
jne 0x48dba7
mov eax, dword [esi + 0x68]
lea ecx, [edx + edx*4]
mov byte [eax + ecx*4 + 1], 0xfd
mov dword [eax + ecx*4 + 0x10], 1
push dword [ebp + 0x18]
mov edx, dword [ebp + 8]
push dword [ebp + 0x14]
mov ecx, dword [esp + 0x10]
push edi
push dword [ebp + 0xc]
call fcn.0048cf90
mov ecx, dword [esp + 0x24]
add esp, 0x10
mov edx, dword [esi + 0x6c]
cmp dword [esi + 0x70], edx
jg 0x48dc62
push ecx
push edi
push dword [esp + 0x40]
mov edx, 0x1d
mov ecx, esi
call fcn.004284c0
add esp, 0xc
mov eax, dword [ebp + 0x10]
mov byte [eax + 0x3d], 0xb8
xor eax, eax
mov ecx, dword [ebp + 8]
neg eax
sbb eax, eax
add eax, 2
mov dword [esp + 0x60], eax
nop dword [eax]
mov eax, dword [ecx + 0x64]
xor edx, edx
mov edi, dword [ecx + 0x70]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x40], eax
test eax, eax
jle 0x490146
nop dword [eax + eax]
xor eax, eax
mov dword [esp + 0x14], eax
movzx eax, word [edi + 0xa]
mov ecx, eax
mov dword [esp + 0x58], ecx
test al, 6
jne 0x49012c
mov eax, dword [ebp + 0x10]
mov esi, dword [ebp + 0x10]
mov ecx, dword [eax + 0x58]
mov eax, dword [edi + 0x2c]
and eax, dword [esi + 0x5c]
and ecx, dword [edi + 0x28]
or ecx, eax
mov esi, dword [esp + 0x24]
je 0x48fec8
mov ecx, dword [ebp + 8]
or dword [ecx + 0x34], 2
jmp 0x49012f
lea eax, [edx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [edx + edx*4]
mov eax, dword [esi + 0x68]
mov edx, dword [esp + 0x38]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x14]
mov dword [eax + ecx*4], 0x1d
mov dword [eax + ecx*4 + 8], edi
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x48dbe5
mov eax, edx
and eax, 0x102
cmp eax, 0x102
jne 0x48e03e
xor ecx, ecx
mov dword [esp + 0x14], 0
mov eax, 0xb8
mov dword [esp + 0x3c], ecx
xor edi, edi
mov dword [esp + 0x50], eax
test dl, 0x20
je 0x48dcd9
mov eax, dword [esp + 0x28]
mov dword [esp + 0x18], 4
mov eax, dword [eax + 0x38]
mov edi, dword [eax]
jmp 0x48dcdd
mov dword [esp + 0x18], ecx
test dl, 0x10
je 0x48dcf4
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x18]
mov eax, dword [eax + 0x38]
mov ecx, dword [ecx + eax]
mov dword [esp + 0x3c], ecx
mov eax, dword [esp + 0x30]
test eax, eax
je 0x48dd02
mov dword [esp + 0x3c], edi
mov edi, ecx
test edi, edi
je 0x48de34
mov ecx, dword [edi]
mov dword [esp + 0x34], 0x16141517
mov dword [esp + 0x18], ecx
mov edx, dword [ecx + 0x10]
mov al, byte [edx]
cmp al, 0xb0
jne 0x48dd24
mov al, byte [edx + 2]
cmp al, 0xb1
jne 0x48dd2d
mov eax, dword [edx + 0x14]
jmp 0x48dd37
cmp al, 0x8a
jne 0x48dd86
mov eax, dword [edx + 0x14]
mov eax, dword [eax + 0x1c]
cmp dword [eax], 1
jle 0x48dd86
mov edx, dword [esp + 8]
mov al, byte [edx + 0x13]
test al, al
jne 0x48dd4f
inc dword [edx + 0x2c]
mov edi, dword [edx + 0x2c]
jmp 0x48dd5e
dec al
mov byte [edx + 0x13], al
movzx eax, al
mov edi, dword [edx + eax*4 + 0x98]
mov edx, dword [ecx + 0x10]
mov ecx, dword [esp + 8]
push 1
push edi
call fcn.0048ca70
mov ecx, dword [esp + 0x20]
add esp, 8
mov edx, edi
movzx eax, byte [ecx]
inc eax
and eax, 2
or eax, 1
mov al, byte [esp + eax + 0x34]
jmp 0x48ddb8
mov ecx, dword [esp + 8]
lea eax, [esp + 0x40]
push eax
call fcn.00447280
mov ecx, dword [ebp + 0x10]
add esp, 4
mov edx, edi
mov dword [esp + 0x60], eax
call fcn.0048b990
mov ecx, dword [esp + 0x18]
mov edi, dword [esp + 0x40]
mov edx, dword [esp + 0x60]
movzx eax, byte [ecx]
mov al, byte [esp + eax - 2]
mov ecx, dword [esi + 0x6c]
mov byte [esp + 0xf], al
cmp dword [esi + 0x70], ecx
jg 0x48dddc
push edx
push dword [esp + 0x20]
movzx edx, al
mov ecx, esi
push dword [esp + 0x40]
call fcn.004284c0
add esp, 0xc
jmp 0x48de16
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov byte [eax + ecx*4 + 1], 0
lea eax, [eax + ecx*4]
mov cl, byte [esp + 0xf]
mov byte [eax], cl
xor ecx, ecx
mov word [eax + 2], cx
mov ecx, dword [esp + 0x38]
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x1c]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 8]
test edi, edi
je 0x48de9b
mov al, byte [ecx + 0x13]
cmp al, 8
jae 0x48de9b
movzx eax, al
mov dword [ecx + eax*4 + 0x98], edi
inc byte [ecx + 0x13]
jmp 0x48de9b
mov ecx, dword [esi + 0x6c]
xor eax, 1
lea edx, [eax*4 + 0x1f]
cmp dword [esi + 0x70], ecx
jg 0x48de5d
mov ecx, dword [esp + 0x5c]
push 0
push ecx
push dword [esp + 0x40]
mov ecx, esi
call fcn.004284c0
add esp, 0xc
jmp 0x48de97
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov byte [eax + ecx*4], dl
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
lea eax, [eax + ecx*4]
xor ecx, ecx
mov byte [eax + 1], 0
mov word [eax + 2], cx
mov ecx, dword [esp + 0x38]
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x5c]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 8]
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x48df42
mov edi, dword [eax]
inc dword [ecx + 0x2c]
mov eax, dword [ecx + 0x2c]
push 1
mov edx, dword [edi + 0x10]
push eax
mov dword [esp + 0x1c], eax
call fcn.0048ca70
mov ecx, dword [edi + 0x10]
add esp, 8
mov dl, byte [ecx]
mov al, dl
cmp al, 0xb0
jne 0x48decf
mov al, byte [ecx + 2]
cmp al, 0xb1
jne 0x48ded8
mov eax, dword [ecx + 0x14]
jmp 0x48dee2
cmp al, 0x8a
jne 0x48dee7
mov eax, dword [ecx + 0x14]
mov eax, dword [eax + 0x1c]
cmp dword [eax], 1
jg 0x48def1
mov al, byte [edi]
cmp al, 0x38
je 0x48defe
cmp al, 0x36
je 0x48defe
mov eax, dword [esp + 0x30]
lea eax, [eax*2 + 0x36]
jmp 0x48df0c
mov eax, dword [esp + 0x30]
xor eax, 1
lea eax, [eax*2 + 0x37]
mov dword [esp + 0x50], eax
cmp dl, 0xb0
jne 0x48df18
mov dl, byte [ecx + 2]
cmp dl, 0xb1
jne 0x48df22
mov eax, dword [ecx + 0x14]
jmp 0x48df2d
cmp dl, 0x8a
jne 0x48df32
mov eax, dword [ecx + 0x14]
mov eax, dword [eax + 0x1c]
cmp dword [eax], 1
jg 0x48df42
mov edi, dword [ebp + 0x10]
mov ecx, edi
mov edx, dword [esp + 0x3c]
call fcn.0048b990
jmp 0x48df45
mov edi, dword [ebp + 0x10]
cmp dword [esp + 0x30], 0
mov ecx, dword [esi + 0x6c]
sete al
mov dword [edi + 0x44], ecx
add al, 0x25
cmp dword [esp + 0x50], 0xb8
mov byte [edi + 0x3d], al
mov eax, dword [esp + 0x38]
mov dword [edi + 0x40], eax
je 0x48dbec
mov eax, dword [esp + 8]
inc dword [eax + 0x2c]
mov ecx, dword [esi + 0x6c]
mov edi, dword [eax + 0x2c]
cmp dword [esi + 0x70], ecx
jg 0x48df97
push 0
push edi
push dword [esp + 0x40]
mov edx, 0x87
mov ecx, esi
call fcn.004284c0
add esp, 0xc
jmp 0x48dfc6
mov edx, dword [esp + 0x38]
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0x87
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], edi
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esi + 0x6c]
mov edx, dword [esp + 0x50]
cmp dword [esi + 0x70], ecx
jg 0x48dfe8
mov ecx, dword [esp + 0x14]
push edi
push dword [esp + 0x20]
push ecx
mov ecx, esi
call fcn.004284c0
add esp, 0xc
jmp 0x48e01e
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov byte [eax + ecx*4], dl
mov dword [eax + ecx*4 + 0xc], edi
mov dword [eax + ecx*4 + 0x10], 0
lea eax, [eax + ecx*4]
xor ecx, ecx
mov byte [eax + 1], 0
mov word [eax + 2], cx
mov ecx, dword [esp + 0x14]
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x1c]
mov dword [eax + 8], ecx
mov eax, dword [esi + 0x6c]
test eax, eax
jle 0x48dbec
lea ecx, [eax + eax*4]
mov edx, 0x53
mov eax, dword [esi + 0x68]
mov word [eax + ecx*4 - 0x12], dx
jmp 0x48dbec
test edx, 0x200
je 0x48f1a2
mov edi, dword [esp + 0x28]
mov dword [esp + 0x64], 0
mov dword [esp + 0x50], 0
mov byte [esp + 0xf], 0
movzx eax, word [edi + 0x1a]
movzx ecx, word [edi + 0x18]
mov dword [esp + 0x74], eax
movzx eax, word [edi + 0x1c]
xor edi, edi
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x18], ecx
mov dword [esp + 0x34], edi
mov byte [esp + 0x23], 0
mov eax, dword [eax + 0x20]
mov dword [esp + 0x70], eax
mov eax, dword [ebp + 0x10]
mov dword [esp + 0x2c], edi
mov dword [esp + 0x14], edi
mov eax, dword [eax + 8]
mov dword [esp + 0x4c], eax
movzx eax, cx
mov dword [esp + 0x44], eax
mov ecx, eax
test dl, 0x20
je 0x48e0c4
mov edi, dword [esp + 0x28]
mov eax, dword [edi + 0x38]
movzx edi, word [edi + 0x1a]
mov eax, dword [eax + ecx*4]
inc ecx
mov dword [esp + 0x64], eax
test dl, 0x10
je 0x48e1c7
mov edx, dword [esp + 0x28]
mov eax, dword [edx + 0x38]
movzx edx, word [edx + 0x1c]
cmp edi, edx
mov ecx, dword [eax + ecx*4]
cmova edx, edi
mov eax, 0x100
mov dword [esp + 0x50], ecx
mov dword [esp + 0x40], edx
test word [ecx + 0xa], ax
je 0x48e186
mov eax, dword [esp + 8]
mov edi, dword [ebp + 0x10]
inc dword [eax + 0x2c]
mov edx, dword [eax + 0x2c]
mov dword [edi + 0x2c], edx
mov ecx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ecx
jg 0x48e125
push 0
push edx
push 1
mov edx, 0x47
mov ecx, esi
call fcn.004284c0
add esp, 0xc
jmp 0x48e154
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0x47
mov dword [eax + ecx*4 + 4], 1
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esi + 0x6c]
xor ecx, ecx
mov edx, dword [edi + 0x2c]
mov dword [edi + 0x30], eax
add edx, edx
mov eax, dword [esp + 0x70]
mov dword [edi + 0x2c], edx
mov edi, dword [esp + 0x44]
mov eax, dword [eax + 0x1c]
cmp byte [edi + eax], 1
mov eax, dword [ebp + 0x10]
sete cl
xor ecx, dword [esp + 0x30]
or ecx, edx
mov edx, dword [esp + 0x40]
mov dword [eax + 0x2c], ecx
cmp dword [esp + 0x64], 0
mov edi, edx
jne 0x48e1c7
mov edi, dword [esp + 0x70]
mov ecx, dword [esp + 0x44]
mov eax, dword [edi + 4]
movsx ecx, word [eax + ecx*2]
mov dword [esp + 0x40], ecx
test ecx, ecx
js 0x48e1b9
mov eax, dword [edi + 0xc]
add ecx, ecx
mov eax, dword [eax + 4]
test byte [eax + ecx*8 + 4], 0xf
je 0x48e1c0
mov ecx, dword [esp + 0x40]
mov edi, edx
cmp ecx, 0xfffffffe
jne 0x48e1c7
mov byte [esp + 0xf], 1
mov edi, edx
mov eax, dword [esp + 0x28]
mov eax, dword [eax + 0x2c]
test al, 0x30
jne 0x48e263
test eax, 0x80000
je 0x48e263
mov eax, dword [esp + 8]
mov edi, 1
mov ecx, dword [ebp + 0x10]
mov byte [esp + 0xf], 1
inc dword [eax + 0x2c]
cmp dword [ecx], 0
mov edx, dword [eax + 0x2c]
mov dword [esp + 0x2c], edx
mov dword [ecx + 0x24], edx
je 0x48e25a
mov ecx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ecx
jg 0x48e220
push 0
push edx
push 0
lea edx, [edi + 0x46]
mov ecx, esi
call fcn.004284c0
add esp, 0xc
jmp 0x48e253
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov esi, dword [esp + 0x24]
mov dword [eax + ecx*4], 0x47
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 ecx, dword [ebp + 0x10]
mov eax, dword [esp + 8]
dec dword [eax + 0x38]
mov eax, dword [eax + 0x38]
mov dword [ecx + 0x28], eax
mov ecx, dword [esp + 0x70]
mov eax, dword [esp + 0x18]
cmp ax, word [ecx + 0x34]
jae 0x48e2b9
mov eax, dword [ecx + 0x1c]
xor ecx, ecx
mov edx, dword [esp + 0x44]
cmp byte [edx + eax], cl
sete cl
cmp dword [esp + 0x30], ecx
jne 0x48e2b9
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x64]
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x64], eax
mov al, byte [esp + 0xf]
mov byte [esp + 0x23], al
mov eax, dword [esp + 0x74]
mov dword [esp + 0x50], ecx
movzx ecx, dx
movzx eax, al
mov byte [esp + 0xf], 0
mov dword [esp + 0x74], ecx
mov dword [esp + 0x1c], eax
cmp dword [ebp + 0xc], 0
jle 0x48e320
mov eax, dword [esp + 0x28]
test dword [eax + 0x2c], 0x100000
je 0x48e320
mov ecx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ecx
jg 0x48e2ed
push 0
push 0
push dword [esp + 0x54]
mov edx, 0x88
mov ecx, esi
call fcn.004284c0
add esp, 0xc
jmp 0x48e320
mov edx, dword [esp + 0x4c]
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0x88
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 edx, dword [ebp + 0x10]
lea eax, [esp + 0x3c]
mov ecx, dword [esp + 8]
push eax
push edi
push dword [esp + 0x38]
call fcn.0048c400
mov edi, dword [esp + 0x50]
mov edx, eax
mov eax, dword [esp + 0x48]
add esp, 0xc
mov dword [esp + 0x48], edx
test eax, eax
je 0x48e3b4
cmp word [esp + 0x1c], 0
je 0x48e3b4
add eax, edi
jne 0x48e35d
mov dword [esp + 0x34], eax
jmp 0x48e3b4
mov ecx, eax
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x48e362
mov eax, dword [esp + 0x68]
sub ecx, edx
push 0
lea edi, [ecx + 1]
push edi
test eax, eax
je 0x48e382
mov ecx, eax
call fcn.00404910
jmp 0x48e387
call fcn.004042c0
add esp, 8
mov dword [esp + 0x34], eax
test eax, eax
je 0x48e3ac
mov eax, dword [esp + 0x3c]
push edi
mov edi, dword [esp + 0x48]
add eax, edi
push eax
push dword [esp + 0x3c]
call fcn.004bbbe0
add esp, 0xc
jmp 0x48e3b0
mov edi, dword [esp + 0x44]
mov edx, dword [esp + 0x48]
cmp dword [esp + 0x2c], 0
mov eax, dword [ebp + 0x10]
je 0x48e3c7
mov ecx, dword [eax + 0x28]
mov dword [esp + 0x54], ecx
jmp 0x48e3ce
mov eax, dword [eax + 0x10]
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x64]
test eax, eax
je 0x48e3e4
test byte [eax + 0xc], 0x28
mov dword [esp + 0x6c], 0
je 0x48e3ec
mov dword [esp + 0x6c], 1
mov ecx, dword [esp + 0x50]
test ecx, ecx
je 0x48e402
test byte [ecx + 0xc], 0x28
mov dword [esp + 0x5c], 0
je 0x48e40a
mov dword [esp + 0x5c], 1
test eax, eax
jne 0x48e453
cmp word [esp + 0x18], ax
ja 0x48e453
mov dword [esp + 0x78], eax
cmp byte [esp + 0xf], 0
je 0x48e5d7
mov ecx, dword [esi + 0x6c]
add edx, edi
mov dword [esp + 0x6c], 0
cmp dword [esi + 0x70], ecx
jg 0x48e5c8
push 0
push edx
push 0
mov edx, 0x4b
mov ecx, esi
call fcn.004284c0
add esp, 0xc
jmp 0x48e637
mov dword [esp + 0x78], 1
mov dword [esp + 0x10], edi
test eax, eax
je 0x48e419
mov eax, dword [eax]
mov edi, dword [eax + 0x10]
mov eax, dword [esp + 0x74]
movzx ecx, ax
mov eax, dword [esp + 0x44]
add eax, edx
mov dword [esp + 0x40], edi
push ecx
mov ecx, dword [esp + 0xc]
mov edx, edi
push eax
call fcn.0048ca70
mov eax, dword [esp + 0x6c]
mov ecx, 0x100
add esp, 8
test word [eax + 0xa], cx
je 0x48e4dc
mov eax, dword [esi + 0x6c]
lea ecx, [eax + eax*4]
mov eax, dword [esi]
shl ecx, 2
cmp byte [eax + 0x57], 0
je 0x48e4b5
mov ecx, 0x4f06e4
mov edx, 0x4f06da
jmp 0x48e4c0
mov eax, dword [esi + 0x68]
add eax, ecx
lea ecx, [eax - 8]
lea edx, [eax - 0x12]
mov eax, dword [ebp + 0x10]
mov eax, dword [eax + 0x2c]
shr eax, 1
mov dword [ecx], eax
mov eax, dword [ebp + 0x10]
mov al, byte [eax + 0x2c]
and al, 1
movzx eax, al
mov word [edx], ax
mov eax, dword [esp + 0x64]
test byte [eax + 0xa], 0x80
jne 0x48e54c
mov ecx, edi
call fcn.00441930
test eax, eax
je 0x48e54c
mov edx, dword [esp + 0x48]
mov ecx, dword [esi + 0x6c]
add edx, dword [esp + 0x44]
cmp dword [esi + 0x70], ecx
jg 0x48e515
push 0
push dword [esp + 0x58]
mov ecx, esi
push edx
mov edx, 0x32
call fcn.004284c0
add esp, 0xc
jmp 0x48e54c
mov edi, dword [esp + 0x40]
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov esi, dword [esp + 0x24]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x54]
mov dword [eax + ecx*4], 0x32
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esp + 0x3c]
test ecx, ecx
je 0x48e56c
mov eax, dword [esp + 0x44]
add eax, ecx
mov ecx, edi
push eax
mov eax, dword [esp + 0x78]
movzx edx, ax
call fcn.0048ba00
add esp, 4
mov ecx, dword [esp + 0x74]
movzx eax, cx
add dword [esp + 0x10], eax
mov al, byte [edi]
cmp al, 0xb0
jne 0x48e580
mov al, byte [edi + 2]
cmp al, 0xb1
jne 0x48e589
mov eax, dword [edi + 0x14]
jmp 0x48e593
cmp al, 0x8a
jne 0x48e5ae
mov eax, dword [edi + 0x14]
mov eax, dword [eax + 0x1c]
cmp dword [eax], 1
jle 0x48e5ae
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x6c], 1
mov byte [esp + 0xf], 0
jmp 0x48e646
mov edx, dword [esp + 0x64]
mov ecx, dword [ebp + 0x10]
call fcn.0048b990
mov ecx, dword [esp + 0x10]
mov byte [esp + 0xf], 0
jmp 0x48e646
mov edi, dword [esp + 0x44]
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
mov eax, dword [esi + 0x68]
jmp 0x48e611
cmp dword [esp + 0x2c], 0
mov ecx, edi
mov dword [esp + 0x10], ecx
je 0x48e646
mov ecx, dword [esi + 0x6c]
add edx, edi
cmp dword [esi + 0x70], ecx
jg 0x48e604
push 0
push edx
push 0
mov edx, 0x4b
mov ecx, esi
call fcn.004284c0
add esp, 0xc
jmp 0x48e637
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
mov eax, dword [esi + 0x68]
mov esi, dword [esp + 0x24]
lea ecx, [ecx + ecx*4]
mov dword [eax + ecx*4], 0x4b
mov dword [eax + ecx*4 + 0x10], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 4], 0
lea ecx, [edi + 1]
mov dword [esp + 0x78], 1
mov dword [esp + 0x10], ecx
movzx edi, byte [esp + 0xf]
mov eax, ecx
mov edx, dword [esp + 0x3c]
sub eax, edi
mov dword [esp + 0x74], edi
mov edi, dword [esp + 0x48]
test edx, edx
je 0x48e6a3
test eax, eax
jle 0x48e66f
cmp byte [edx], 0x41
jg 0x48e66f
dec eax
inc edi
inc edx
test eax, eax
jg 0x48e663
cmp eax, 1
jle 0x48e681
cmp byte [edx + eax - 1], 0x41
jg 0x48e685
dec eax
cmp eax, 1
jg 0x48e674
test eax, eax
jle 0x48e6a3
push eax
push edx
push 0
push eax
mov eax, dword [esp + 0x18]
mov edx, 0x60
push edi
mov ecx, dword [eax + 8]
call fcn.004287f0
mov ecx, dword [esp + 0x24]
add esp, 0x14
mov eax, dword [esp + 0x28]
movzx eax, word [eax + 0x32]
test ax, ax
je 0x48e6b8
cmp ecx, eax
je 0x48e9d3
mov edx, dword [esp + 0x2c]
test edx, edx
je 0x48e70d
mov ecx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ecx
jg 0x48e6de
push 0
push edx
push 1
mov edx, 0x47
mov ecx, esi
call fcn.004284c0
add esp, 0xc
jmp 0x48e70d
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0x47
mov dword [eax + ecx*4 + 4], 1
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [ebp + 0x10]
mov edi, dword [eax + 0x34]
test edi, edi
je 0x48e7aa
mov edx, dword [esi + 0x6c]
cmp dword [esi + 0x70], edx
jg 0x48e73f
push dword [esp + 0x48]
mov edx, 0x3f
mov ecx, esi
push dword [esp + 0x58]
push edi
call fcn.004284c0
add esp, 0xc
mov edx, eax
jmp 0x48e772
lea eax, [edx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [edx + edx*4]
mov eax, dword [esi + 0x68]
mov esi, dword [esp + 0x24]
mov dword [eax + ecx*4 + 4], edi
mov edi, dword [esp + 0x54]
mov dword [eax + ecx*4 + 8], edi
mov edi, dword [esp + 0x48]
mov dword [eax + ecx*4], 0x3f
mov dword [eax + ecx*4 + 0xc], edi
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esi]
mov edi, dword [esp + 0x54]
cmp byte [eax + 0x57], 0
jne 0x48e791
mov eax, dword [esi + 0x68]
lea ecx, [edx + edx*4]
mov edx, dword [esp + 0x44]
mov byte [eax + ecx*4 + 1], 0xfd
mov dword [eax + ecx*4 + 0x10], edx
push dword [ebp + 0x18]
mov edx, dword [ebp + 8]
push dword [ebp + 0x14]
mov ecx, dword [esp + 0x10]
push edi
push dword [ebp + 0xc]
call fcn.0048cf90
add esp, 0x10
mov ecx, dword [esp + 0x6c]
mov eax, dword [esp + 0x78]
lea eax, [ecx + eax*2]
mov ecx, dword [esp + 0x30]
mov dl, byte [ecx + eax*2 + 0x4e1260]
mov ecx, dword [esp + 0x28]
movzx eax, dl
mov byte [esp + 0xf], dl
mov dword [esp + 0x40], eax
test dword [ecx + 0x2c], 0x100000
je 0x48e85c
cmp eax, 0x16
jne 0x48e85c
mov eax, dword [esp + 0x70]
mov eax, dword [eax + 8]
movsx ecx, word [eax]
mov eax, 0x66666667
add ecx, 9
imul ecx
sar edx, 2
mov edi, edx
shr edi, 0x1f
add edi, edx
mov edx, dword [esi + 0x6c]
mov dword [esp + 0x14], edx
cmp dword [esi + 0x70], edx
jg 0x48e825
push 0
push 0
push edi
mov edx, 0x7c
mov ecx, esi
call fcn.004284c0
add esp, 0xc
mov dword [esp + 0x14], eax
jmp 0x48e854
lea eax, [edx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [edx + edx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0x7c
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
mov eax, dword [esp + 0x40]
mov dl, byte [esp + 0xf]
mov edi, dword [esi + 0x6c]
cmp dword [esi + 0x70], edi
jg 0x48e880
push dword [esp + 0x48]
mov edx, eax
mov ecx, esi
push dword [esp + 0x58]
push dword [esp + 0x54]
call fcn.004284c0
add esp, 0xc
mov edi, eax
jmp 0x48e8ba
lea eax, [edi + 1]
mov dword [esi + 0x6c], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 0x68]
mov byte [eax + ecx*4], dl
mov dword [eax + ecx*4 + 0x10], 0
mov byte [eax + ecx*4 + 1], 0
lea eax, [eax + ecx*4]
xor ecx, ecx
mov word [eax + 2], cx
mov ecx, dword [esp + 0x4c]
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x54]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x48]
mov dword [eax + 0xc], ecx
mov eax, dword [esi]
cmp byte [eax + 0x57], 0
jne 0x48e8d7
mov eax, dword [esi + 0x68]
lea ecx, [edi + edi*4]
mov edi, dword [esp + 0x10]
mov byte [eax + ecx*4 + 1], 0xfd
mov dword [eax + ecx*4 + 0x10], edi
jmp 0x48e8db
mov edi, dword [esp + 0x10]
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x48e9d7
mov ecx, dword [esi + 0x6c]
lea edx, [ecx + 2]
cmp dword [esi + 0x70], ecx
jg 0x48e908
push 0
push edx
push 0
mov edx, 8
mov ecx, esi
call fcn.004284c0
add esp, 0xc
jmp 0x48e93b
mov edi, dword [esp + 0x10]
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 8
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 ecx, dword [esp + 0x30]
mov eax, 1
mov edx, dword [esi + 0x6c]
cmp eax, edi
sbb eax, eax
and eax, 4
mov al, byte [eax + ecx + 0x4e1262]
mov byte [esp + 0xf], al
cmp dword [esi + 0x70], edx
jg 0x48e97b
push dword [esp + 0x48]
movzx edx, al
mov ecx, esi
push dword [esp + 0x58]
push dword [esp + 0x54]
call fcn.004284c0
add esp, 0xc
mov edx, eax
jmp 0x48e9b8
lea eax, [edx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [edx + edx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4 + 0x10], 0
mov byte [eax + ecx*4 + 1], 0
lea eax, [eax + ecx*4]
mov cl, byte [esp + 0xf]
mov byte [eax], cl
xor ecx, ecx
mov word [eax + 2], cx
mov ecx, dword [esp + 0x4c]
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x54]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x48]
mov dword [eax + 0xc], ecx
mov eax, dword [esi]
cmp byte [eax + 0x57], 0
jne 0x48e9d3
mov eax, dword [esi + 0x68]
lea ecx, [edx + edx*4]
sub edi, dword [esp + 0x6c]
mov byte [eax + ecx*4 + 1], 0xfd
mov dword [eax + ecx*4 + 0x10], edi
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x44]
mov edi, edx
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x18], edi
test ecx, ecx
je 0x48eba0
cmp dword [esp + 0x14], 0
mov eax, dword [ecx]
mov ecx, dword [eax + 0x10]
mov dword [esp + 0x6c], ecx
je 0x48ea06
mov edi, dword [ebp + 0x10]
mov eax, dword [esi + 0x6c]
mov dword [edi + 0x44], eax
mov eax, dword [esp + 0x1c]
mov edi, dword [esp + 0x48]
movzx eax, ax
add edi, edx
push eax
mov edx, ecx
mov dword [esp + 0x7c], edi
mov ecx, dword [esp + 0xc]
push edi
call fcn.0048ca70
mov eax, dword [esp + 0x58]
mov ecx, 0x100
add esp, 8
test word [eax + 0xa], cx
je 0x48ea7a
mov eax, dword [esi + 0x6c]
lea ecx, [eax + eax*4]
mov eax, dword [esi]
shl ecx, 2
cmp byte [eax + 0x57], 0
je 0x48ea53
mov ecx, 0x4f06e4
mov edx, 0x4f06da
jmp 0x48ea5e
mov eax, dword [esi + 0x68]
add eax, ecx
lea ecx, [eax - 8]
lea edx, [eax - 0x12]
mov eax, dword [ebp + 0x10]
mov eax, dword [eax + 0x2c]
shr eax, 1
mov dword [ecx], eax
mov eax, dword [ebp + 0x10]
mov al, byte [eax + 0x2c]
and al, 1
movzx eax, al
mov word [edx], ax
mov eax, dword [esp + 0x50]
test byte [eax + 0xa], 0x80
jne 0x48eadc
mov ecx, dword [esp + 0x6c]
call fcn.00441930
test eax, eax
je 0x48eadc
mov ecx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ecx
jg 0x48eaad
push 0
push dword [esp + 0x58]
mov edx, 0x32
mov ecx, esi
push edi
call fcn.004284c0
add esp, 0xc
jmp 0x48eadc
mov edx, dword [esp + 0x54]
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0x32
mov dword [eax + ecx*4 + 4], edi
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov edi, dword [esp + 0x34]
test edi, edi
je 0x48eb56
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x6c]
push edi
movzx edx, dx
call fcn.0048ba00
mov eax, dword [esp + 0x20]
add esp, 4
movzx ecx, ax
mov eax, ecx
test ecx, ecx
je 0x48eb20
mov ecx, dword [esp + 0x78]
nop dword [eax]
cmp byte [edi], 0x41
jg 0x48eb1c
dec eax
inc ecx
inc edi
test eax, eax
jg 0x48eb10
mov dword [esp + 0x78], ecx
cmp eax, 1
jle 0x48eb32
cmp byte [eax + edi - 1], 0x41
jg 0x48eb36
dec eax
cmp eax, 1
jg 0x48eb25
test eax, eax
jle 0x48eb56
push eax
push edi
push 0
push eax
mov eax, dword [esp + 0x18]
mov edx, 0x60
push dword [esp + 0x88]
mov ecx, dword [eax + 8]
call fcn.004287f0
add esp, 0x14
mov ecx, dword [esp + 0x6c]
mov edx, dword [esp + 0x1c]
mov edi, dword [esp + 0x18]
movzx eax, dx
add edi, eax
mov al, byte [ecx]
cmp al, 0xb0
jne 0x48eb70
mov al, byte [ecx + 2]
cmp al, 0xb1
jne 0x48eb79
mov eax, dword [ecx + 0x14]
jmp 0x48eb83
cmp al, 0x8a
jne 0x48eb92
mov eax, dword [ecx + 0x14]
mov eax, dword [eax + 0x1c]
cmp dword [eax], 1
jle 0x48eb92
mov dword [esp + 0x5c], 1
jmp 0x48ec07
mov edx, dword [esp + 0x50]
mov ecx, dword [ebp + 0x10]
call fcn.0048b990
jmp 0x48ec07
cmp byte [esp + 0x23], 0
je 0x48ec07
test eax, eax
jne 0x48ec06
mov edi, dword [esp + 0x48]
mov ecx, dword [esi + 0x6c]
add edi, edx
cmp dword [esi + 0x70], ecx
jg 0x48ebcb
push eax
push edi
push eax
lea edx, [eax + 0x4b]
mov ecx, esi
call fcn.004284c0
add esp, 0xc
jmp 0x48ebfa
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0x4b
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], edi
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov edi, dword [esp + 0x18]
mov dword [esp + 0x5c], 0
inc edi
push dword [esp + 0x3c]
mov ecx, dword [esp + 0x6c]
push ecx
call fcn.004045f0
push dword [esp + 0x3c]
push dword [esp + 0x74]
call fcn.004045f0
mov ecx, dword [ebp + 0x10]
add esp, 0x10
cmp dword [ecx + 0x44], 0
jne 0x48ec34
mov eax, dword [esi + 0x6c]
mov dword [ecx + 0x44], eax
test edi, edi
je 0x48ed4e
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x48ec97
mov ecx, dword [esi + 0x6c]
lea edx, [ecx + 3]
cmp dword [esi + 0x70], ecx
jg 0x48ec64
push 0
push edx
push eax
mov edx, 0x10
mov ecx, esi
call fcn.004284c0
add esp, 0xc
jmp 0x48ec97
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov esi, dword [esp + 0x2c]
mov dword [eax + ecx*4 + 4], esi
mov esi, dword [esp + 0x24]
mov dword [eax + ecx*4], 0x10
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x30]
mov edx, dword [esi + 0x6c]
mov al, byte [eax + ecx*2 + 0x4e07f4]
mov byte [esp + 0x23], al
cmp dword [esi + 0x70], edx
jg 0x48eccf
push dword [esp + 0x48]
movzx edx, al
mov ecx, esi
push dword [esp + 0x58]
push dword [esp + 0x54]
call fcn.004284c0
add esp, 0xc
mov edx, eax
jmp 0x48ed0c
lea eax, [edx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [edx + edx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4 + 0x10], 0
mov byte [eax + ecx*4 + 1], 0
lea eax, [eax + ecx*4]
mov cl, byte [esp + 0x23]
mov byte [eax], cl
xor ecx, ecx
mov word [eax + 2], cx
mov ecx, dword [esp + 0x4c]
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x54]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x48]
mov dword [eax + 0xc], ecx
mov eax, dword [esi]
cmp byte [eax + 0x57], 0
jne 0x48ed23
mov eax, dword [esi + 0x68]
lea ecx, [edx + edx*4]
mov byte [eax + ecx*4 + 1], 0xfd
mov dword [eax + ecx*4 + 0x10], edi
mov ecx, dword [esp + 0x14]
test ecx, ecx
je 0x48ed4e
mov edx, dword [esi + 0x6c]
jns 0x48ed33
lea ecx, [edx - 1]
mov eax, dword [esi]
cmp byte [eax + 0x57], 0
je 0x48ed42
mov eax, 0x4f06d8
jmp 0x48ed4b
mov eax, dword [esi + 0x68]
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*4]
mov dword [eax + 8], edx
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x48ee41
mov ecx, dword [esi + 0x6c]
lea edx, [ecx + 2]
cmp dword [esi + 0x70], ecx
jg 0x48ed7a
push 0
push edx
push eax
mov edx, 0xf
mov ecx, esi
call fcn.004284c0
add esp, 0xc
jmp 0x48edad
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov esi, dword [esp + 0x2c]
mov dword [eax + ecx*4 + 4], esi
mov esi, dword [esp + 0x24]
mov dword [eax + ecx*4], 0xf
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0x30]
mov edx, dword [esi + 0x6c]
mov al, byte [eax + ecx*2 + 0x4e07f4]
mov byte [esp + 0x23], al
cmp dword [esi + 0x70], edx
jg 0x48ede5
push dword [esp + 0x48]
movzx edx, al
mov ecx, esi
push dword [esp + 0x58]
push dword [esp + 0x54]
call fcn.004284c0
add esp, 0xc
mov edx, eax
jmp 0x48ee22
lea eax, [edx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [edx + edx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4 + 0x10], 0
mov byte [eax + ecx*4 + 1], 0
lea eax, [eax + ecx*4]
mov cl, byte [esp + 0x23]
mov byte [eax], cl
xor ecx, ecx
mov word [eax + 2], cx
mov ecx, dword [esp + 0x4c]
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x54]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x48]
mov dword [eax + 0xc], ecx
mov eax, dword [esi]
cmp byte [eax + 0x57], 0
jne 0x48ee41
mov eax, dword [esi + 0x68]
lea ecx, [edx + edx*4]
mov byte [eax + ecx*4 + 1], 0xfd
lea ecx, [eax + ecx*4]
mov eax, dword [esp + 0x74]
add eax, edi
mov dword [ecx + 0x10], eax
mov edi, dword [esp + 0x28]
test dword [edi + 0x2c], 0x40000
je 0x48eea0
mov ecx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ecx
jg 0x48ee71
mov eax, dword [esp + 0x44]
mov edx, 0x7d
push eax
push eax
push dword [esp + 0x54]
mov ecx, esi
call fcn.004284c0
add esp, 0xc
jmp 0x48eea0
mov edx, dword [esp + 0x4c]
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x44]
mov dword [eax + ecx*4], 0x7d
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
test byte [edi + 0x2c], 0x40
mov edx, 0x1020
mov eax, dword [ebp + 8]
je 0x48eec1
test word [eax + 0x2c], dx
jne 0x48eec1
mov dword [esp + 0x3c], 1
jmp 0x48f105
mov edx, dword [esp + 0x70]
mov edi, dword [edx + 0xc]
test byte [edi + 0x1c], 0x80
jne 0x48eef3
mov edi, dword [esp + 0x4c]
mov ecx, eax
push edi
push dword [esp + 0x3c]
call fcn.0048c900
add esp, 8
mov dword [esp + 0x3c], 0
mov edx, 0x1020
jmp 0x48f109
mov ecx, dword [esp + 0x38]
xor eax, eax
mov dword [esp + 0x3c], eax
cmp ecx, dword [esp + 0x4c]
je 0x48f15f
mov edi, dword [edi + 8]
mov dword [esp + 0x3c], eax
test edi, edi
je 0x48ef26
mov dword [esp + 0x3c], eax
mov eax, dword [edi + 0x38]
and al, 3
cmp al, 2
je 0x48ef26
mov edi, dword [edi + 0x14]
test edi, edi
jne 0x48ef16
movzx ecx, word [edi + 0x32]
cmp ecx, 1
jne 0x48ef5b
mov ecx, dword [esp + 8]
mov al, byte [ecx + 0x13]
test al, al
jne 0x48ef46
inc dword [ecx + 0x2c]
mov eax, dword [ecx + 0x2c]
mov dword [esp + 0x34], eax
jmp 0x48ef9e
dec al
mov byte [ecx + 0x13], al
movzx eax, al
mov eax, dword [ecx + eax*4 + 0x98]
mov dword [esp + 0x34], eax
jmp 0x48ef9e
mov edx, dword [esp + 8]
mov eax, dword [edx + 0x20]
mov edx, dword [edx + 0x1c]
mov dword [esp + 0x34], eax
cmp ecx, edx
jg 0x48ef83
mov esi, dword [esp + 8]
add eax, ecx
sub edx, ecx
mov dword [esi + 0x20], eax
mov eax, esi
mov esi, dword [esp + 0x24]
mov dword [eax + 0x1c], edx
jmp 0x48ef9a
mov eax, dword [esp + 8]
mov eax, dword [eax + 0x2c]
lea edx, [eax + 1]
add eax, ecx
mov ecx, dword [esp + 8]
mov dword [esp + 0x34], edx
mov dword [ecx + 0x2c], eax
mov edx, dword [esp + 0x70]
movzx eax, word [edi + 0x32]
mov dword [esp + 0x40], 0
mov ecx, eax
mov dword [esp + 0x5c], 0
cmp word [esp + 0x40], ax
jae 0x48f082
mov eax, dword [esp + 0x34]
mov dword [esp + 0x14], eax
jmp 0x48efd4
mov edx, dword [esp + 0x70]
movzx edx, word [edx + 0x34]
xor ecx, ecx
test edx, edx
je 0x48f009
mov eax, dword [edi + 4]
mov esi, dword [esp + 0x5c]
movzx eax, word [eax + esi*2]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x70]
mov eax, dword [eax + 4]
mov esi, dword [esp + 0x40]
cmp si, word [eax]
mov esi, dword [esp + 0x24]
je 0x48f031
inc ecx
add eax, 2
cmp ecx, edx
jl 0x48eff4
or eax, 0xffffffff
mov ecx, dword [esi + 0x6c]
movsx edx, ax
cmp dword [esi + 0x70], ecx
jg 0x48f036
push dword [esp + 0x14]
mov ecx, esi
push edx
push dword [esp + 0x54]
mov edx, 0x5e
call fcn.004284c0
add esp, 0xc
jmp 0x48f069
movzx eax, cx
jmp 0x48f00c
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov esi, dword [esp + 0x4c]
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [esp + 0x14]
mov dword [eax + ecx*4 + 4], esi
mov esi, dword [esp + 0x24]
mov dword [eax + ecx*4], 0x5e
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov edx, dword [esp + 0x5c]
movzx ecx, word [edi + 0x32]
inc edx
inc dword [esp + 0x14]
mov dword [esp + 0x5c], edx
cmp edx, ecx
jl 0x48efd0
mov edx, dword [esi + 0x6c]
movzx edi, cx
cmp dword [esi + 0x70], edx
jg 0x48f0af
push dword [esp + 0x34]
mov edx, 0x1b
mov ecx, esi
push dword [esp + 0x88]
push dword [esp + 0x40]
call fcn.004284c0
add esp, 0xc
mov edx, eax
jmp 0x48f0e9
lea eax, [edx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [edx + edx*4]
mov eax, dword [esi + 0x68]
mov esi, dword [esp + 0x38]
mov dword [eax + ecx*4 + 4], esi
mov esi, dword [esp + 0x84]
mov dword [eax + ecx*4 + 8], esi
mov esi, dword [esp + 0x34]
mov dword [eax + ecx*4 + 0xc], esi
mov esi, dword [esp + 0x24]
mov dword [eax + ecx*4], 0x1b
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esi]
cmp byte [eax + 0x57], 0
jne 0x48f100
mov eax, dword [esi + 0x68]
lea ecx, [edx + edx*4]
mov byte [eax + ecx*4 + 1], 0xfd
mov dword [eax + ecx*4 + 0x10], edi
mov edx, 0x1020
mov edi, dword [esp + 0x4c]
mov ecx, dword [esp + 0x38]
mov eax, dword [ebp + 0x10]
cmp dword [eax], 0
jne 0x48f149
mov eax, dword [ebp + 8]
test word [eax + 0x2c], dx
jne 0x48f12e
push eax
mov edx, ecx
mov ecx, dword [esp + 0x74]
push edi
call fcn.0048cd00
add esp, 8
mov eax, dword [esp + 0x70]
mov ecx, dword [eax + 0x24]
test ecx, ecx
je 0x48f149
push dword [esp + 0x7c]
mov edx, dword [esp + 0x3c]
call fcn.0048cf10
add esp, 4
mov ecx, dword [esp + 0x28]
mov edx, dword [ebp + 0x10]
test dword [ecx + 0x2c], 0x1000
je 0x48f16a
mov byte [edx + 0x3d], 0xb8
jmp 0x48f177
mov edi, dword [esp + 0x4c]
mov edx, 0x1020
jmp 0x48f10d
cmp dword [esp + 0x30], 0
sete al
add al, 0x25
mov byte [edx + 0x3d], al
mov dword [edx + 0x40], edi
mov al, byte [ecx + 0x2e]
and al, 1
mov byte [edx + 0x3e], al
test byte [ecx + 0x2c], 0xf
jne 0x48f18c
mov byte [edx + 0x3f], 1
cmp dword [esp + 0x3c], 0
je 0x48febf
xor eax, eax
mov dword [esp + 0x70], eax
jmp 0x48dbee
test edx, 0x2000
je 0x48fe10
mov ecx, dword [esp + 8]
mov dword [esp + 0x34], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0x50], 0
mov eax, dword [ecx + 0x28]
dec dword [ecx + 0x38]
mov edi, dword [ecx + 0x2c]
mov dword [esp + 0x98], eax
inc edi
inc eax
mov dword [ecx + 0x2c], edi
mov dword [ecx + 0x28], eax
mov eax, dword [ecx + 0x38]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x80]
mov dword [esp + 0x5c], edi
mov dword [esp + 0x18], 0
mov dword [esp + 0x2c], 0
mov edx, dword [eax + 0x10]
mov eax, dword [esp + 0x28]
mov dword [esp + 0x6c], edx
mov eax, dword [eax + 0x38]
mov eax, dword [eax]
mov dword [esp + 0x40], eax
mov eax, dword [eax + 0x18]
mov dword [esp + 0x78], eax
mov eax, dword [ebp + 0x10]
mov dword [eax + 0x40], edi
mov edi, dword [ebp + 8]
mov byte [eax + 0x3d], 0x43
mov al, byte [edi + 0x30]
cmp al, 1
jbe 0x48f38a
mov ecx, dword [esp + 0x68]
movzx eax, al
sub eax, dword [ebp + 0xc]
dec eax
mov dword [esp + 0x60], eax
push 0
lea eax, [eax + eax*8]
lea eax, [eax*8 + 0x50]
push eax
test ecx, ecx
je 0x48f264
call fcn.00404910
mov edi, eax
mov dword [esp + 0x7c], edi
jmp 0x48f26f
call fcn.004042c0
mov edi, eax
mov dword [esp + 0x7c], eax
add esp, 8
test edi, edi
jne 0x48f282
mov eax, dword [ebp + 0x14]
mov edx, dword [ebp + 0x18]
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov edx, dword [esp + 0x60]
lea eax, [edx + 1]
movzx eax, al
mov dword [edi + 4], eax
mov dword [edi], eax
mov eax, dword [esp + 0x80]
movups xmm0, xmmword [eax]
movups xmmword [edi + 8], xmm0
movups xmm0, xmmword [eax + 0x10]
movups xmmword [edi + 0x18], xmm0
movups xmm0, xmmword [eax + 0x20]
movups xmmword [edi + 0x28], xmm0
movups xmm0, xmmword [eax + 0x30]
movups xmmword [edi + 0x38], xmm0
movq xmm0, qword [eax + 0x40]
mov eax, dword [ebp + 8]
movq qword [edi + 0x48], xmm0
mov eax, dword [eax + 4]
add eax, 8
cmp edx, 1
jl 0x48f323
lea ecx, [edi + 0x50]
mov esi, eax
mov edi, dword [ebp + 0x10]
add edi, 0x9c
nop dword [eax]
movzx eax, byte [edi]
lea edi, [edi + 0x60]
lea ecx, [ecx + 0x48]
lea eax, [eax + eax*8]
movups xmm0, xmmword [esi + eax*8]
movups xmmword [ecx - 0x48], xmm0
movups xmm0, xmmword [esi + eax*8 + 0x10]
movups xmmword [ecx - 0x38], xmm0
movups xmm0, xmmword [esi + eax*8 + 0x20]
movups xmmword [ecx - 0x28], xmm0
movups xmm0, xmmword [esi + eax*8 + 0x30]
movups xmmword [ecx - 0x18], xmm0
movq xmm0, qword [esi + eax*8 + 0x40]
movq qword [ecx - 8], xmm0
sub edx, 1
jne 0x48f2e0
mov esi, dword [esp + 0x24]
mov edx, dword [esp + 0x6c]
mov ecx, dword [esp + 8]
mov eax, dword [ebp + 8]
test byte [eax + 0x2c], 0x10
jne 0x48f4e3
test byte [edx + 0x1c], 0x80
jne 0x48f3da
inc dword [ecx + 0x2c]
lea edi, [esi + 0x6c]
mov edx, dword [ecx + 0x2c]
lea eax, [esi + 0x70]
mov ecx, dword [edi]
mov dword [esp + 0x10], edx
mov dword [esp + 0x30], edi
mov dword [esp + 0x48], eax
cmp dword [eax], ecx
jg 0x48f393
push 0
push edx
push 0
mov edx, 0x4b
mov ecx, esi
call fcn.004284c0
mov eax, dword [esp + 0x14]
lea ecx, [esi + 0x70]
add esp, 0xc
inc dword [eax + 0x2c]
mov eax, dword [eax + 0x2c]
mov dword [esp + 0x50], eax
jmp 0x48f4f1
mov eax, dword [edi + 4]
mov dword [esp + 0x74], eax
jmp 0x48f32b
lea eax, [ecx + 1]
mov dword [edi], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0x4b
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 eax, dword [esp + 8]
lea edi, [esi + 0x6c]
lea ecx, [esi + 0x70]
inc dword [eax + 0x2c]
mov eax, dword [eax + 0x2c]
mov dword [esp + 0x50], eax
jmp 0x48f4f1
mov edi, dword [edx + 8]
test edi, edi
je 0x48f3f1
mov eax, dword [edi + 0x38]
and al, 3
cmp al, 2
je 0x48f3f1
mov edi, dword [edi + 0x14]
test edi, edi
jne 0x48f3e1
mov eax, dword [ecx + 0x28]
mov dword [esp + 0x10], eax
inc eax
mov dword [ecx + 0x28], eax
lea eax, [esi + 0x6c]
mov ecx, dword [eax]
movzx edx, word [edi + 0x32]
mov dword [esp + 0x30], eax
lea eax, [esi + 0x70]
mov dword [esp + 0x48], eax
cmp dword [eax], ecx
jg 0x48f42c
push 0
push edx
push dword [esp + 0x18]
mov edx, 0x76
mov ecx, esi
call fcn.004284c0
add esp, 0xc
jmp 0x48f45f
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov esi, dword [esp + 0x10]
mov dword [eax + ecx*4 + 4], esi
mov esi, dword [esp + 0x24]
mov dword [eax + ecx*4], 0x76
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esp + 8]
mov edx, edi
mov eax, dword [ecx + 8]
mov dword [esp + 0x60], eax
call fcn.0045b090
mov edi, eax
test edi, edi
je 0x48f3c1
mov edx, dword [esp + 0x60]
mov ecx, dword [edx]
cmp byte [ecx + 0x57], 0
je 0x48f4b3
push edi
mov edx, 0xfffffff8
call fcn.00429070
mov eax, dword [esp + 0xc]
lea edi, [esi + 0x6c]
add esp, 4
mov dword [esp + 0x30], edi
lea ecx, [esi + 0x70]
mov dword [esp + 0x48], ecx
inc dword [eax + 0x2c]
mov eax, dword [eax + 0x2c]
mov dword [esp + 0x50], eax
jmp 0x48f4f1
mov eax, dword [edx + 0x6c]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0x68]
mov dword [eax + ecx*4 - 4], edi
lea edi, [esi + 0x6c]
mov byte [eax + ecx*4 - 0x13], 0xf8
lea ecx, [esi + 0x70]
mov eax, dword [esp + 8]
mov dword [esp + 0x30], edi
mov dword [esp + 0x48], ecx
inc dword [eax + 0x2c]
mov eax, dword [eax + 0x2c]
mov dword [esp + 0x50], eax
jmp 0x48f4f1
lea edi, [esi + 0x6c]
lea ecx, [esi + 0x70]
mov dword [esp + 0x30], edi
mov dword [esp + 0x48], ecx
mov edx, dword [edi]
mov dword [esp + 0x60], edx
cmp dword [ecx], edx
jg 0x48f518
push 0
push dword [esp + 0x60]
mov edx, 0x47
mov ecx, esi
push 0
call fcn.004284c0
add esp, 0xc
mov dword [esp + 0x60], eax
jmp 0x48f54a
lea eax, [edx + 1]
mov dword [edi], eax
lea ecx, [edx + edx*4]
mov eax, dword [esi + 0x68]
mov edx, dword [esp + 0x5c]
mov dword [eax + ecx*4], 0x47
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 [ebp + 8]
cmp dword [edx + 0x64], 1
jle 0x48f658
xor ecx, ecx
xor edi, edi
mov dword [esp + 0x14], ecx
nop
mov eax, dword [edx + 0x70]
mov edx, dword [eax + edi]
add eax, edi
cmp eax, dword [esp + 0x40]
je 0x48f5bb
mov esi, 0x8006
test word [eax + 0xa], si
mov esi, dword [esp + 8]
jne 0x48f5bb
mov ecx, 0x3fff
test word [eax + 0xc], cx
mov ecx, dword [esp + 0x14]
je 0x48f5bb
test dword [edx + 4], 0x400000
jne 0x48f5bb
mov ecx, dword [esp + 0x68]
push 0
push 0
call fcn.00440470
mov edx, dword [esp + 0x34]
mov ecx, esi
push eax
call fcn.0043fd50
mov ecx, dword [esp + 0x20]
add esp, 0xc
mov dword [esp + 0x2c], eax
jmp 0x48f5bf
mov eax, dword [esp + 0x2c]
mov edx, dword [ebp + 8]
inc ecx
add edi, 0x30
mov dword [esp + 0x14], ecx
cmp ecx, dword [edx + 0x64]
jl 0x48f560
mov esi, dword [esp + 0x24]
test eax, eax
je 0x48f658
mov eax, dword [esp + 8]
push 0
push 0x34
mov ecx, dword [eax]
call fcn.00404910
mov edi, eax
add esp, 8
test edi, edi
je 0x48f645
push 0x34
push 0
push edi
call fcn.004bb940
or eax, 0xffffffff
mov byte [edi], 0x2c
mov word [edi + 0x22], ax
add esp, 0xc
mov eax, dword [esp + 0x2c]
mov ecx, edi
mov dword [edi + 0x10], eax
mov eax, dword [eax + 4]
and eax, 0x400208
or dword [edi + 4], eax
call fcn.0043f920
mov ecx, dword [esp + 8]
mov eax, dword [ecx]
mov eax, dword [eax + 0x84]
cmp dword [edi + 0x18], eax
jle 0x48f654
push eax
push str.Expression_tree_is_too_large__maximum_depth__d_
push ecx
call fcn.00407e20
add esp, 0xc
jmp 0x48f654
mov eax, dword [esp + 8]
mov edx, dword [esp + 0x2c]
mov ecx, dword [eax]
call fcn.004402a0
mov dword [esp + 0x2c], edi
mov edi, dword [esp + 8]
push str.MULTI_INDEX_OR
push 1
push edi
call fcn.00428ab0
mov edx, dword [esp + 0x84]
xor ecx, ecx
add esp, 0xc
mov dword [esp + 0x1c], ecx
cmp dword [edx + 0xc], ecx
jle 0x48f70c
mov dword [esp + 0x88], 1
nop dword [eax]
lea eax, [ecx + ecx*2]
shl eax, 4
add eax, dword [edx + 0x18]
mov edx, dword [esp + 0x38]
cmp dword [eax + 0x14], edx
je 0x48f6ad
mov edx, 0x400
test word [eax + 0xc], dx
je 0x48f6fc
mov edx, dword [eax]
mov dword [esp + 0x3c], 0
test edx, edx
je 0x48f6d3
mov ecx, dword [esp + 0x68]
push 0
push 0
call fcn.00440470
mov ecx, dword [esp + 0x24]
add esp, 8
mov edi, eax
jmp 0x48f6d5
xor edi, edi
mov eax, dword [esp + 0x68]
mov dword [esp + 0x58], edi
cmp byte [eax + 0x57], 0
je 0x48f721
test edi, edi
je 0x48fc6c
mov edx, edi
mov ecx, eax
call fcn.004402a0
mov edi, dword [esp + 8]
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x78]
inc ecx
mov dword [esp + 0x1c], ecx
mov edx, eax
cmp ecx, dword [eax + 0xc]
jl 0x48f690
mov ecx, dword [edi + 0xdc]
test ecx, ecx
jne 0x48fc75
xor eax, eax
jmp 0x48fc9b
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x48f72e
mov dword [eax + 0xc], edi
mov edi, eax
lea eax, [ecx + 1]
push eax
push str.INDEX__d
push 1
push dword [esp + 0x14]
call fcn.00428ab0
push dword [esp + 0xa8]
mov edx, dword [esp + 0x88]
push 0x20
push 0
push 0
push 0
push edi
mov edi, dword [esp + 0x30]
mov ecx, edi
call fcn.0049ab90
add esp, 0x28
mov dword [esp + 0x54], eax
test eax, eax
je 0x48fc50
mov edx, dword [esp + 0x74]
lea ecx, [eax + 0x300]
push 0
push ecx
mov ecx, edi
call fcn.0048b3a0
mov eax, dword [ebp + 8]
add esp, 8
test byte [eax + 0x2c], 0x10
jne 0x48f859
mov eax, dword [esp + 0x78]
mov edi, dword [esp + 0x1c]
mov eax, dword [eax + 0xc]
dec eax
cmp edi, eax
mov eax, 0xffffffff
cmove edi, eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x14], edi
test byte [eax + 0x1c], 0x80
jne 0x48f88d
push dword [esp + 0x50]
mov edx, eax
mov ecx, esi
push 0xffffffffffffffff
push dword [esp + 0x40]
call fcn.004449b0
mov ecx, dword [esp + 0x3c]
add esp, 0xc
mov eax, dword [esp + 0x48]
mov edx, dword [ecx]
mov dword [esp + 0x3c], edx
cmp dword [eax], edx
jg 0x48f808
push dword [esp + 0x50]
mov edx, 0x2e
mov ecx, esi
push 0
push dword [esp + 0x18]
call fcn.004284c0
mov edx, eax
add esp, 0xc
mov dword [esp + 0x3c], edx
jmp 0x48f83e
mov edi, dword [esp + 0x10]
lea eax, [edx + 1]
mov dword [ecx], eax
lea ecx, [edx + edx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4 + 4], edi
mov edi, dword [esp + 0x50]
mov dword [eax + ecx*4 + 0xc], edi
mov edi, dword [esp + 0x14]
mov dword [eax + ecx*4], 0x2e
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esi]
cmp byte [eax + 0x57], 0
jne 0x48f855
mov eax, dword [esi + 0x68]
lea ecx, [edx + edx*4]
mov byte [eax + ecx*4 + 1], 0xfd
mov dword [eax + ecx*4 + 0x10], edi
mov edi, dword [esp + 8]
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0x48]
mov ecx, dword [edx]
cmp dword [eax], ecx
jg 0x48fb37
push 0
push dword [esp + 0x50]
mov edx, 9
mov ecx, esi
push dword [esp + 0x64]
call fcn.004284c0
mov edx, dword [esp + 0x3c]
add esp, 0xc
jmp 0x48fb6d
mov ecx, eax
call fcn.004529f0
mov dword [esp + 0x9c], eax
movzx ecx, word [eax + 0x32]
mov edi, ecx
mov eax, ecx
mov dword [esp + 0x28], eax
mov dword [esp + 0x64], edi
cmp edi, 1
jne 0x48f8e0
mov ecx, dword [esp + 8]
mov al, byte [ecx + 0x13]
test al, al
jne 0x48f8c9
inc dword [ecx + 0x2c]
xor edi, edi
mov edx, dword [ecx + 0x2c]
mov dword [esp + 0x44], edx
jmp 0x48f927
dec al
xor edi, edi
mov byte [ecx + 0x13], al
movzx eax, al
mov edx, dword [ecx + eax*4 + 0x98]
mov dword [esp + 0x44], edx
jmp 0x48f927
mov eax, dword [esp + 8]
mov ecx, dword [eax + 0x1c]
mov edx, dword [eax + 0x20]
mov dword [esp + 0x44], edx
cmp edi, ecx
jg 0x48f909
mov esi, dword [esp + 8]
lea eax, [edx + edi]
sub ecx, edi
mov dword [esi + 0x20], eax
mov eax, esi
mov esi, dword [esp + 0x24]
mov dword [eax + 0x1c], ecx
jmp 0x48f91c
mov eax, dword [eax + 0x2c]
mov ecx, dword [esp + 8]
lea edx, [eax + 1]
add eax, edi
mov dword [esp + 0x44], edx
mov dword [ecx + 0x2c], eax
xor eax, eax
xor edi, edi
cmp ax, word [esp + 0x28]
jae 0x48f957
lea eax, [edi + edx]
mov ecx, esi
mov edx, dword [esp + 0x6c]
push eax
mov eax, dword [esp + 0xa0]
mov eax, dword [eax + 4]
movsx eax, word [eax + edi*2]
push eax
push dword [esp + 0x40]
call fcn.004449b0
mov edx, dword [esp + 0x50]
inc edi
add esp, 0xc
cmp edi, dword [esp + 0x64]
jl 0x48f927
mov eax, dword [esp + 0x14]
test eax, eax
je 0x48f9ea
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x48]
mov edi, dword [ecx]
mov dword [esp + 0x3c], edi
cmp dword [eax], edi
jg 0x48f997
push edx
push 0
push dword [esp + 0x18]
mov edx, 0x1c
mov ecx, esi
call fcn.004284c0
mov edx, dword [esp + 0x50]
add esp, 0xc
mov edi, eax
mov dword [esp + 0x3c], eax
jmp 0x48f9c9
lea eax, [edi + 1]
mov dword [ecx], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 0x68]
mov esi, dword [esp + 0x10]
mov dword [eax + ecx*4 + 4], esi
mov esi, dword [esp + 0x24]
mov dword [eax + ecx*4], 0x1c
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esi]
cmp byte [eax + 0x57], 0
jne 0x48f9e4
mov eax, dword [esi + 0x68]
lea ecx, [edi + edi*4]
mov edi, dword [esp + 0x64]
mov byte [eax + ecx*4 + 1], 0xfd
mov dword [eax + ecx*4 + 0x10], edi
mov eax, dword [esp + 0x14]
test eax, eax
js 0x48faea
mov eax, dword [esp + 0x30]
mov ecx, dword [eax]
mov eax, dword [esp + 0x48]
cmp dword [eax], ecx
jg 0x48fa1c
push dword [esp + 0x50]
mov ecx, esi
push dword [esp + 0x68]
push edx
mov edx, 0x61
call fcn.004284c0
mov edx, dword [esp + 0x50]
add esp, 0xc
jmp 0x48fa4e
mov edi, dword [esp + 0x30]
lea eax, [ecx + 1]
lea ecx, [ecx + ecx*4]
mov dword [edi], eax
mov eax, dword [esi + 0x68]
mov edi, dword [esp + 0x64]
mov dword [eax + ecx*4 + 8], edi
mov edi, dword [esp + 0x50]
mov dword [eax + ecx*4], 0x61
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 0xc], edi
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x48]
mov edi, dword [ecx]
cmp dword [eax], edi
jg 0x48fa7c
push edx
push dword [esp + 0x54]
mov edx, 0x8a
mov ecx, esi
push dword [esp + 0x18]
call fcn.004284c0
mov edx, dword [esp + 0x50]
add esp, 0xc
mov edi, eax
jmp 0x48faae
mov edx, dword [esp + 0x10]
lea eax, [edi + 1]
mov dword [ecx], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x50]
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [esp + 0x44]
mov dword [eax + ecx*4], 0x8a
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esi]
cmp byte [eax + 0x57], 0
jne 0x48fac9
mov eax, dword [esi + 0x68]
lea ecx, [edi + edi*4]
mov edi, dword [esp + 0x64]
mov byte [eax + ecx*4 + 1], 0xfd
mov dword [eax + ecx*4 + 0x10], edi
cmp dword [esp + 0x14], 0
je 0x48faea
mov eax, dword [esp + 0x30]
mov eax, dword [eax]
test eax, eax
jle 0x48faea
lea ecx, [eax + eax*4]
mov edi, 0x10
mov eax, dword [esi + 0x68]
mov word [eax + ecx*4 - 0x12], di
cmp word [esp + 0x28], 1
jne 0x48fb1b
test edx, edx
je 0x48f855
mov edi, dword [esp + 8]
mov al, byte [edi + 0x13]
cmp al, 8
jae 0x48f859
movzx eax, al
mov dword [edi + eax*4 + 0x98], edx
inc byte [edi + 0x13]
jmp 0x48f859
mov edi, dword [esp + 8]
mov eax, dword [esp + 0x64]
cmp eax, dword [edi + 0x1c]
jle 0x48f859
mov dword [edi + 0x1c], eax
mov dword [edi + 0x20], edx
jmp 0x48f859
mov edi, dword [esp + 0x5c]
lea eax, [ecx + 1]
mov dword [edx], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4 + 4], edi
mov edi, dword [esp + 0x4c]
mov dword [eax + ecx*4 + 8], edi
mov edi, dword [esp + 8]
mov dword [eax + ecx*4], 9
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esp + 0x3c]
test ecx, ecx
je 0x48fb97
mov edx, dword [edx]
jns 0x48fb7c
lea ecx, [edx - 1]
mov eax, dword [esi]
cmp byte [eax + 0x57], 0
je 0x48fb8b
mov eax, 0x4f06d8
jmp 0x48fb94
mov eax, dword [esi + 0x68]
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*4]
mov dword [eax + 8], edx
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x18]
mov edx, dword [eax + 0x34]
test dl, 2
cmovne ecx, dword [esp + 0x88]
mov dword [esp + 0x18], ecx
mov ecx, dword [eax + 0x350]
test dword [ecx + 0x2c], 0x200
je 0x48fbfb
cmp dword [esp + 0x1c], 0
je 0x48fbd4
mov edi, dword [esp + 0x34]
cmp dword [ecx + 0x20], edi
mov edi, dword [esp + 8]
jne 0x48fbfb
mov esi, dword [esp + 0x6c]
test byte [esi + 0x1c], 0x80
mov esi, dword [esp + 0x24]
je 0x48fbf2
mov eax, dword [ecx + 0x20]
mov eax, dword [eax + 0x38]
and al, 3
cmp al, 2
mov eax, dword [esp + 0x54]
je 0x48fbfb
mov ecx, dword [ecx + 0x20]
mov dword [esp + 0x34], ecx
jmp 0x48fc03
mov dword [esp + 0x34], 0
test dl, 1
je 0x48fc0f
mov ecx, dword [ebp + 8]
or dword [ecx + 0x34], 1
mov ecx, eax
call fcn.0049bbe0
mov ecx, dword [edi + 0xdc]
test ecx, ecx
jne 0x48fc24
xor eax, eax
jmp 0x48fc4a
mov edx, dword [edi + 8]
test ecx, ecx
jns 0x48fc2f
mov ecx, dword [edx + 0x6c]
dec ecx
mov eax, dword [edx]
cmp byte [eax + 0x57], 0
je 0x48fc3e
mov eax, 0x4f06d8
jmp 0x48fc47
mov eax, dword [edx + 0x68]
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*4]
mov eax, dword [eax + 8]
mov dword [edi + 0xdc], eax
mov eax, dword [esp + 0x58]
test eax, eax
je 0x48f6f8
mov ecx, dword [esp + 0x68]
mov edx, eax
call fcn.004402a0
jmp 0x48f6f8
mov edi, dword [esp + 8]
jmp 0x48f6fc
mov edx, dword [edi + 8]
test ecx, ecx
jns 0x48fc80
mov ecx, dword [edx + 0x6c]
dec ecx
mov eax, dword [edx]
cmp byte [eax + 0x57], 0
je 0x48fc8f
mov eax, 0x4f06d8
jmp 0x48fc98
mov eax, dword [edx + 0x68]
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*4]
mov eax, dword [eax + 8]
mov ecx, dword [ebp + 0x10]
mov dword [edi + 0xdc], eax
mov eax, dword [esp + 0x34]
mov dword [ecx + 0x48], eax
test eax, eax
je 0x48fcb9
mov eax, dword [esp + 0x98]
mov dword [ecx + 8], eax
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x48fcd3
mov ecx, dword [esp + 0x68]
mov edx, eax
mov dword [eax + 0xc], 0
call fcn.004402a0
mov edi, dword [esp + 0x30]
mov ecx, dword [esp + 0x60]
mov edx, dword [edi]
test ecx, ecx
jns 0x48fce4
lea ecx, [edx - 1]
mov eax, dword [esi]
cmp byte [eax + 0x57], 0
je 0x48fcf3
mov eax, 0x4f06d8
jmp 0x48fcfc
mov eax, dword [esi + 0x68]
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*4]
mov dword [eax + 4], edx
mov eax, dword [ebp + 0x10]
mov ecx, dword [edi]
mov edx, dword [eax + 0xc]
mov eax, dword [esp + 0x48]
cmp dword [eax], ecx
jg 0x48fd25
push 0
push edx
push 0
mov edx, 8
mov ecx, esi
call fcn.004284c0
add esp, 0xc
jmp 0x48fd57
lea eax, [ecx + 1]
mov dword [edi], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov edi, dword [esp + 0x30]
mov dword [eax + ecx*4], 8
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 ecx, dword [esi + 0xc]
mov edx, dword [esp + 0x4c]
not edx
mov eax, dword [ecx + 0x3c]
add eax, dword [ecx + 0x38]
jns 0x48fd75
push edx
mov edx, esi
call fcn.00428cd0
add esp, 4
jmp 0x48fd7d
mov ecx, dword [ecx + 0x40]
mov eax, dword [edi]
mov dword [ecx + edx*4], eax
mov eax, dword [edi]
mov edi, dword [ebp + 0x10]
mov dword [edi + 0x44], eax
mov eax, dword [ebp + 8]
cmp byte [eax + 0x30], 1
jbe 0x48fdf5
mov ecx, dword [esp + 0x74]
test ecx, ecx
je 0x48fdf5
mov edx, dword [esp + 0x68]
test edx, edx
je 0x48fdec
cmp dword [edx + 0x210], 0
je 0x48fdb4
mov edx, ecx
mov ecx, dword [esp + 0x68]
call fcn.00404550
jmp 0x48fdf5
cmp ecx, dword [edx + 0x164]
jae 0x48fdec
cmp ecx, dword [edx + 0x15c]
jb 0x48fdd4
mov eax, dword [edx + 0x158]
mov dword [ecx], eax
mov dword [edx + 0x158], ecx
jmp 0x48fdf5
cmp ecx, dword [edx + 0x160]
jb 0x48fdec
mov eax, dword [edx + 0x150]
mov dword [ecx], eax
mov dword [edx + 0x150], ecx
jmp 0x48fdf5
push ecx
call fcn.004044e0
add esp, 4
cmp dword [esp + 0x18], 0
jne 0x48dbec
mov edx, dword [esp + 0x40]
mov ecx, edi
call fcn.0048b990
jmp 0x48dbec
mov eax, dword [esp + 0x80]
test byte [eax + 0x28], 0x40
jne 0x48dbe5
mov ecx, dword [esp + 0x30]
mov edx, dword [ebp + 0x10]
movzx eax, byte [ecx + 0x4e43b4]
mov byte [edx + 0x3d], al
mov eax, dword [esp + 0x38]
mov dword [edx + 0x40], eax
mov al, byte [ecx + 0x4e1684]
mov edx, dword [esi + 0x6c]
mov byte [esp + 0x23], al
cmp dword [esi + 0x70], edx
jg 0x48fe73
push 0
push edi
push dword [esp + 0x40]
movzx edx, al
mov ecx, esi
call fcn.004284c0
mov ecx, dword [ebp + 0x10]
mov edx, eax
add esp, 0xc
lea eax, [edx + 1]
mov byte [ecx + 0x3f], 1
mov dword [ecx + 0x44], eax
jmp 0x48dbec
lea eax, [edx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [edx + edx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4 + 8], edi
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
lea eax, [eax + ecx*4]
mov cl, byte [esp + 0x23]
mov byte [eax + 1], 0
mov byte [eax], cl
xor ecx, ecx
mov word [eax + 2], cx
mov ecx, dword [esp + 0x38]
mov dword [eax + 4], ecx
lea eax, [edx + 1]
mov ecx, dword [ebp + 0x10]
mov dword [ecx + 0x44], eax
mov byte [ecx + 0x3f], 1
jmp 0x48dbec
mov eax, dword [esp + 0x70]
jmp 0x48dbee
mov eax, dword [esp + 0x80]
mov edx, dword [edi]
mov dword [esp + 0x18], edx
mov cl, byte [eax + 0x24]
mov eax, dword [esp + 0x58]
movzx eax, ax
test cl, 0x58
je 0x48ff82
mov eax, dword [edx + 4]
test al, 3
je 0x490128
test cl, 8
je 0x48ff00
test al, 1
je 0x490128
mov ecx, dword [ebp + 8]
mov eax, dword [edx + 0x24]
cmp dword [ecx + 0x200], eax
jne 0x48ff17
mov ecx, 1
xor edx, edx
jmp 0x48ff69
mov edx, dword [ecx + 0x1fc]
mov eax, 1
mov dword [esp + 0x58], edx
cmp edx, eax
jle 0x48ff4f
add ecx, 0x204
mov edx, dword [esp + 0x18]
mov esi, dword [edx + 0x24]
cmp dword [ecx], esi
mov esi, dword [esp + 0x24]
mov edx, dword [esp + 0x58]
je 0x490015
inc eax
add ecx, 4
cmp eax, edx
jl 0x48ff30
xorps xmm0, xmm0
movlpd qword [esp + 0x90], xmm0
mov edx, dword [esp + 0x94]
mov ecx, dword [esp + 0x90]
mov eax, dword [ebp + 0x10]
and ecx, dword [eax + 0x58]
and edx, dword [eax + 0x5c]
or ecx, edx
jne 0x490128
movzx eax, word [edi + 0xa]
mov edx, dword [esp + 0x18]
movzx ecx, ax
mov eax, dword [esp + 0x60]
cmp eax, 1
jne 0x49002f
mov eax, dword [ebp + 0x10]
xorps xmm0, xmm0
mov dword [esp + 0xa0], 0
movlpd qword [esp + 0xa8], xmm0
movlpd qword [esp + 0xb0], xmm0
mov eax, dword [eax + 4]
mov dword [esp + 0x8c], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 0x88], eax
lea eax, [esp + 0x88]
mov dword [esp + 0xb8], eax
mov eax, ecx
mov dword [esp + 0xa4], 0x448b60
test edx, edx
je 0x48fff9
lea ecx, [esp + 0xa0]
call fcn.0043bbd0
movzx eax, word [edi + 0xa]
cmp word [esp + 0xb4], 0
movzx eax, ax
je 0x490038
mov edx, 2
mov dword [esp + 0x1c], edx
jmp 0x49012c
xor ecx, ecx
xor edx, edx
bts ecx, eax
cmp eax, 0x20
cmovae edx, ecx
xor ecx, edx
cmp eax, 0x40
cmovae edx, ecx
jmp 0x48ff69
mov edx, ecx
cmp eax, 3
jge 0x490061
mov eax, ecx
movzx eax, ax
mov edx, eax
test eax, 0x1000
je 0x490061
mov edx, dword [esp + 0x1c]
mov ecx, dword [ebp + 8]
test edx, edx
jne 0x49012f
mov edx, 3
mov dword [esp + 0x1c], edx
jmp 0x49012f
test edx, 0x200
je 0x4900dc
mov eax, dword [ebp + 0x10]
mov edx, dword [eax + 0x2c]
test edx, edx
je 0x4900dc
mov ecx, dword [esi + 0x6c]
mov eax, edx
and edx, 1
shr eax, 1
add edx, 0xf
mov dword [esp + 0x58], eax
mov dword [esp + 0x14], ecx
cmp dword [esi + 0x70], ecx
jg 0x4900a2
push 0
push 0
push eax
mov ecx, esi
call fcn.004284c0
add esp, 0xc
mov dword [esp + 0x14], eax
jmp 0x4900dc
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov byte [eax + ecx*4], dl
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
lea eax, [eax + ecx*4]
xor ecx, ecx
mov dword [eax + 0x10], 0
mov word [eax + 2], cx
mov ecx, dword [esp + 0x58]
mov dword [eax + 4], ecx
mov byte [eax + 1], 0
push 0x10
push dword [esp + 0x88]
push dword [esp + 0x20]
push dword [esp + 0x14]
call fcn.00447d40
mov ecx, dword [esp + 0x24]
add esp, 0x10
test ecx, ecx
je 0x490123
mov eax, dword [esi]
mov edx, dword [esi + 0x6c]
cmp byte [eax + 0x57], 0
je 0x49010f
mov eax, 0x4f06d8
jmp 0x490120
test ecx, ecx
lea eax, [edx - 1]
cmovns eax, ecx
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x68]
lea eax, [eax + ecx*4]
mov dword [eax + 8], edx
or word [edi + 0xa], 4
mov edx, dword [esp + 0x1c]
mov ecx, dword [ebp + 8]
mov eax, dword [esp + 0x40]
add edi, 0x30
dec eax
mov dword [esp + 0x40], eax
test eax, eax
jg 0x48dc20
mov edi, dword [ecx + 0x70]
mov dword [esp + 0x60], edx
test edx, edx
jg 0x48dc00
mov eax, dword [ecx + 0x6c]
mov dword [esp + 0x34], eax
test eax, eax
jle 0x490276
lea esi, [edi + 0xc]
mov edi, eax
test byte [esi - 2], 6
jne 0x490262
movzx eax, word [esi]
mov edx, 0xb
test al, 0x82
setne cl
bt ax, dx
setb al
test al, cl
je 0x490262
mov ecx, dword [esp + 0x38]
cmp dword [esi + 8], ecx
jne 0x490262
mov eax, dword [esp + 0x80]
test byte [eax + 0x24], 0x58
jne 0x490262
mov eax, dword [esi - 0xc]
mov edx, ecx
mov ecx, dword [esp + 0x7c]
push 0
push 0x83
push dword [ebp + 0x18]
mov dword [esp + 0x64], eax
push dword [ebp + 0x14]
push dword [esi + 0xc]
call fcn.00494330
mov edi, eax
add esp, 0x14
test edi, edi
je 0x49025e
test byte [edi + 0xa], 4
jne 0x49025e
test byte [edi + 0xc], 1
je 0x4901ff
mov eax, dword [edi]
test dword [eax + 4], 0x1000
je 0x4901ff
mov eax, dword [eax + 0x14]
mov eax, dword [eax + 0x1c]
cmp dword [eax], 1
jg 0x49025e
mov eax, dword [edi]
push 0x10
push dword [esp + 0x88]
movups xmm0, xmmword [eax]
movups xmmword [esp + 0xa8], xmm0
movups xmm0, xmmword [eax + 0x10]
movups xmmword [esp + 0xb8], xmm0
movups xmm0, xmmword [eax + 0x20]
movups xmmword [esp + 0xc8], xmm0
mov eax, dword [eax + 0x30]
mov dword [esp + 0xd8], eax
mov eax, dword [esp + 0x60]
mov eax, dword [eax + 0xc]
mov dword [esp + 0xb4], eax
lea eax, [esp + 0xa8]
push eax
push dword [esp + 0x14]
call fcn.00447d40
add esp, 0x10
or word [edi + 0xa], 4
mov edi, dword [esp + 0x34]
dec edi
add esi, 0x30
mov dword [esp + 0x34], edi
test edi, edi
jg 0x490166
mov esi, dword [esp + 0x24]
mov ecx, dword [ebp + 0x10]
mov eax, dword [ecx + 0x38]
mov dword [esp + 0x18], eax
test eax, eax
je 0x490639
movzx eax, byte [ecx + 0x3c]
lea ecx, [eax + eax*8]
mov eax, dword [ebp + 8]
mov eax, dword [eax + 4]
mov ecx, dword [eax + ecx*8 + 0x18]
mov dword [esp + 0x88], ecx
test byte [ecx + 0x1c], 0x80
jne 0x490302
mov eax, dword [esp + 8]
mov edx, dword [eax + 0x1c]
mov edi, dword [eax + 0x20]
cmp edx, 2
jl 0x4902cd
mov esi, dword [esp + 8]
lea eax, [edi + 2]
mov dword [esi + 0x20], eax
lea eax, [edx - 2]
mov edx, esi
mov esi, dword [esp + 0x24]
mov dword [edx + 0x1c], eax
jmp 0x4902dd
mov eax, dword [eax + 0x2c]
mov edx, dword [esp + 8]
lea edi, [eax + 1]
add eax, 2
mov dword [edx + 0x2c], eax
lea eax, [edi + 1]
mov edx, ecx
push eax
mov eax, dword [ebp + 0x10]
mov ecx, esi
push 0xffffffffffffffff
push dword [eax + 4]
call fcn.004449b0
add esp, 0xc
mov dword [esp + 0x10], 1
jmp 0x4903ea
mov edi, dword [ecx + 8]
test edi, edi
je 0x490320
nop dword [eax]
mov eax, dword [edi + 0x38]
and al, 3
cmp al, 2
je 0x490320
mov edi, dword [edi + 0x14]
test edi, edi
jne 0x490310
movzx eax, word [edi + 0x32]
mov dword [esp + 0x10], eax
lea ecx, [eax + 1]
cmp ecx, 1
jne 0x490354
mov ecx, dword [esp + 8]
mov al, byte [ecx + 0x13]
test al, al
jne 0x490343
inc dword [ecx + 0x2c]
mov edx, dword [ecx + 0x2c]
jmp 0x490398
dec al
mov byte [ecx + 0x13], al
movzx eax, al
mov edx, dword [ecx + eax*4 + 0x98]
jmp 0x490398
mov eax, dword [esp + 8]
mov edx, dword [eax + 0x20]
mov eax, dword [eax + 0x1c]
mov dword [esp + 0x3c], edx
mov dword [esp + 0x58], eax
cmp ecx, eax
jg 0x490385
mov esi, dword [esp + 8]
lea eax, [ecx + edx]
mov dword [esi + 0x20], eax
mov eax, dword [esp + 0x58]
sub eax, ecx
mov ecx, esi
mov esi, dword [esp + 0x24]
mov dword [ecx + 0x1c], eax
jmp 0x49039c
mov eax, dword [esp + 8]
mov eax, dword [eax + 0x2c]
lea edx, [eax + 1]
add eax, ecx
mov ecx, dword [esp + 8]
mov dword [ecx + 0x2c], eax
mov dword [esp + 0x3c], edx
xor ecx, ecx
mov dword [esp + 0x7c], ecx
cmp dword [esp + 0x10], ecx
jbe 0x4903e6
lea eax, [edx + 1]
mov dword [esp + 0x58], eax
nop
mov edx, dword [esp + 0x88]
add eax, ecx
push eax
mov eax, dword [edi + 4]
movsx eax, word [eax + ecx*2]
mov ecx, esi
push eax
push dword [esp + 0x40]
call fcn.004449b0
mov ecx, dword [esp + 0x88]
add esp, 0xc
mov eax, dword [esp + 0x58]
inc ecx
mov dword [esp + 0x7c], ecx
cmp ecx, dword [esp + 0x10]
jl 0x4903b0
mov edi, dword [esp + 0x3c]
mov ecx, dword [esp + 0x18]
lea eax, [edi + 1]
mov edx, dword [esi + 0x6c]
mov dword [esp + 0x14], edx
mov ecx, dword [ecx]
mov dword [esp + 0x58], ecx
cmp dword [esi + 0x70], edx
jg 0x49041e
push eax
push 0
push ecx
mov edx, 0x1c
mov ecx, esi
call fcn.004284c0
mov edx, eax
add esp, 0xc
mov dword [esp + 0x14], edx
jmp 0x490454
lea eax, [edx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [edx + edx*4]
mov eax, dword [esi + 0x68]
mov edx, dword [esp + 0x58]
mov dword [eax + ecx*4 + 4], edx
lea edx, [edi + 1]
mov dword [eax + ecx*4 + 0xc], edx
mov edx, dword [esp + 0x14]
mov dword [eax + ecx*4], 0x1c
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esi]
cmp byte [eax + 0x57], 0
jne 0x490471
mov eax, dword [esi + 0x68]
lea ecx, [edx + edx*4]
mov edx, dword [esp + 0x10]
mov byte [eax + ecx*4 + 1], 0xfd
mov dword [eax + ecx*4 + 0x10], edx
jmp 0x490475
mov edx, dword [esp + 0x10]
mov ecx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ecx
jg 0x490494
push edi
push edx
lea eax, [edi + 1]
mov edx, 0x61
push eax
mov ecx, esi
call fcn.004284c0
add esp, 0xc
jmp 0x4904c2
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
lea esi, [edi + 1]
mov dword [eax + ecx*4 + 4], esi
mov esi, dword [esp + 0x24]
mov dword [eax + ecx*4], 0x61
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], edi
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esp + 0x18]
mov ecx, dword [esi + 0x6c]
mov dword [esp + 0x58], ecx
mov edx, dword [eax]
cmp dword [esi + 0x70], ecx
jg 0x4904ed
lea eax, [edi + 1]
mov ecx, esi
push eax
push edi
push edx
mov edx, 0x8a
call fcn.004284c0
add esp, 0xc
mov ecx, eax
jmp 0x49051f
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov esi, dword [esp + 0x24]
mov dword [eax + ecx*4 + 4], edx
lea edx, [edi + 1]
mov dword [eax + ecx*4], 0x8a
mov dword [eax + ecx*4 + 8], edi
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esp + 0x58]
mov eax, dword [esi]
cmp byte [eax + 0x57], 0
jne 0x49053a
mov eax, dword [esi + 0x68]
lea ecx, [ecx + ecx*4]
mov edx, dword [esp + 0x10]
mov byte [eax + ecx*4 + 1], 0xfd
mov dword [eax + ecx*4 + 0x10], edx
mov eax, dword [esp + 0x18]
mov ecx, dword [esi + 0x6c]
mov dword [esp + 0x58], ecx
mov edx, dword [eax + 4]
cmp dword [esi + 0x70], ecx
jg 0x490565
lea eax, [edi + 1]
mov ecx, esi
push eax
push 0
push edx
mov edx, 0xb4
call fcn.004284c0
add esp, 0xc
jmp 0x49059b
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov esi, dword [esp + 0x24]
mov dword [eax + ecx*4 + 4], edx
lea edx, [edi + 1]
mov dword [eax + ecx*4], 0xb4
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esp + 0x58]
mov ecx, dword [esi]
mov edx, dword [esp + 0x10]
cmp byte [ecx + 0x57], 0
jne 0x4905b8
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x68]
mov byte [eax + ecx*4 + 1], 0xfd
mov dword [eax + ecx*4 + 0x10], edx
mov ecx, dword [esi]
mov eax, dword [esi + 0x6c]
test eax, eax
jle 0x4905d5
lea ecx, [eax + eax*4]
mov edx, 0x10
mov eax, dword [esi + 0x68]
mov word [eax + ecx*4 - 0x12], dx
mov ecx, dword [esi]
mov edx, dword [esp + 0x10]
mov eax, dword [esi + 0x6c]
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x14]
test eax, eax
jns 0x4905e9
mov eax, dword [esp + 0x7c]
dec eax
cmp byte [ecx + 0x57], 0
je 0x4905f6
mov eax, 0x4f06d8
jmp 0x4905ff
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x68]
lea eax, [eax + ecx*4]
mov ecx, dword [esp + 0x7c]
inc edx
mov dword [eax + 8], ecx
cmp edx, 1
jne 0x49062a
test edi, edi
je 0x490639
mov ecx, dword [esp + 8]
mov al, byte [ecx + 0x13]
cmp al, 8
jae 0x490639
movzx eax, al
mov dword [ecx + eax*4 + 0x98], edi
inc byte [ecx + 0x13]
jmp 0x490639
mov ecx, dword [esp + 8]
cmp edx, dword [ecx + 0x1c]
jle 0x490639
mov dword [ecx + 0x1c], edx
mov dword [ecx + 0x20], edi
mov eax, dword [ebp + 0x10]
mov edx, dword [eax]
mov dword [esp + 0x58], edx
test edx, edx
je 0x4906d1
mov ecx, dword [ebp + 0x10]
lea edi, [esi + 0x6c]
mov eax, dword [edi]
mov dword [ecx + 0x1c], eax
lea eax, [esi + 0x70]
mov ecx, dword [edi]
mov dword [esp + 0x7c], eax
cmp dword [eax], ecx
jg 0x49067f
push 0
push edx
push 1
mov edx, 0x47
mov ecx, esi
call fcn.004284c0
lea eax, [esi + 0x68]
add esp, 0xc
mov dword [esp + 0x18], eax
jmp 0x4906b7
lea eax, [ecx + 1]
mov dword [edi], eax
lea edx, [esi + 0x68]
mov eax, dword [edx]
lea ecx, [ecx + ecx*4]
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x58]
mov dword [eax + ecx*4], 0x47
mov dword [eax + ecx*4 + 4], 1
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [ebp + 0x10]
cmp dword [eax + 0x38], 0
je 0x49076b
mov eax, dword [eax + 0x38]
mov edx, edi
mov ecx, edi
mov dword [esp + 0x60], eax
jmp 0x4906f8
lea eax, [esi + 0x68]
mov dword [esp + 0x18], eax
lea ecx, [esi + 0x70]
mov eax, dword [ebp + 0x10]
lea edx, [esi + 0x6c]
mov dword [esp + 0x7c], ecx
mov edi, edx
mov ecx, edx
mov eax, dword [eax + 0x38]
mov dword [esp + 0x60], eax
test eax, eax
je 0x4907d2
mov eax, dword [eax + 8]
mov ecx, dword [ecx]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x7c]
cmp dword [eax], ecx
jg 0x490723
mov edx, dword [esp + 0x40]
mov ecx, esi
push 0
push edx
push 0
mov edx, 0x4a
call fcn.004284c0
add esp, 0xc
jmp 0x490758
lea eax, [ecx + 1]
mov dword [edx], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x40]
mov eax, dword [eax]
mov dword [eax + ecx*4], 0x4a
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 ecx, dword [esp + 0x60]
mov edx, dword [esp + 8]
mov eax, dword [edi]
mov dword [ecx + 0xc], eax
inc byte [edx + 0x1a]
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp + 8]
xor edi, edi
mov esi, dword [ecx + 0x70]
cmp dword [ecx + 0x6c], edi
jle 0x4907d2
jmp 0x490783
mov eax, dword [ebp + 0x10]
test byte [esi + 0xa], 6
jne 0x4907c6
mov edx, dword [ebp + 0x10]
mov ecx, dword [esi + 0x28]
and ecx, dword [eax + 0x58]
mov eax, dword [esi + 0x2c]
and eax, dword [edx + 0x5c]
or ecx, eax
mov edx, dword [esp + 8]
jne 0x4907c6
mov eax, dword [esp + 0x80]
test byte [eax + 0x24], 0x40
jne 0x4907c6
push 0x10
push dword [esp + 0x88]
push dword [esi]
push edx
call fcn.00447d40
add esp, 0x10
or word [esi + 0xa], 4
mov eax, dword [ebp + 8]
inc edi
add esi, 0x30
cmp edi, dword [eax + 0x6c]
jl 0x490780
mov ecx, dword [ebp + 0x10]
pop edi
pop esi
mov eax, dword [ecx + 0x58]
mov edx, dword [ecx + 0x5c]
mov esp, ebp
pop ebp
ret