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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x148
mov eax, dword [0x4fc040]
xor eax, esp
mov dword [esp + 0x144], eax
mov eax, ecx
mov dword [esp + 0x68], 0
mov dword [esp], eax
push esi
mov esi, dword [ebp + 0x10]
mov eax, dword [eax]
mov dword [esp + 0x68], eax
push edi
mov eax, dword [esi + 0x50]
mov edi, edx
mov edx, dword [ebp + 8]
mov dword [esp + 0x24], eax
movzx eax, byte [esi + 0x3c]
mov dword [esp + 0x2c], edi
lea ecx, [edx + 0x50]
mov dword [esp + 0x64], edx
mov dword [esp + 0x74], ecx
lea ecx, [eax + eax*8]
mov dword [esp + 0xc], esi
mov eax, dword [edx + 4]
lea eax, [eax + ecx*8]
add eax, 8
mov dword [esp + 0x84], eax
mov eax, dword [eax + 0x2c]
mov dword [esp + 0x40], eax
cmp dword [edx + 0x1f8], eax
jne 0x4b9d00
mov ecx, 1
xor edx, edx
jmp 0x4b9d52
mov edx, dword [edx + 0x1f4]
mov eax, 1
cmp edx, eax
jle 0x4b9d38
mov ecx, dword [esp + 0x64]
add ecx, 0x1fc
nop dword [eax]
mov edi, dword [esp + 0x40]
cmp dword [ecx], edi
mov edi, dword [esp + 0x2c]
je 0x4b9de9
inc eax
add ecx, 4
cmp eax, edx
jl 0x4b9d20
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 [esi + 0x58], ecx
mov ecx, dword [esp + 0x64]
mov dword [esi + 0x5c], edx
mov esi, dword [ebp + 0xc]
mov eax, dword [ecx + 0x48]
mov edx, dword [ecx + 0x4c]
mov ecx, esi
call fcn.004e4570
mov ecx, dword [esp + 8]
and eax, 1
mov edx, dword [esp + 0xc]
mov dword [esp + 0x50], 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 + 0x44], eax
mov eax, dword [ecx + 0x38]
dec eax
mov dword [ecx + 0x38], eax
cmp byte [edx + 0x3c], 0
mov dword [esp + 0x8c], eax
mov dword [edx + 0x18], eax
jbe 0x4b9e32
mov eax, dword [esp + 0x84]
test byte [eax + 0x24], 8
je 0x4b9e32
mov edx, dword [ecx + 0x2c]
mov eax, dword [esp + 0xc]
inc edx
mov dword [ecx + 0x2c], edx
mov dword [eax], edx
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x4b9e03
push 0
push edx
push 0
mov edx, 0x47
mov ecx, edi
call fcn.0044f120
add esp, 0xc
jmp 0x4b9e32
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 0x4b9d52
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 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, esi
test esi, esi
jle 0x4b9e63
mov edx, dword [esp + 0x64]
lea eax, [esi + esi*2]
shl eax, 5
add edx, 0x330
add eax, edx
nop word [eax + eax]
cmp dword [eax - 0x38], 0
jne 0x4b9e63
cmp dword [eax], 0
jne 0x4b9e63
dec ecx
sub eax, 0x60
test ecx, ecx
jg 0x4b9e50
lea eax, [ecx + ecx*2]
mov ecx, dword [esp + 0x64]
shl eax, 5
mov esi, dword [eax + ecx + 0x304]
mov eax, dword [esp + 0x84]
mov dword [esp + 0x34], esi
test byte [eax + 0x28], 0x20
je 0x4b9f6c
mov ecx, dword [edi + 0x6c]
mov esi, dword [eax + 0x1c]
mov edx, dword [eax + 0x18]
cmp dword [edi + 0x70], ecx
jg 0x4b9eac
push edx
push 0
push esi
mov edx, 0xb
mov ecx, edi
call fcn.0044f120
add esp, 0xc
jmp 0x4b9edb
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov edi, dword [esp + 0x2c]
mov dword [eax + ecx*4], 0xb
mov dword [eax + ecx*4 + 4], esi
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov edx, dword [edi + 0x6c]
cmp dword [edi + 0x70], edx
jg 0x4b9f1a
push 0
push dword [esp + 0x48]
mov edx, 0xc
mov ecx, edi
push esi
call fcn.0044f120
mov edx, eax
add esp, 0xc
mov eax, dword [esp + 0xc]
mov dword [eax + 0x44], edx
mov edx, eax
xor eax, eax
neg eax
sbb eax, eax
mov byte [edx + 0x3d], 9
add eax, 2
mov dword [esp + 0x60], eax
jmp 0x4bc8da
lea eax, [edx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [edx + edx*4]
mov eax, dword [edi + 0x68]
mov edi, dword [esp + 0x2c]
mov dword [eax + ecx*4 + 4], esi
mov esi, dword [esp + 0x44]
mov dword [eax + ecx*4], 0xc
mov dword [eax + ecx*4 + 8], esi
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esp + 0xc]
mov dword [eax + 0x44], edx
mov edx, eax
xor eax, eax
neg eax
sbb eax, eax
mov byte [edx + 0x3d], 9
add eax, 2
mov dword [esp + 0x60], eax
jmp 0x4bc8da
mov eax, dword [esp + 0x24]
mov edx, dword [eax + 0x2c]
test edx, 0x400
je 0x4ba5c9
movzx eax, word [eax + 0x30]
mov dword [esp + 0x44], eax
lea ecx, [eax + 2]
cmp ecx, 1
jne 0x4b9fbb
mov ecx, dword [esp + 8]
mov al, byte [ecx + 0x13]
test al, al
jne 0x4b9fa6
inc dword [ecx + 0x2c]
mov eax, dword [ecx + 0x2c]
mov dword [esp + 0x38], eax
jmp 0x4b9ff1
dec al
mov byte [ecx + 0x13], al
movzx eax, al
mov eax, dword [ecx + eax*4 + 0xa0]
mov dword [esp + 0x38], eax
jmp 0x4b9ff1
mov eax, dword [esp + 8]
mov edx, dword [eax + 0x1c]
mov esi, dword [eax + 0x20]
mov dword [esp + 0x38], esi
cmp ecx, edx
jg 0x4b9fde
lea eax, [esi + ecx]
sub edx, ecx
mov esi, dword [esp + 8]
mov dword [esi + 0x20], eax
mov dword [esi + 0x1c], edx
jmp 0x4b9ff1
mov eax, dword [eax + 0x2c]
lea edx, [eax + 1]
add eax, ecx
mov ecx, dword [esp + 8]
mov dword [esp + 0x38], edx
mov dword [ecx + 0x2c], eax
mov eax, dword [esp + 0xc]
xor esi, esi
mov eax, dword [eax + 0xc]
mov dword [esp + 0x18], eax
cmp dword [esp + 0x44], esi
jbe 0x4ba0d0
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x24]
add edx, 2
mov dword [esp + 0x3c], edx
nop word [eax + eax]
mov eax, dword [eax + 0x38]
mov ecx, dword [eax + esi*4]
mov dword [esp + 0x34], ecx
test ecx, ecx
je 0x4ba0c1
test byte [ecx + 0xc], 1
je 0x4ba160
cmp esi, 0x1f
ja 0x4ba050
mov ecx, esi
mov eax, 1
shl eax, cl
mov ecx, dword [esp + 0x34]
jmp 0x4ba052
xor eax, eax
mov edi, dword [esp + 0x24]
test dword [edi + 0x28], eax
mov edi, dword [esp + 0x2c]
je 0x4ba135
mov eax, dword [esp + 8]
mov edi, dword [esp + 8]
mov edx, dword [eax + 0x28]
mov dword [esp + 0x34], edx
push edx
lea eax, [edx + 1]
mov dword [edi + 0x28], eax
mov eax, edi
inc dword [eax + 0x2c]
mov edx, dword [ecx]
mov ecx, edi
mov eax, dword [eax + 0x2c]
mov dword [esp + 0x7c], eax
call fcn.0046ae60
mov edi, dword [esp + 0x30]
add esp, 4
mov eax, dword [esp + 0x3c]
add eax, esi
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x4ba0fe
mov edx, dword [esp + 0x78]
push edx
mov edx, dword [esp + 0x38]
push eax
push edx
mov edx, 0xae
mov ecx, edi
call fcn.0044f120
add esp, 0xc
mov edx, dword [esp + 0x3c]
mov eax, dword [esp + 0x24]
inc esi
cmp esi, dword [esp + 0x44]
jl 0x4ba020
mov eax, dword [esp + 0x24]
mov ecx, dword [edi + 0x6c]
mov edx, dword [eax + 0x18]
cmp dword [edi + 0x70], ecx
jg 0x4ba1ed
push 0
push dword [esp + 0x3c]
mov ecx, edi
push edx
mov edx, 0x47
call fcn.0044f120
add esp, 0xc
jmp 0x4ba21c
mov edx, dword [esp + 0x34]
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x3c]
add edx, esi
mov dword [eax + ecx*4], 0xae
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [esp + 0x78]
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x4ba0bd
lea eax, [edx + esi]
mov edx, ecx
mov ecx, dword [esp + 8]
push eax
push dword [esp + 0x54]
push esi
push dword [esp + 0x18]
call fcn.004b8bb0
mov eax, dword [esp + 0x1c]
add esp, 0x10
mov eax, dword [eax + 0x10]
mov dword [esp + 0x18], eax
jmp 0x4ba0bd
lea eax, [edx + esi]
mov edx, dword [ecx]
mov ecx, dword [esp + 8]
push 1
push eax
mov edx, dword [edx + 0x10]
call fcn.004b98e0
mov eax, dword [esp + 0x3c]
add esp, 8
cmp byte [eax + 0xf], 0x4a
mov eax, dword [esp + 0x24]
jne 0x4ba1e4
test byte [eax + 0x1c], 2
je 0x4ba1e4
mov eax, dword [esp + 0x64]
mov ecx, dword [edi + 0x6c]
mov eax, dword [eax + 0x10]
mov edx, dword [eax + 0xc]
cmp dword [edi + 0x70], ecx
jg 0x4ba1ac
push 0
push edx
push 0
mov edx, 0x47
jmp 0x4ba0b3
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov edi, dword [esp + 0x2c]
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 0x4ba0bd
mov edx, dword [esp + 0x3c]
jmp 0x4ba0c5
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x38]
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 edx, dword [esp + 0x38]
mov ecx, dword [edi + 0x6c]
inc edx
cmp dword [edi + 0x70], ecx
jg 0x4ba241
push 0
push edx
push dword [esp + 0x4c]
mov edx, 0x47
mov ecx, edi
call fcn.0044f120
add esp, 0xc
jmp 0x4ba270
mov esi, dword [esp + 0x44]
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4], 0x47
mov dword [eax + ecx*4 + 4], esi
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 + 0x24]
mov esi, 0xffffffff
mov edx, dword [edi + 0x6c]
mov ecx, 0xfffffffa
test byte [eax + 0x1c], 1
mov eax, dword [eax + 0x24]
cmovne esi, ecx
mov dword [esp + 0x14], eax
cmp dword [edi + 0x70], edx
jg 0x4ba2b1
push dword [esp + 0x38]
lea edx, [ecx + 0xc]
mov ecx, edi
push dword [esp + 0x1c]
push dword [esp + 0x48]
call fcn.0044f120
add esp, 0xc
mov edx, eax
jmp 0x4ba2e8
lea eax, [edx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [edx + edx*4]
mov eax, dword [edi + 0x68]
mov edi, dword [esp + 0x40]
mov dword [eax + ecx*4 + 4], edi
mov edi, dword [esp + 0x18]
mov dword [eax + ecx*4 + 8], edi
mov edi, dword [esp + 0x38]
mov dword [eax + ecx*4 + 0xc], edi
mov edi, dword [esp + 0x2c]
mov dword [eax + ecx*4], 6
mov dword [eax + ecx*4 + 0x10], 0
push esi
push dword [esp + 0x18]
mov ecx, edi
call fcn.0044fec0
mov esi, dword [esp + 0x2c]
add esp, 8
mov eax, dword [esp + 0x6c]
and dword [esi + 0x1c], 0xfffffffe
cmp byte [eax + 0x57], 0
je 0x4ba310
mov dword [esi + 0x24], 0
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 0x64]
mov eax, dword [esp + 0x40]
mov dword [edx + 0x40], eax
mov eax, 0x3f
cmp byte [ecx + 0x2e], 0
mov ecx, 0xb8
cmovne eax, ecx
xor ecx, ecx
mov byte [edx + 0x3d], al
mov eax, dword [edi + 0x6c]
mov dword [edx + 0x44], eax
mov dword [esp + 0x1c], ecx
cmp dword [esp + 0x44], ecx
jbe 0x4ba5b7
mov eax, dword [esp + 0x38]
add eax, 2
mov dword [esp + 0x18], eax
mov eax, dword [esi + 0x38]
mov edx, dword [eax + ecx*4]
mov dword [esp + 0x60], edx
cmp ecx, 0x10
jae 0x4ba380
mov ax, word [esi + 0x22]
shr ax, cl
test al, 1
je 0x4ba37c
mov ecx, dword [esp + 0xc]
call fcn.004b86c0
jmp 0x4ba5a0
mov ecx, dword [esp + 0x1c]
test byte [edx + 0xc], 1
je 0x4ba5a4
cmp ecx, 0x1f
ja 0x4ba398
mov eax, 1
shl eax, cl
jmp 0x4ba39a
xor eax, eax
test dword [esi + 0x28], eax
jne 0x4ba5a4
mov eax, dword [esp + 0x6c]
cmp byte [eax + 0x57], 0
jne 0x4ba5a4
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x34], 0
cmp dword [ecx + 0x48], 0
jle 0x4ba497
mov eax, dword [edi]
xor esi, esi
mov al, byte [eax + 0x57]
mov byte [esp + 0x23], al
test al, al
je 0x4ba3dd
mov ecx, 0x4fec48
jmp 0x4ba3ed
mov eax, dword [ecx + 0x4c]
mov eax, dword [eax + esi + 4]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x68]
lea ecx, [eax + ecx*4]
mov al, byte [ecx]
mov byte [esp + 0x13], al
cmp al, 0x5e
jne 0x4ba404
mov eax, dword [esp + 0x1c]
add eax, dword [esp + 0x18]
cmp dword [ecx + 0xc], eax
jmp 0x4ba413
cmp al, 0x87
jne 0x4ba419
mov eax, dword [esp + 0x1c]
add eax, dword [esp + 0x18]
cmp dword [ecx + 8], eax
mov edi, dword [esp + 0x2c]
je 0x4ba438
mov ecx, dword [esp + 0x34]
add esi, 0x14
mov eax, dword [esp + 0xc]
inc ecx
mov dword [esp + 0x34], ecx
cmp ecx, dword [eax + 0x48]
jge 0x4ba497
mov al, byte [esp + 0x23]
mov ecx, dword [esp + 0xc]
jmp 0x4ba3d2
mov eax, dword [ecx + 4]
mov edx, dword [ecx + 0xc]
mov esi, dword [ecx + 8]
mov ecx, dword [edi + 0x6c]
mov dword [esp + 0x14], eax
cmp dword [edi + 0x70], ecx
jg 0x4ba461
push edx
movzx edx, byte [esp + 0x17]
mov ecx, edi
push esi
push eax
call fcn.0044f120
add esp, 0xc
jmp 0x4ba497
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4 + 8], esi
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
lea eax, [eax + ecx*4]
mov cl, byte [esp + 0x13]
mov byte [eax + 1], 0
mov byte [eax], cl
xor ecx, ecx
mov word [eax + 2], cx
mov ecx, dword [esp + 0x14]
mov dword [eax + 4], ecx
mov eax, dword [esp + 8]
push 0
push 0x34
mov ecx, dword [eax]
call fcn.00427e60
mov esi, eax
add esp, 8
test esi, esi
je 0x4ba4ed
push 0x34
push 0
push esi
call sub.VCRUNTIME140.dll_memset
mov ecx, dword [esp + 0x14]
or eax, 0xffffffff
mov byte [esi], 0x35
add esp, 0xc
mov word [esi + 0x22], ax
mov dword [esi + 0x18], 1
mov eax, dword [ecx]
mov eax, dword [eax + 0x84]
cmp eax, 1
jge 0x4ba4ed
push eax
push str.Expression_tree_is_too_large__maximum_depth__d_
push ecx
call fcn.0042b560
add esp, 0xc
mov eax, dword [esp + 0x6c]
cmp byte [eax + 0x57], 0
jne 0x4ba58f
mov eax, dword [esp + 0x60]
mov ecx, dword [eax + 0x1c]
mov eax, dword [eax]
mov edx, dword [eax + 0xc]
test ecx, ecx
jle 0x4ba515
mov eax, dword [edx + 0x14]
lea ecx, [ecx + ecx*4]
mov edx, dword [eax + ecx*4 - 0xc]
mov ecx, dword [esp + 0x6c]
push 0
push 0x35
mov dword [esi + 0xc], edx
call fcn.00427e60
add esp, 8
mov dword [esp + 0x14], eax
test eax, eax
je 0x4ba581
push 0x34
push 0
push eax
call sub.VCRUNTIME140.dll_memset
mov ecx, dword [esp + 0x20]
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 + 0x1c]
add eax, dword [esp + 0x18]
mov dword [ecx + 0x18], 1
mov dword [esi + 0x10], ecx
mov dword [ecx + 0x1c], eax
mov eax, dword [esp + 0xc]
push 0x10
push dword [eax + 0x18]
push esi
push dword [esp + 0x14]
call fcn.004709d0
add esp, 0x10
jmp 0x4ba584
mov dword [esi + 0x10], eax
mov eax, dword [esp + 0x6c]
mov dword [esi + 0xc], 0
test esi, esi
je 0x4ba59c
mov edx, esi
mov ecx, eax
call fcn.00468660
mov esi, dword [esp + 0x24]
mov ecx, dword [esp + 0x1c]
inc ecx
mov dword [esp + 0x1c], ecx
cmp ecx, dword [esp + 0x44]
jl 0x4ba354
mov edx, dword [esp + 0xc]
xor eax, eax
neg eax
sbb eax, eax
add eax, 2
mov dword [esp + 0x60], eax
jmp 0x4bc8da
test dl, 5
setne cl
bt edx, 8
setb al
test al, cl
je 0x4ba784
mov eax, dword [esp + 0x24]
mov eax, dword [eax + 0x38]
mov edx, dword [eax]
mov eax, dword [esp + 8]
mov ecx, eax
inc dword [eax + 0x2c]
mov esi, dword [eax + 0x2c]
push esi
push dword [esp + 0x54]
push 0
push dword [esp + 0x18]
call fcn.004b8bb0
mov edx, eax
add esp, 0x10
mov dword [esp + 0x18], edx
cmp edx, esi
je 0x4ba62c
test esi, esi
je 0x4ba62c
mov ecx, dword [esp + 8]
mov al, byte [ecx + 0x13]
cmp al, 8
jae 0x4ba62c
movzx eax, al
mov dword [ecx + eax*4 + 0xa0], esi
inc byte [ecx + 0x13]
mov eax, dword [esp + 0xc]
cmp dword [eax + 0x34], 0
mov esi, dword [eax + 0x10]
je 0x4ba704
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x4ba65e
push 0
push esi
push edx
mov edx, 0xd
mov ecx, edi
call fcn.0044f120
mov edx, dword [esp + 0x24]
add esp, 0xc
jmp 0x4ba68d
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov edi, dword [esp + 0x2c]
mov dword [eax + ecx*4], 0xd
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], esi
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esp + 0xc]
mov ecx, dword [edi + 0x6c]
mov eax, dword [eax + 0x34]
mov dword [esp + 0x14], eax
cmp dword [edi + 0x70], ecx
jg 0x4ba6b6
push 1
push edx
push esi
push eax
mov edx, 0x40
mov ecx, edi
call fcn.0044f160
add esp, 0x10
jmp 0x4ba6e5
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov edi, dword [esp + 0x14]
mov dword [eax + ecx*4 + 4], edi
mov edi, dword [esp + 0x2c]
mov dword [eax + ecx*4], 0xfd40
mov dword [eax + ecx*4 + 8], esi
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 1
push dword [ebp + 0x18]
mov eax, dword [ebp + 0x14]
mov edx, dword [esp + 0x68]
mov ecx, dword [esp + 0xc]
push eax
push esi
push dword [ebp + 0xc]
call fcn.004b9a50
mov edx, dword [esp + 0x28]
add esp, 0x10
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x4ba73b
push edx
push esi
push dword [esp + 0x48]
mov edx, 0x1e
mov ecx, edi
call fcn.0044f120
mov edx, dword [esp + 0x18]
xor eax, eax
add esp, 0xc
neg eax
sbb eax, eax
add eax, 2
mov byte [edx + 0x3d], 0xb8
mov dword [esp + 0x60], eax
jmp 0x4bc8da
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov edi, dword [esp + 0x40]
mov dword [eax + ecx*4 + 4], edi
mov edi, dword [esp + 0x2c]
mov dword [eax + ecx*4 + 0xc], edx
mov edx, dword [esp + 0xc]
mov dword [eax + ecx*4], 0x1e
mov dword [eax + ecx*4 + 8], esi
mov dword [eax + ecx*4 + 0x10], 0
xor eax, eax
neg eax
mov byte [edx + 0x3d], 0xb8
sbb eax, eax
add eax, 2
mov dword [esp + 0x60], eax
jmp 0x4bc8da
mov eax, edx
and eax, 0x102
cmp eax, 0x102
jne 0x4bab39
mov eax, 0xb8
mov dword [esp + 0x18], 0
xor esi, esi
mov dword [esp + 0x1c], eax
mov dword [esp + 0x28], 0
test dl, 0x20
je 0x4ba7c6
mov eax, dword [esp + 0x24]
mov ecx, 4
mov eax, dword [eax + 0x38]
mov esi, dword [eax]
jmp 0x4ba7c8
xor ecx, ecx
test dl, 0x10
je 0x4ba7dd
mov eax, dword [esp + 0x24]
mov eax, dword [eax + 0x38]
mov ecx, dword [ecx + eax]
mov dword [esp + 0x28], ecx
jmp 0x4ba7df
xor ecx, ecx
mov eax, dword [esp + 0x50]
test eax, eax
je 0x4ba7ed
mov dword [esp + 0x28], esi
mov esi, ecx
test esi, esi
je 0x4ba920
mov ecx, dword [esi]
mov dword [esp + 0x48], 0x17151618
mov dword [esp + 0x34], ecx
mov edx, dword [ecx + 0x10]
mov al, byte [edx]
cmp al, 0xb0
jne 0x4ba80f
mov al, byte [edx + 2]
cmp al, 0xb1
jne 0x4ba818
mov eax, dword [edx + 0x14]
jmp 0x4ba822
cmp al, 0x8a
jne 0x4ba871
mov eax, dword [edx + 0x14]
mov eax, dword [eax + 0x1c]
cmp dword [eax], 1
jle 0x4ba871
mov edx, dword [esp + 8]
mov al, byte [edx + 0x13]
test al, al
jne 0x4ba83a
inc dword [edx + 0x2c]
mov esi, dword [edx + 0x2c]
jmp 0x4ba849
dec al
mov byte [edx + 0x13], al
movzx eax, al
mov esi, dword [edx + eax*4 + 0xa0]
mov edx, dword [ecx + 0x10]
mov ecx, dword [esp + 8]
push 1
push esi
call fcn.004b98e0
mov ecx, dword [esp + 0x3c]
add esp, 8
mov edx, esi
movzx eax, byte [ecx]
inc eax
and eax, 2
or eax, 1
mov al, byte [esp + eax + 0x48]
jmp 0x4ba8a4
mov ecx, dword [esp + 8]
lea eax, [esp + 0x14]
push eax
call fcn.0046fdc0
mov ecx, dword [esp + 0x10]
add esp, 4
mov edx, esi
mov dword [esp + 0x60], eax
call fcn.004b86c0
mov ecx, dword [esp + 0x34]
mov esi, dword [esp + 0x14]
mov edx, dword [esp + 0x60]
movzx eax, byte [ecx]
mov al, byte [esp + eax + 0x12]
mov ecx, dword [edi + 0x6c]
mov byte [esp + 0x13], al
cmp dword [edi + 0x70], ecx
jg 0x4ba8c8
push edx
push dword [esp + 0x48]
movzx edx, al
mov ecx, edi
push dword [esp + 0x48]
call fcn.0044f120
add esp, 0xc
jmp 0x4ba902
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 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 + 0x13]
mov byte [eax], cl
xor ecx, ecx
mov word [eax + 2], cx
mov ecx, dword [esp + 0x40]
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x44]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 8]
test esi, esi
je 0x4ba987
mov al, byte [ecx + 0x13]
cmp al, 8
jae 0x4ba987
movzx eax, al
mov dword [ecx + eax*4 + 0xa0], esi
inc byte [ecx + 0x13]
jmp 0x4ba987
mov ecx, dword [edi + 0x6c]
xor eax, 1
lea edx, [eax*4 + 0x20]
cmp dword [edi + 0x70], ecx
jg 0x4ba949
mov ecx, dword [esp + 0x34]
push 0
push ecx
push dword [esp + 0x48]
mov ecx, edi
call fcn.0044f120
add esp, 0xc
jmp 0x4ba983
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 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 + 0x40]
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x34]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 8]
mov eax, dword [esp + 0x28]
test eax, eax
je 0x4baa2b
mov esi, dword [eax]
inc dword [ecx + 0x2c]
mov eax, dword [ecx + 0x2c]
push 1
mov edx, dword [esi + 0x10]
push eax
mov dword [esp + 0x20], eax
call fcn.004b98e0
mov ecx, dword [esi + 0x10]
add esp, 8
mov dl, byte [ecx]
mov al, dl
cmp al, 0xb0
jne 0x4ba9bb
mov al, byte [ecx + 2]
cmp al, 0xb1
jne 0x4ba9c4
mov eax, dword [ecx + 0x14]
jmp 0x4ba9ce
cmp al, 0x8a
jne 0x4ba9d3
mov eax, dword [ecx + 0x14]
mov eax, dword [eax + 0x1c]
cmp dword [eax], 1
jg 0x4ba9dd
mov al, byte [esi]
cmp al, 0x38
je 0x4ba9ea
cmp al, 0x36
je 0x4ba9ea
mov eax, dword [esp + 0x50]
lea eax, [eax*2 + 0x36]
jmp 0x4ba9f8
mov eax, dword [esp + 0x50]
xor eax, 1
lea eax, [eax*2 + 0x37]
mov dword [esp + 0x1c], eax
cmp dl, 0xb0
jne 0x4baa04
mov dl, byte [ecx + 2]
cmp dl, 0xb1
jne 0x4baa0e
mov eax, dword [ecx + 0x14]
jmp 0x4baa19
cmp dl, 0x8a
jne 0x4baa1e
mov eax, dword [ecx + 0x14]
mov eax, dword [eax + 0x1c]
cmp dword [eax], 1
jg 0x4baa2b
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0xc]
call fcn.004b86c0
cmp dword [esp + 0x50], 0
mov edx, dword [esp + 0xc]
mov ecx, dword [edi + 0x6c]
sete al
add al, 0x26
cmp dword [esp + 0x1c], 0xb8
mov byte [edx + 0x3d], al
mov eax, dword [esp + 0x40]
mov dword [edx + 0x40], eax
mov dword [edx + 0x44], ecx
je 0x4ba5b7
mov eax, dword [esp + 8]
inc dword [eax + 0x2c]
mov ecx, dword [edi + 0x6c]
mov esi, dword [eax + 0x2c]
cmp dword [edi + 0x70], ecx
jg 0x4baa81
push 0
push esi
push dword [esp + 0x48]
mov edx, 0x87
mov ecx, edi
call fcn.0044f120
add esp, 0xc
jmp 0x4baab0
mov edx, dword [esp + 0x40]
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4], 0x87
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], esi
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [edi + 0x6c]
mov edx, dword [esp + 0x1c]
cmp dword [edi + 0x70], ecx
jg 0x4baad2
mov ecx, dword [esp + 0x18]
push esi
push dword [esp + 0x48]
push ecx
mov ecx, edi
call fcn.0044f120
add esp, 0xc
jmp 0x4bab08
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov byte [eax + ecx*4], dl
mov dword [eax + ecx*4 + 0xc], esi
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 + 0x44]
mov dword [eax + 8], ecx
mov eax, dword [edi + 0x6c]
test eax, eax
jle 0x4ba5b3
lea ecx, [eax + eax*4]
mov edx, 0x53
mov eax, dword [edi + 0x68]
mov word [eax + ecx*4 - 0x12], dx
xor eax, eax
mov edx, dword [esp + 0xc]
neg eax
sbb eax, eax
add eax, 2
mov dword [esp + 0x60], eax
jmp 0x4bc8da
test edx, 0x200
je 0x4bbbec
mov esi, dword [esp + 0x24]
mov dword [esp + 0x1c], 0
mov dword [esp + 0x3c], 0
movzx eax, word [esi + 0x1a]
movzx ecx, word [esi + 0x18]
mov dword [esp + 0x80], eax
movzx eax, word [esi + 0x1c]
xor esi, esi
mov dword [esp + 0x44], eax
xor eax, eax
mov dword [esp + 0x48], eax
mov byte [esp + 0x13], al
mov byte [esp + 0x23], al
mov dword [esp + 0x30], eax
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x38], ecx
movzx ecx, cx
mov eax, dword [eax + 0x20]
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 8]
mov dword [esp + 0x4c], eax
test dl, 0x20
je 0x4babbd
mov esi, dword [esp + 0x24]
mov eax, dword [esi + 0x38]
movzx esi, word [esi + 0x1a]
mov eax, dword [eax + ecx*4]
inc ecx
mov dword [esp + 0x1c], eax
test dl, 0x10
je 0x4baccc
mov edx, dword [esp + 0x24]
mov eax, dword [edx + 0x38]
movzx edx, word [edx + 0x1c]
cmp esi, edx
mov ecx, dword [eax + ecx*4]
cmova edx, esi
mov eax, 0x100
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x14], edx
test word [ecx + 0xa], ax
je 0x4bac88
mov eax, dword [esp + 8]
inc dword [eax + 0x2c]
mov edx, dword [eax + 0x2c]
mov eax, dword [esp + 0xc]
mov dword [eax + 0x2c], edx
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x4bac1f
push 0
push edx
push 1
mov edx, 0x47
mov ecx, edi
call fcn.0044f120
add esp, 0xc
jmp 0x4bac4e
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 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 ecx, dword [esp + 0xc]
xor edx, edx
mov eax, dword [edi + 0x6c]
mov esi, dword [ecx + 0x2c]
mov dword [ecx + 0x30], eax
add esi, esi
mov eax, dword [esp + 0x38]
mov dword [ecx + 0x2c], esi
movzx ecx, ax
mov eax, dword [esp + 0x70]
mov eax, dword [eax + 0x1c]
cmp byte [ecx + eax], 1
mov eax, dword [esp + 0xc]
sete dl
xor edx, dword [esp + 0x50]
or edx, esi
mov dword [eax + 0x2c], edx
mov edx, dword [esp + 0x14]
cmp dword [esp + 0x1c], 0
mov esi, edx
jne 0x4baccc
mov esi, dword [esp + 0x70]
mov eax, dword [esp + 0x38]
movzx ecx, ax
mov eax, dword [esi + 4]
movsx ecx, word [eax + ecx*2]
mov dword [esp + 0x14], ecx
test ecx, ecx
js 0x4bacbe
mov eax, dword [esi + 0xc]
add ecx, ecx
mov eax, dword [eax + 4]
test byte [eax + ecx*8 + 4], 0xf
je 0x4bacc5
mov ecx, dword [esp + 0x14]
mov esi, edx
cmp ecx, 0xfffffffe
jne 0x4baccc
mov byte [esp + 0x13], 1
mov esi, edx
mov eax, dword [esp + 0x24]
mov eax, dword [eax + 0x2c]
test al, 0x30
jne 0x4bad6b
test eax, 0x80000
je 0x4bad6b
mov ecx, dword [esp + 8]
mov esi, 1
mov eax, dword [esp + 0xc]
mov byte [esp + 0x13], 1
inc dword [ecx + 0x2c]
cmp dword [eax], 0
mov edx, dword [ecx + 0x2c]
mov dword [esp + 0x30], edx
mov dword [eax + 0x24], edx
je 0x4bad5d
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x4bad26
push 0
push edx
push 0
lea edx, [esi + 0x46]
mov ecx, edi
call fcn.0044f120
add esp, 0xc
jmp 0x4bad59
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov edi, dword [esp + 0x2c]
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 [esp + 8]
mov eax, dword [ecx + 0x38]
dec eax
mov dword [ecx + 0x38], eax
mov ecx, dword [esp + 0xc]
mov dword [ecx + 0x28], eax
mov edx, dword [esp + 0x70]
mov eax, dword [esp + 0x38]
cmp ax, word [edx + 0x34]
jae 0x4badc6
movzx ecx, ax
mov eax, dword [edx + 0x1c]
xor edx, edx
cmp byte [ecx + eax], dl
sete dl
cmp dword [esp + 0x50], edx
jne 0x4badc6
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x1c], eax
mov al, byte [esp + 0x13]
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0x44]
mov byte [esp + 0x23], al
mov eax, dword [esp + 0x80]
movzx ecx, cx
movzx eax, al
mov byte [esp + 0x13], 0
mov dword [esp + 0x80], ecx
mov dword [esp + 0x44], eax
cmp dword [ebp + 0xc], 0
jle 0x4bae2d
mov eax, dword [esp + 0x24]
test dword [eax + 0x2c], 0x100000
je 0x4bae2d
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x4badfa
push 0
push 0
push dword [esp + 0x54]
mov edx, 0x88
mov ecx, edi
call fcn.0044f120
add esp, 0xc
jmp 0x4bae2d
mov edx, dword [esp + 0x4c]
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 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 ecx, dword [esp + 8]
lea eax, [esp + 0x34]
push eax
push esi
push dword [esp + 0x58]
mov esi, dword [esp + 0x18]
mov edx, esi
call fcn.004b9270
mov ecx, dword [esp + 0x40]
add esp, 0xc
mov edx, eax
mov dword [esp + 0x54], edx
test ecx, ecx
je 0x4baec6
cmp word [esp + 0x44], 0
je 0x4baec6
mov eax, dword [esp + 0x38]
movzx eax, ax
add eax, ecx
mov dword [esp + 0x14], eax
jne 0x4bae76
xor eax, eax
mov dword [esp + 0x48], eax
jmp 0x4baec6
mov ecx, eax
lea edx, [ecx + 1]
nop dword [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4bae80
mov eax, dword [esp + 0x6c]
sub ecx, edx
push 0
lea esi, [ecx + 1]
push esi
test eax, eax
je 0x4baea0
mov ecx, eax
call fcn.00427e60
jmp 0x4baea5
call fcn.00427700
add esp, 8
mov dword [esp + 0x48], eax
test eax, eax
je 0x4baebe
push esi
push dword [esp + 0x18]
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov edx, dword [esp + 0x54]
mov esi, dword [esp + 0xc]
cmp dword [esp + 0x30], 0
je 0x4baed6
mov ecx, dword [esi + 0x28]
mov dword [esp + 0x58], ecx
jmp 0x4baedd
mov eax, dword [esi + 0x10]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x4baef3
test byte [eax + 0xc], 0x28
mov dword [esp + 0x68], 0
je 0x4baefb
mov dword [esp + 0x68], 1
mov ecx, dword [esp + 0x3c]
test ecx, ecx
je 0x4baf11
test byte [ecx + 0xc], 0x28
mov dword [esp + 0x18], 0
je 0x4baf19
mov dword [esp + 0x18], 1
mov ecx, dword [esp + 0x38]
test eax, eax
jne 0x4baf71
test cx, cx
jne 0x4baf71
movzx esi, cx
mov dword [esp + 0x78], eax
mov dword [esp + 0x5c], esi
mov al, byte [esp + 0x13]
test al, al
je 0x4bb0ec
movzx edx, cx
add edx, dword [esp + 0x54]
mov ecx, dword [edi + 0x6c]
mov dword [esp + 0x68], 0
cmp dword [edi + 0x70], ecx
jg 0x4bb118
push 0
push edx
push 0
mov edx, 0x4b
mov ecx, edi
call fcn.0044f120
add esp, 0xc
jmp 0x4bb14b
movzx esi, cx
mov dword [esp + 0x78], 1
mov dword [esp + 0x5c], esi
test eax, eax
je 0x4baf31
mov eax, dword [eax]
movzx ecx, cx
add ecx, edx
mov dword [esp + 0x98], ecx
mov esi, dword [eax + 0x10]
mov edx, esi
mov eax, dword [esp + 0x80]
movzx eax, ax
push eax
push ecx
mov ecx, dword [esp + 0x10]
call fcn.004b98e0
mov eax, dword [esp + 0x24]
mov ecx, 0x100
add esp, 8
test word [eax + 0xa], cx
je 0x4bb008
mov eax, dword [edi]
cmp byte [eax + 0x57], 0
je 0x4bafd2
mov edx, 0x4fec54
mov ecx, 0x4fec4a
jmp 0x4bafea
mov eax, dword [edi + 0x6c]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x68]
lea edx, [ecx - 2]
lea ecx, [ecx*4 - 0x12]
add ecx, eax
lea edx, [eax + edx*4]
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x2c]
shr eax, 1
mov dword [edx], eax
mov eax, dword [esp + 0xc]
mov al, byte [eax + 0x2c]
and al, 1
movzx eax, al
mov word [ecx], ax
mov eax, dword [esp + 0x1c]
test byte [eax + 0xa], 0x80
jne 0x4bb06f
mov ecx, esi
call fcn.0046a060
test eax, eax
je 0x4bb06f
mov ecx, dword [edi + 0x6c]
mov edx, dword [esp + 0x98]
cmp dword [edi + 0x70], ecx
jg 0x4bb040
push 0
push dword [esp + 0x5c]
mov ecx, edi
push edx
mov edx, 0x32
call fcn.0044f120
add esp, 0xc
jmp 0x4bb06f
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x58]
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 + 0x34]
test ecx, ecx
je 0x4bb095
mov eax, dword [esp + 0x38]
movzx eax, ax
add eax, ecx
mov ecx, esi
push eax
mov eax, dword [esp + 0x84]
movzx edx, ax
call fcn.004b87f0
add esp, 4
mov eax, dword [esp + 0x80]
movzx eax, ax
add dword [esp + 0x5c], eax
mov al, byte [esi]
cmp al, 0xb0
jne 0x4bb0ac
mov al, byte [esi + 2]
cmp al, 0xb1
jne 0x4bb0b5
mov eax, dword [esi + 0x14]
jmp 0x4bb0bf
cmp al, 0x8a
jne 0x4bb0d7
mov eax, dword [esi + 0x14]
mov eax, dword [eax + 0x1c]
cmp dword [eax], 1
jle 0x4bb0d7
xor al, al
mov dword [esp + 0x68], 1
mov byte [esp + 0x13], al
jmp 0x4bb15c
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0xc]
call fcn.004b86c0
xor al, al
mov byte [esp + 0x13], al
jmp 0x4bb15c
cmp dword [esp + 0x30], 0
je 0x4bb15c
movzx edx, cx
add edx, dword [esp + 0x54]
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x4bb118
push 0
push edx
push 0
mov edx, 0x4b
mov ecx, edi
call fcn.0044f120
add esp, 0xc
jmp 0x4bb14b
mov esi, dword [esp + 0x5c]
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
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
mov al, byte [esp + 0x13]
inc esi
mov dword [esp + 0x5c], esi
mov dword [esp + 0x78], 1
mov esi, dword [esp + 0x5c]
mov ecx, esi
push dword [esp + 0x34]
mov edx, dword [esp + 0x58]
movzx eax, al
sub ecx, eax
push ecx
mov ecx, dword [esp + 0x10]
call fcn.004b8740
mov eax, dword [esp + 0x2c]
add esp, 8
movzx eax, word [eax + 0x32]
test ax, ax
je 0x4bb191
cmp esi, eax
je 0x4bb474
mov edx, dword [esp + 0x30]
test edx, edx
je 0x4bb1e6
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x4bb1b7
push 0
push edx
push 1
mov edx, 0x47
mov ecx, edi
call fcn.0044f120
add esp, 0xc
jmp 0x4bb1e6
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 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 [esp + 0xc]
mov edx, dword [eax + 0x34]
test edx, edx
je 0x4bb268
mov ecx, dword [edi + 0x6c]
mov eax, dword [esp + 0x38]
movzx esi, ax
cmp dword [edi + 0x70], ecx
jg 0x4bb21b
push esi
push dword [esp + 0x58]
mov ecx, edi
push dword [esp + 0x60]
push edx
mov edx, 0x40
call fcn.0044f160
add esp, 0x10
jmp 0x4bb24a
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov edi, dword [esp + 0x2c]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x58]
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [esp + 0x54]
mov dword [eax + ecx*4], 0xfd40
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], esi
push dword [ebp + 0x18]
mov eax, dword [ebp + 0x14]
mov edx, dword [esp + 0x68]
mov ecx, dword [esp + 0xc]
push eax
push dword [esp + 0x60]
push dword [ebp + 0xc]
call fcn.004b9a50
add esp, 0x10
mov ecx, dword [esp + 0x68]
mov eax, dword [esp + 0x78]
lea eax, [ecx + eax*2]
mov ecx, dword [esp + 0x50]
mov dl, byte [ecx + eax*2 + 0x4f2a70]
mov ecx, dword [esp + 0x24]
movzx eax, dl
mov byte [esp + 0x7f], dl
mov dword [esp + 0x98], eax
test dword [ecx + 0x2c], 0x100000
je 0x4bb376
cmp eax, 0x17
jne 0x4bb376
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 esi, edx
shr esi, 0x1f
add esi, edx
mov edx, dword [edi + 0x6c]
mov dword [esp + 0x28], edx
cmp dword [edi + 0x70], edx
jg 0x4bb2ec
push 0
push 0
push esi
mov edx, 0x7c
mov ecx, edi
call fcn.0044f120
mov esi, eax
add esp, 0xc
mov dword [esp + 0x28], esi
jmp 0x4bb31f
lea eax, [edx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [edx + edx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4 + 4], esi
mov esi, dword [esp + 0x28]
mov dword [eax + ecx*4], 0x7c
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
cmp dword [esp + 0x1c], 0
jne 0x4bb32d
cmp dword [esp + 0x3c], 0
je 0x4bb36b
mov eax, dword [edi + 0x6c]
test eax, eax
jle 0x4bb344
lea ecx, [eax + eax*4]
mov edx, 1
mov eax, dword [edi + 0x68]
mov word [eax + ecx*4 - 0x12], dx
mov eax, dword [edi]
mov edx, dword [edi + 0x6c]
cmp byte [eax + 0x57], 0
je 0x4bb356
mov ecx, 0x4fec48
jmp 0x4bb35f
mov eax, dword [edi + 0x68]
lea ecx, [esi + esi*4]
lea ecx, [eax + ecx*4]
lea eax, [edx + 1]
mov dword [ecx + 8], eax
xor eax, eax
mov dword [esp + 0x28], eax
mov dl, byte [esp + 0x7f]
mov eax, dword [esp + 0x98]
mov ecx, dword [edi + 0x6c]
mov esi, dword [esp + 0x5c]
cmp dword [edi + 0x70], ecx
jg 0x4bb39d
push esi
push dword [esp + 0x58]
mov edx, eax
mov ecx, edi
push dword [esp + 0x60]
push dword [esp + 0x58]
call fcn.0044f160
add esp, 0x10
jmp 0x4bb3d3
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov byte [eax + ecx*4], dl
mov dword [eax + ecx*4 + 0x10], esi
mov byte [eax + ecx*4 + 1], 0xfd
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 + 0x58]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x54]
mov dword [eax + 0xc], ecx
mov eax, dword [esp + 0x30]
test eax, eax
je 0x4bb478
mov ecx, dword [edi + 0x6c]
lea edx, [ecx + 2]
cmp dword [edi + 0x70], ecx
jg 0x4bb400
push 0
push edx
push 0
mov edx, 9
mov ecx, edi
call fcn.0044f120
add esp, 0xc
jmp 0x4bb433
mov esi, dword [esp + 0x5c]
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4], 9
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 + 0x50]
mov eax, 1
cmp eax, esi
sbb eax, eax
sub esi, dword [esp + 0x68]
and eax, 4
mov dl, byte [eax + ecx + 0x4f2a72]
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x4bb4e5
push esi
push dword [esp + 0x58]
movzx edx, dl
mov ecx, edi
push dword [esp + 0x60]
push dword [esp + 0x58]
call fcn.0044f160
add esp, 0x10
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x54]
cmp dword [esp + 0x3c], 0
mov edx, dword [esp + 0x38]
movzx esi, dx
mov dword [esp + 0x68], esi
je 0x4bb64c
mov eax, dword [esp + 0x3c]
mov eax, dword [eax]
mov esi, dword [eax + 0x10]
movzx eax, dx
mov edx, esi
add ecx, eax
mov eax, dword [esp + 0x44]
movzx eax, ax
push eax
mov dword [esp + 0x9c], ecx
push ecx
mov ecx, dword [esp + 0x10]
call fcn.004b98e0
mov eax, dword [esp + 0x44]
mov ecx, 0x100
add esp, 8
test word [eax + 0xa], cx
je 0x4bb55a
mov eax, dword [edi]
cmp byte [eax + 0x57], 0
je 0x4bb524
mov edx, 0x4fec54
mov ecx, 0x4fec4a
jmp 0x4bb53c
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov byte [eax + ecx*4], dl
mov dword [eax + ecx*4 + 0x10], esi
mov byte [eax + ecx*4 + 1], 0xfd
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 + 0x58]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x54]
mov dword [eax + 0xc], ecx
mov eax, dword [esp + 0x30]
jmp 0x4bb47c
mov eax, dword [edi + 0x6c]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x68]
lea edx, [ecx - 2]
lea ecx, [ecx*4 - 0x12]
add ecx, eax
lea edx, [eax + edx*4]
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x2c]
shr eax, 1
mov dword [edx], eax
mov eax, dword [esp + 0xc]
mov al, byte [eax + 0x2c]
and al, 1
movzx eax, al
mov word [ecx], ax
mov eax, dword [esp + 0x3c]
test byte [eax + 0xa], 0x80
jne 0x4bb5c1
mov ecx, esi
call fcn.0046a060
test eax, eax
je 0x4bb5c1
mov ecx, dword [edi + 0x6c]
mov edx, dword [esp + 0x98]
cmp dword [edi + 0x70], ecx
jg 0x4bb592
push 0
push dword [esp + 0x5c]
mov ecx, edi
push edx
mov edx, 0x32
call fcn.0044f120
add esp, 0xc
jmp 0x4bb5c1
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x58]
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 eax, dword [esp + 0x48]
test eax, eax
je 0x4bb5ff
push eax
mov eax, dword [esp + 0x48]
mov ecx, esi
movzx edx, ax
call fcn.004b87f0
mov eax, dword [esp + 0x4c]
add esp, 4
mov ecx, dword [esp + 8]
push eax
mov eax, dword [esp + 0x48]
movzx eax, ax
push eax
mov eax, dword [esp + 0x40]
movzx edx, ax
add edx, dword [esp + 0x5c]
call fcn.004b8740
add esp, 8
mov eax, dword [esp + 0x44]
movzx eax, ax
add dword [esp + 0x68], eax
mov al, byte [esi]
cmp al, 0xb0
jne 0x4bb613
mov al, byte [esi + 2]
cmp al, 0xb1
jne 0x4bb61c
mov eax, dword [esi + 0x14]
jmp 0x4bb626
cmp al, 0x8a
jne 0x4bb639
mov eax, dword [esi + 0x14]
mov eax, dword [eax + 0x1c]
cmp dword [eax], 1
jle 0x4bb639
mov esi, dword [esp + 0x68]
mov dword [esp + 0x18], 1
jmp 0x4bb6ae
mov edx, dword [esp + 0x3c]
mov ecx, dword [esp + 0xc]
call fcn.004b86c0
mov esi, dword [esp + 0x68]
jmp 0x4bb6ae
cmp byte [esp + 0x23], 0
je 0x4bb6ae
test eax, eax
jne 0x4bb6ad
movzx edx, dx
add edx, ecx
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x4bb676
push eax
push edx
push eax
lea edx, [eax + 0x4b]
mov ecx, edi
call fcn.0044f120
add esp, 0xc
jmp 0x4bb6a5
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 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 dword [esp + 0x18], 0
inc esi
mov eax, dword [esp + 0x34]
test eax, eax
je 0x4bb6c1
mov ecx, dword [esp + 0x6c]
mov edx, eax
call fcn.00427a80
mov eax, dword [esp + 0x48]
test eax, eax
je 0x4bb6d4
mov ecx, dword [esp + 0x6c]
mov edx, eax
call fcn.00427a80
mov ecx, dword [esp + 0xc]
mov eax, dword [edi + 0x6c]
mov dword [ecx + 0x44], eax
test esi, esi
je 0x4bb7d0
mov eax, dword [esp + 0x30]
test eax, eax
je 0x4bb741
mov ecx, dword [edi + 0x6c]
lea edx, [ecx + 3]
cmp dword [edi + 0x70], ecx
jg 0x4bb70e
push 0
push edx
push eax
mov edx, 0x11
mov ecx, edi
call fcn.0044f120
add esp, 0xc
jmp 0x4bb741
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov edi, dword [esp + 0x30]
mov dword [eax + ecx*4 + 4], edi
mov edi, dword [esp + 0x2c]
mov dword [eax + ecx*4], 0x11
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 + 0x18]
mov eax, dword [esp + 0x50]
mov ecx, dword [edi + 0x6c]
mov dl, byte [edx + eax*2 + str.___]
cmp dword [edi + 0x70], ecx
jg 0x4bb774
push esi
push dword [esp + 0x58]
movzx edx, dl
mov ecx, edi
push dword [esp + 0x60]
push dword [esp + 0x58]
call fcn.0044f160
add esp, 0x10
jmp 0x4bb7aa
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov byte [eax + ecx*4], dl
mov dword [eax + ecx*4 + 0x10], esi
mov byte [eax + ecx*4 + 1], 0xfd
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 + 0x58]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x54]
mov dword [eax + 0xc], ecx
mov ecx, dword [esp + 0x28]
test ecx, ecx
je 0x4bb7d0
mov eax, dword [edi]
mov edx, dword [edi + 0x6c]
cmp byte [eax + 0x57], 0
je 0x4bb7c4
mov eax, 0x4fec48
jmp 0x4bb7cd
mov eax, dword [edi + 0x68]
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*4]
mov dword [eax + 8], edx
mov eax, dword [esp + 0x30]
test eax, eax
je 0x4bb8a7
mov ecx, dword [edi + 0x6c]
lea edx, [ecx + 2]
cmp dword [edi + 0x70], ecx
jg 0x4bb7fc
push 0
push edx
push eax
mov edx, 0x10
mov ecx, edi
call fcn.0044f120
add esp, 0xc
jmp 0x4bb82f
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov edi, dword [esp + 0x30]
mov dword [eax + ecx*4 + 4], edi
mov edi, dword [esp + 0x2c]
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 edx, dword [esp + 0x50]
movzx eax, byte [esp + 0x13]
mov ecx, dword [edi + 0x6c]
mov al, byte [eax + edx*2 + str.___]
movzx edx, byte [esp + 0x13]
add edx, esi
mov byte [esp + 0x23], al
cmp dword [edi + 0x70], ecx
jg 0x4bb86e
push edx
push dword [esp + 0x58]
movzx edx, al
mov ecx, edi
push dword [esp + 0x60]
push dword [esp + 0x58]
call fcn.0044f160
add esp, 0x10
jmp 0x4bb8a7
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4 + 0x10], edx
mov byte [eax + ecx*4 + 1], 0xfd
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 + 0x58]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x54]
mov dword [eax + 0xc], ecx
mov eax, dword [esp + 0x24]
test dword [eax + 0x2c], 0x40000
je 0x4bb910
mov eax, dword [esp + 0x38]
mov ecx, dword [edi + 0x6c]
movzx edx, ax
movzx esi, ax
cmp dword [edi + 0x70], ecx
jg 0x4bb8dd
push edx
push esi
push dword [esp + 0x54]
mov edx, 0x7d
mov ecx, edi
call fcn.0044f120
add esp, 0xc
jmp 0x4bb90c
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov edi, dword [esp + 0x4c]
mov dword [eax + ecx*4 + 4], edi
mov edi, dword [esp + 0x2c]
mov dword [eax + ecx*4], 0x7d
mov dword [eax + ecx*4 + 8], esi
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esp + 0x24]
test byte [eax + 0x2c], 0x40
mov eax, dword [esp + 0x64]
je 0x4bb932
mov ecx, 0x1020
test word [eax + 0x28], cx
jne 0x4bb932
mov dword [esp + 0x28], 1
jmp 0x4bbb68
mov edx, dword [esp + 0x70]
xor ecx, ecx
mov esi, dword [edx + 0xc]
test byte [esi + 0x1c], 0x80
jne 0x4bb965
mov esi, dword [esp + 0x4c]
mov ecx, eax
push esi
push dword [esp + 0x44]
call fcn.004b9770
mov eax, dword [esp + 0x48]
add esp, 8
mov dword [esp + 0x28], 0
jmp 0x4bbb70
mov eax, dword [esp + 0x40]
mov dword [esp + 0x28], ecx
cmp eax, dword [esp + 0x4c]
je 0x4bbb6c
mov esi, dword [esi + 8]
mov dword [esp + 0x28], ecx
test esi, esi
je 0x4bb996
mov dword [esp + 0x28], ecx
mov eax, dword [esi + 0x38]
and al, 3
cmp al, 2
je 0x4bb996
mov esi, dword [esi + 0x14]
test esi, esi
jne 0x4bb986
movzx ecx, word [esi + 0x32]
cmp ecx, 1
jne 0x4bb9cb
mov ecx, dword [esp + 8]
mov al, byte [ecx + 0x13]
test al, al
jne 0x4bb9b6
inc dword [ecx + 0x2c]
mov eax, dword [ecx + 0x2c]
mov dword [esp + 0x48], eax
jmp 0x4bba0e
dec al
mov byte [ecx + 0x13], al
movzx eax, al
mov eax, dword [ecx + eax*4 + 0xa0]
mov dword [esp + 0x48], eax
jmp 0x4bba0e
mov edx, dword [esp + 8]
mov eax, dword [edx + 0x20]
mov edx, dword [edx + 0x1c]
mov dword [esp + 0x48], eax
cmp ecx, edx
jg 0x4bb9f3
mov edi, dword [esp + 8]
add eax, ecx
sub edx, ecx
mov dword [edi + 0x20], eax
mov eax, edi
mov edi, dword [esp + 0x2c]
mov dword [eax + 0x1c], edx
jmp 0x4bba0a
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 + 0x48], edx
mov dword [ecx + 0x2c], eax
mov edx, dword [esp + 0x70]
movzx eax, word [esi + 0x32]
mov dword [esp + 0x14], 0
mov ecx, eax
mov dword [esp + 0x98], 0
cmp word [esp + 0x14], ax
jae 0x4bbb09
mov eax, dword [esp + 0x48]
mov dword [esp + 0x18], eax
mov dword [esp + 0x34], 0
jmp 0x4bba48
mov edx, dword [esp + 0x70]
movzx edx, word [edx + 0x34]
xor ecx, ecx
test edx, edx
je 0x4bba85
mov eax, dword [esi + 4]
mov edi, dword [esp + 0x34]
movzx eax, word [edi + eax]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x70]
mov eax, dword [eax + 4]
nop dword [eax + eax]
mov edi, dword [esp + 0x14]
cmp di, word [eax]
mov edi, dword [esp + 0x2c]
je 0x4bbaad
inc ecx
add eax, 2
cmp ecx, edx
jl 0x4bba70
or eax, 0xffffffff
mov ecx, dword [edi + 0x6c]
movsx edx, ax
cmp dword [edi + 0x70], ecx
jg 0x4bbab2
push dword [esp + 0x18]
mov ecx, edi
push edx
push dword [esp + 0x54]
mov edx, 0x5e
call fcn.0044f120
add esp, 0xc
jmp 0x4bbae5
movzx eax, cx
jmp 0x4bba88
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov edi, dword [esp + 0x4c]
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [esp + 0x18]
mov dword [eax + ecx*4 + 4], edi
mov edi, dword [esp + 0x2c]
mov dword [eax + ecx*4], 0x5e
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov edx, dword [esp + 0x98]
movzx ecx, word [esi + 0x32]
inc edx
inc dword [esp + 0x18]
add dword [esp + 0x34], 2
mov dword [esp + 0x98], edx
cmp edx, ecx
jl 0x4bba44
movzx edx, cx
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x4bbb36
mov esi, dword [esp + 0x8c]
mov ecx, edi
push edx
push dword [esp + 0x4c]
mov edx, 0x1c
push esi
push dword [esp + 0x4c]
call fcn.0044f160
add esp, 0x10
jmp 0x4bbb68
mov esi, dword [esp + 0x40]
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4 + 4], esi
mov esi, dword [esp + 0x8c]
mov dword [eax + ecx*4 + 8], esi
mov esi, dword [esp + 0x48]
mov dword [eax + ecx*4], 0xfd1c
mov dword [eax + ecx*4 + 0xc], esi
mov dword [eax + ecx*4 + 0x10], edx
mov eax, dword [esp + 0x40]
mov esi, dword [esp + 0x4c]
mov edx, dword [esp + 0xc]
cmp dword [edx], 0
jne 0x4bbb96
mov ecx, dword [esp + 0x70]
mov ecx, dword [ecx + 0x24]
test ecx, ecx
je 0x4bbb96
push dword [esp + 0x74]
mov edx, eax
call fcn.004b99d0
mov edx, dword [esp + 0x10]
add esp, 4
mov ecx, dword [esp + 0x24]
test dword [ecx + 0x2c], 0x1000
je 0x4bbba9
mov byte [edx + 0x3d], 0xb8
jmp 0x4bbbb6
cmp dword [esp + 0x50], 0
sete al
add al, 0x26
mov byte [edx + 0x3d], al
mov dword [edx + 0x40], esi
mov al, byte [ecx + 0x2e]
and al, 1
mov byte [edx + 0x3e], al
test byte [ecx + 0x2c], 0xf
jne 0x4bbbcb
mov byte [edx + 0x3f], 1
cmp dword [esp + 0x28], 0
je 0x4bc8c5
xor eax, eax
mov dword [esp + 0x70], eax
neg eax
sbb eax, eax
add eax, 2
mov dword [esp + 0x60], eax
jmp 0x4bc8da
test edx, 0x2000
je 0x4bc7ed
mov ecx, dword [esp + 8]
xor edx, edx
mov dword [esp + 0x80], 0
mov dword [esp + 0x3c], 0
mov dword [esp + 0x1c], 0
mov eax, dword [ecx + 0x28]
inc dword [ecx + 0x2c]
mov esi, dword [ecx + 0x2c]
mov dword [esp + 0x88], eax
inc eax
mov dword [ecx + 0x28], eax
mov eax, dword [ecx + 0x38]
dec eax
mov dword [esp + 0x34], esi
mov dword [ecx + 0x38], eax
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x84]
mov dword [esp + 0x4c], 0
mov dword [esp + 0x30], edx
mov ecx, dword [eax + 0x10]
mov eax, dword [esp + 0x24]
mov dword [esp + 0x28], ecx
mov eax, dword [eax + 0x38]
mov eax, dword [eax]
mov dword [esp + 0x14], eax
mov eax, dword [eax + 0x18]
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0xc]
mov dword [eax + 0x40], esi
mov esi, dword [esp + 0x64]
mov byte [eax + 0x3d], 0x43
mov al, byte [esi + 0x2c]
cmp al, 1
jbe 0x4bbdaf
mov ecx, dword [esp + 0x6c]
movzx eax, al
sub eax, dword [ebp + 0xc]
dec eax
mov dword [esp + 0x60], eax
push edx
lea eax, [eax + eax*8]
lea eax, [eax*8 + 0x50]
push eax
call fcn.00427e60
mov ecx, eax
add esp, 8
mov dword [esp + 0x68], ecx
test ecx, ecx
jne 0x4bbccb
mov eax, dword [ebp + 0x14]
mov edx, dword [ebp + 0x18]
pop edi
pop esi
mov ecx, dword [esp + 0x144]
xor ecx, esp
call fcn.004e3214
mov esp, ebp
pop ebp
ret
mov edx, dword [esp + 0x60]
lea eax, [edx + 1]
movzx eax, al
mov dword [ecx + 4], eax
mov dword [ecx], eax
mov eax, dword [esp + 0x84]
movups xmm0, xmmword [eax]
movups xmmword [ecx + 8], xmm0
movups xmm0, xmmword [eax + 0x10]
movups xmmword [ecx + 0x18], xmm0
movups xmm0, xmmword [eax + 0x20]
movups xmmword [ecx + 0x28], xmm0
movups xmm0, xmmword [eax + 0x30]
movups xmmword [ecx + 0x38], xmm0
movq xmm0, qword [eax + 0x40]
movq qword [ecx + 0x48], xmm0
mov eax, dword [esi + 4]
add eax, 8
cmp edx, 1
jl 0x4bbd6b
mov esi, dword [esp + 0xc]
add ecx, 0x50
add esi, 0x9c
mov edi, eax
movzx eax, byte [esi]
lea esi, [esi + 0x60]
lea ecx, [ecx + 0x48]
lea eax, [eax + eax*8]
movups xmm0, xmmword [edi + eax*8]
movups xmmword [ecx - 0x48], xmm0
movups xmm0, xmmword [edi + eax*8 + 0x10]
movups xmmword [ecx - 0x38], xmm0
movups xmm0, xmmword [edi + eax*8 + 0x20]
movups xmmword [ecx - 0x28], xmm0
movups xmm0, xmmword [edi + eax*8 + 0x30]
movups xmmword [ecx - 0x18], xmm0
movq xmm0, qword [edi + eax*8 + 0x40]
movq qword [ecx - 8], xmm0
sub edx, 1
jne 0x4bbd24
mov edi, dword [esp + 0x2c]
mov esi, dword [esp + 0x64]
mov ecx, dword [esp + 0x28]
test byte [esi + 0x28], 0x10
jne 0x4bbebe
test byte [ecx + 0x1c], 0x80
jne 0x4bbdec
mov ecx, dword [esp + 8]
mov edx, dword [ecx + 0x2c]
inc edx
mov dword [ecx + 0x2c], edx
mov ecx, dword [edi + 0x6c]
mov dword [esp + 0x3c], edx
cmp dword [edi + 0x70], ecx
jg 0x4bbdb8
push 0
push edx
push 0
mov edx, 0x4b
mov ecx, edi
call fcn.0044f120
add esp, 0xc
jmp 0x4bbeaf
mov eax, dword [esi + 4]
mov dword [esp + 0x68], eax
jmp 0x4bbd6f
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 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
jmp 0x4bbeaf
mov esi, dword [ecx + 8]
test esi, esi
je 0x4bbe03
mov eax, dword [esi + 0x38]
and al, 3
cmp al, 2
je 0x4bbe03
mov esi, dword [esi + 0x14]
test esi, esi
jne 0x4bbdf3
mov ecx, dword [esp + 8]
mov eax, dword [ecx + 0x28]
mov dword [esp + 0x3c], eax
inc eax
mov dword [ecx + 0x28], eax
mov ecx, dword [edi + 0x6c]
movzx edx, word [esi + 0x32]
cmp dword [edi + 0x70], ecx
jg 0x4bbe36
push 0
push edx
push dword [esp + 0x44]
mov edx, 0x76
mov ecx, edi
call fcn.0044f120
add esp, 0xc
jmp 0x4bbe69
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov edi, dword [esp + 0x3c]
mov dword [eax + ecx*4 + 4], edi
mov edi, dword [esp + 0x2c]
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, esi
mov eax, dword [ecx + 8]
mov dword [esp + 0x60], eax
call fcn.00483aa0
mov esi, eax
test esi, esi
je 0x4bbeaf
mov edx, dword [esp + 0x60]
mov ecx, dword [edx]
cmp byte [ecx + 0x57], 0
je 0x4bbe9d
push esi
mov edx, 0xfffffff8
call fcn.0044fcf0
add esp, 4
jmp 0x4bbeaf
mov eax, dword [edx + 0x6c]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0x68]
mov byte [eax + ecx*4 - 0x13], 0xf8
mov dword [eax + ecx*4 - 4], esi
mov edx, dword [esp + 8]
mov ecx, dword [edx + 0x2c]
inc ecx
mov dword [esp + 0x1c], ecx
mov dword [edx + 0x2c], ecx
mov edx, dword [edi + 0x6c]
mov dword [esp + 0x60], edx
cmp dword [edi + 0x70], edx
jg 0x4bbee7
push 0
push dword [esp + 0x38]
mov edx, 0x47
mov ecx, edi
push 0
call fcn.0044f120
add esp, 0xc
mov dword [esp + 0x60], eax
jmp 0x4bbf1a
lea eax, [edx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [edx + edx*4]
mov eax, dword [edi + 0x68]
mov edx, dword [esp + 0x34]
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 eax, dword [esp + 0x74]
cmp dword [eax + 0xc], 1
jle 0x4bc025
xor ecx, ecx
xor esi, esi
mov dword [esp + 0x18], ecx
xor edi, edi
mov eax, dword [eax + 0x18]
add eax, esi
mov edx, dword [eax]
cmp eax, dword [esp + 0x14]
je 0x4bbf8c
mov edi, 0x8006
test word [eax + 0xa], di
mov edi, dword [esp + 0x30]
jne 0x4bbf8c
mov ecx, 0x3fff
test word [eax + 0xc], cx
mov ecx, dword [esp + 0x18]
je 0x4bbf8c
test dword [edx + 4], 0x400000
jne 0x4bbf8c
mov ecx, dword [esp + 0x6c]
push 0
push 0
call fcn.004688f0
mov ecx, dword [esp + 0x10]
mov edx, edi
push eax
call fcn.00468030
mov ecx, dword [esp + 0x24]
mov edi, eax
add esp, 0xc
mov dword [esp + 0x30], edi
mov eax, dword [esp + 0x74]
inc ecx
add esi, 0x30
mov dword [esp + 0x18], ecx
cmp ecx, dword [eax + 0xc]
jl 0x4bbf32
test edi, edi
mov edi, dword [esp + 0x2c]
je 0x4bc025
mov eax, dword [esp + 8]
push 0
push 0x34
mov ecx, dword [eax]
call fcn.00427e60
mov esi, eax
add esp, 8
test esi, esi
je 0x4bc012
push 0x34
push 0
push esi
call sub.VCRUNTIME140.dll_memset
mov edx, dword [esp + 0x3c]
or eax, 0xffffffff
mov word [esi + 0x22], ax
add esp, 0xc
mov dword [esi + 0x10], edx
mov byte [esi], 0x2c
mov eax, dword [edx + 4]
and eax, 0x400208
or dword [esi + 4], eax
mov ecx, dword [edx + 0x18]
mov edx, dword [esp + 8]
inc ecx
mov dword [esi + 0x18], ecx
mov eax, dword [edx]
mov eax, dword [eax + 0x84]
cmp ecx, eax
jle 0x4bc021
push eax
push str.Expression_tree_is_too_large__maximum_depth__d_
push edx
call fcn.0042b560
add esp, 0xc
jmp 0x4bc021
mov eax, dword [esp + 8]
mov edx, dword [esp + 0x30]
mov ecx, dword [eax]
call fcn.00468660
mov dword [esp + 0x30], esi
mov esi, dword [esp + 8]
push str.MULTI_INDEX_OR
push 1
push esi
call fcn.0044f720
mov edx, dword [esp + 0x84]
xor ecx, ecx
add esp, 0xc
mov dword [esp + 0x44], ecx
cmp dword [edx + 0xc], ecx
jle 0x4bc0c6
nop dword [eax + eax]
lea eax, [ecx + ecx*2]
shl eax, 4
add eax, dword [edx + 0x18]
mov edx, dword [esp + 0x40]
cmp dword [eax + 0x14], edx
je 0x4bc06d
mov edx, 0x400
test word [eax + 0xc], dx
je 0x4bc0b6
mov edx, dword [eax]
xor eax, eax
mov dword [esp + 0x50], eax
test edx, edx
je 0x4bc08d
mov ecx, dword [esp + 0x6c]
push eax
push eax
call fcn.004688f0
mov ecx, dword [esp + 0x4c]
add esp, 8
jmp 0x4bc08f
xor eax, eax
mov edx, dword [esp + 0x6c]
mov esi, eax
mov dword [esp + 0x24], eax
cmp byte [edx + 0x57], 0
je 0x4bc0db
test eax, eax
je 0x4bc0b2
mov ecx, dword [esp + 0x6c]
mov edx, eax
call fcn.00468660
mov ecx, dword [esp + 0x44]
mov esi, dword [esp + 8]
mov eax, dword [esp + 0x78]
inc ecx
mov dword [esp + 0x44], ecx
mov edx, eax
cmp ecx, dword [eax + 0xc]
jl 0x4bc050
mov ecx, dword [esi + 0xe4]
test ecx, ecx
jne 0x4bc5fd
xor eax, eax
jmp 0x4bc61b
mov edx, dword [esp + 0x30]
test edx, edx
je 0x4bc0e8
mov dword [edx + 0xc], eax
mov esi, edx
lea eax, [ecx + 1]
push eax
push str.INDEX__d
push 1
push dword [esp + 0x14]
call fcn.0044f720
push dword [esp + 0x98]
mov edx, dword [esp + 0x7c]
mov ecx, dword [esp + 0x1c]
push 0x20
push 0
push 0
push 0
push esi
call fcn.004c8a70
mov esi, eax
add esp, 0x28
mov dword [esp + 0x48], esi
test esi, esi
je 0x4bc5df
mov edx, dword [esp + 0x68]
lea ecx, [esi + 0x2f8]
push 0
push ecx
mov ecx, dword [esp + 0x10]
call fcn.004b8040
mov eax, dword [esp + 0x6c]
add esp, 8
test byte [eax + 0x28], 0x10
jne 0x4bc4a3
mov eax, dword [esp + 0x78]
mov edx, dword [esp + 0x44]
mov eax, dword [eax + 0xc]
dec eax
cmp edx, eax
mov eax, 0xffffffff
cmove edx, eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x18], edx
test byte [eax + 0x1c], 0x80
jne 0x4bc236
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x4bc1a0
push 0
push dword [esp + 0x20]
mov edx, 0x87
mov ecx, edi
push dword [esp + 0x48]
call fcn.0044f120
mov edx, dword [esp + 0x24]
add esp, 0xc
jmp 0x4bc1d3
mov esi, dword [esp + 0x40]
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4 + 4], esi
mov esi, dword [esp + 0x1c]
mov dword [eax + ecx*4], 0x87
mov dword [eax + ecx*4 + 8], esi
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov esi, dword [edi + 0x6c]
mov dword [esp + 0x50], esi
cmp dword [edi + 0x70], esi
jg 0x4bc202
push edx
push dword [esp + 0x20]
mov edx, 0x2f
mov ecx, edi
push 0
push dword [esp + 0x48]
call fcn.0044f160
add esp, 0x10
mov dword [esp + 0x50], eax
jmp 0x4bc49f
lea eax, [esi + 1]
mov dword [edi + 0x6c], eax
lea ecx, [esi + esi*4]
mov eax, dword [edi + 0x68]
mov esi, dword [esp + 0x3c]
mov dword [eax + ecx*4 + 4], esi
mov esi, dword [esp + 0x1c]
mov dword [eax + ecx*4], 0xfd2f
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], esi
mov dword [eax + ecx*4 + 0x10], edx
jmp 0x4bc49f
mov esi, dword [eax + 8]
test esi, esi
je 0x4bc250
nop dword [eax]
mov eax, dword [esi + 0x38]
and al, 3
cmp al, 2
je 0x4bc250
mov esi, dword [esi + 0x14]
test esi, esi
jne 0x4bc240
movzx eax, word [esi + 0x32]
mov dword [esp + 0x5c], eax
mov ecx, eax
mov dword [esp + 0x98], ecx
mov ecx, dword [esp + 8]
cmp eax, 1
jne 0x4bc29e
mov al, byte [ecx + 0x13]
test al, al
jne 0x4bc283
inc dword [ecx + 0x2c]
mov edx, dword [ecx + 0x2c]
xor ecx, ecx
mov dword [esp + 0x38], edx
mov dword [esp + 0x58], ecx
jmp 0x4bc2f0
dec al
mov byte [ecx + 0x13], al
movzx eax, al
mov edx, dword [ecx + eax*4 + 0xa0]
xor ecx, ecx
mov dword [esp + 0x38], edx
mov dword [esp + 0x58], ecx
jmp 0x4bc2f0
mov edx, dword [ecx + 0x20]
mov ecx, dword [ecx + 0x1c]
mov dword [esp + 0x38], edx
cmp eax, ecx
jg 0x4bc2c4
mov edi, dword [esp + 8]
add eax, edx
sub ecx, dword [esp + 0x5c]
mov dword [edi + 0x20], eax
mov eax, edi
mov edi, dword [esp + 0x2c]
mov dword [eax + 0x1c], ecx
jmp 0x4bc2dd
mov eax, dword [esp + 8]
mov ecx, dword [esp + 8]
mov eax, dword [eax + 0x2c]
lea edx, [eax + 1]
add eax, dword [esp + 0x5c]
mov dword [esp + 0x38], edx
mov dword [ecx + 0x2c], eax
xor ecx, ecx
xor eax, eax
mov dword [esp + 0x58], ecx
cmp ax, word [esp + 0x98]
jae 0x4bc321
nop
lea eax, [ecx + edx]
mov edx, dword [esp + 0x28]
push eax
mov eax, dword [esi + 4]
movsx eax, word [eax + ecx*2]
mov ecx, edi
push eax
push dword [esp + 0x48]
call fcn.0046d1d0
mov ecx, dword [esp + 0x64]
add esp, 0xc
mov edx, dword [esp + 0x38]
inc ecx
mov dword [esp + 0x58], ecx
cmp ecx, dword [esp + 0x5c]
jl 0x4bc2f0
cmp dword [esp + 0x18], 0
je 0x4bc393
mov ecx, dword [edi + 0x6c]
mov dword [esp + 0x50], ecx
cmp dword [edi + 0x70], ecx
jg 0x4bc359
mov esi, dword [esp + 0x5c]
mov ecx, edi
push esi
push edx
push 0
push dword [esp + 0x48]
mov edx, 0x1d
call fcn.0044f160
mov edx, dword [esp + 0x48]
add esp, 0x10
mov dword [esp + 0x50], eax
jmp 0x4bc388
mov esi, dword [esp + 0x3c]
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4 + 4], esi
mov esi, dword [esp + 0x5c]
mov dword [eax + ecx*4], 0xfd1d
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], esi
cmp dword [esp + 0x18], 0
jl 0x4bc461
mov ecx, dword [edi + 0x6c]
mov esi, dword [esp + 0x5c]
cmp dword [edi + 0x70], ecx
jg 0x4bc3ba
push dword [esp + 0x1c]
mov ecx, edi
push esi
push edx
mov edx, 0x61
call fcn.0044f120
mov edx, dword [esp + 0x44]
add esp, 0xc
jmp 0x4bc3e9
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov edi, dword [esp + 0x1c]
mov dword [eax + ecx*4 + 0xc], edi
mov edi, dword [esp + 0x2c]
mov dword [eax + ecx*4], 0x61
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], esi
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x4bc410
push esi
push edx
push dword [esp + 0x24]
mov edx, 0x8a
mov ecx, edi
push dword [esp + 0x48]
call fcn.0044f160
mov edx, dword [esp + 0x48]
add esp, 0x10
jmp 0x4bc43f
mov esi, dword [esp + 0x3c]
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4 + 4], esi
mov esi, dword [esp + 0x1c]
mov dword [eax + ecx*4 + 8], esi
mov esi, dword [esp + 0x5c]
mov dword [eax + ecx*4], 0xfd8a
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], esi
cmp dword [esp + 0x18], 0
je 0x4bc461
mov eax, dword [edi + 0x6c]
test eax, eax
jle 0x4bc461
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x68]
mov edi, 0x10
mov word [eax + ecx*4 - 0x12], di
mov edi, dword [esp + 0x2c]
cmp word [esp + 0x98], 1
jne 0x4bc490
test edx, edx
je 0x4bc49f
mov ecx, dword [esp + 8]
mov esi, dword [esp + 0x48]
mov al, byte [ecx + 0x13]
cmp al, 8
jae 0x4bc4a3
movzx eax, al
mov dword [ecx + eax*4 + 0xa0], edx
mov eax, ecx
inc byte [eax + 0x13]
jmp 0x4bc4a3
mov eax, dword [esp + 8]
cmp esi, dword [eax + 0x1c]
jle 0x4bc49f
mov dword [eax + 0x1c], esi
mov dword [eax + 0x20], edx
mov esi, dword [esp + 0x48]
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x4bc4c6
push 0
push dword [esp + 0x58]
mov edx, 0xa
mov ecx, edi
push dword [esp + 0x3c]
call fcn.0044f120
add esp, 0xc
jmp 0x4bc4f9
mov edx, dword [esp + 0x34]
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x54]
mov dword [eax + ecx*4], 0xa
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 + 0x50]
test ecx, ecx
je 0x4bc51f
mov eax, dword [edi]
mov edx, dword [edi + 0x6c]
cmp byte [eax + 0x57], 0
je 0x4bc513
mov eax, 0x4fec48
jmp 0x4bc51c
mov eax, dword [edi + 0x68]
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*4]
mov dword [eax + 8], edx
mov edx, dword [esi + 0x30]
mov ecx, 1
mov eax, dword [esp + 0x4c]
test dl, 2
cmovne eax, ecx
mov ecx, dword [esi + 0x348]
mov dword [esp + 0x4c], eax
test dword [ecx + 0x2c], 0x200
je 0x4bc579
cmp dword [esp + 0x44], 0
je 0x4bc557
mov eax, dword [esp + 0x80]
cmp dword [ecx + 0x20], eax
jne 0x4bc579
mov eax, dword [esp + 0x28]
test byte [eax + 0x1c], 0x80
je 0x4bc56d
mov eax, dword [ecx + 0x20]
mov eax, dword [eax + 0x38]
and al, 3
cmp al, 2
je 0x4bc579
mov eax, dword [ecx + 0x20]
mov dword [esp + 0x80], eax
jmp 0x4bc584
mov dword [esp + 0x80], 0
test dl, 1
je 0x4bc591
mov eax, dword [esp + 0x64]
or dword [eax + 0x30], 1
mov ecx, esi
call fcn.004c9a80
mov esi, dword [esp + 8]
mov ecx, dword [esi + 0xe4]
test ecx, ecx
jne 0x4bc5b0
xor eax, eax
mov dword [esi + 0xe4], eax
jmp 0x4bc5e3
mov edx, dword [esi + 8]
mov eax, dword [edx]
cmp byte [eax + 0x57], 0
je 0x4bc5cb
mov eax, 0x4fec48
mov eax, dword [eax + 8]
mov dword [esi + 0xe4], eax
jmp 0x4bc5e3
mov eax, dword [edx + 0x68]
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*4]
mov eax, dword [eax + 8]
mov dword [esi + 0xe4], eax
jmp 0x4bc5e3
mov esi, dword [esp + 8]
mov edx, dword [esp + 0x24]
test edx, edx
je 0x4bc5f4
mov ecx, dword [esp + 0x6c]
call fcn.00468660
mov ecx, dword [esp + 0x44]
jmp 0x4bc0b6
mov edx, dword [esi + 8]
mov eax, dword [edx]
cmp byte [eax + 0x57], 0
je 0x4bc60f
mov eax, 0x4fec48
jmp 0x4bc618
mov eax, dword [edx + 0x68]
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*4]
mov eax, dword [eax + 8]
mov dword [esi + 0xe4], eax
mov esi, dword [esp + 0xc]
mov eax, dword [esp + 0x80]
mov dword [esi + 0x48], eax
test eax, eax
je 0x4bc63d
mov eax, dword [esp + 0x88]
mov dword [esi + 8], eax
mov eax, dword [esp + 0x30]
test eax, eax
je 0x4bc657
mov ecx, dword [esp + 0x6c]
mov edx, eax
mov dword [eax + 0xc], 0
call fcn.00468660
mov eax, dword [edi]
mov edx, dword [edi + 0x6c]
cmp byte [eax + 0x57], 0
je 0x4bc669
mov eax, 0x4fec48
jmp 0x4bc676
mov eax, dword [esp + 0x60]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x68]
lea eax, [eax + ecx*4]
mov dword [eax + 4], edx
mov ecx, dword [edi + 0x6c]
mov edx, dword [esi + 0xc]
cmp dword [edi + 0x70], ecx
jg 0x4bc69a
push 0
push edx
push 0
mov edx, 9
mov ecx, edi
call fcn.0044f120
add esp, 0xc
jmp 0x4bc6c9
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4], 9
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 [edi + 0xc]
mov edx, dword [esp + 0x54]
not edx
mov eax, dword [ecx + 0x3c]
add eax, dword [ecx + 0x38]
jns 0x4bc6e7
push edx
mov edx, edi
call fcn.0044f970
add esp, 4
jmp 0x4bc6f0
mov ecx, dword [ecx + 0x40]
mov eax, dword [edi + 0x6c]
mov dword [ecx + edx*4], eax
mov eax, dword [edi + 0x6c]
mov edx, esi
mov dword [edx + 0x44], eax
mov eax, dword [esp + 0x64]
cmp byte [eax + 0x2c], 1
jbe 0x4bc7bf
mov ecx, dword [esp + 0x6c]
mov esi, dword [esp + 0x68]
test ecx, ecx
je 0x4bc75f
cmp esi, dword [ecx + 0x164]
jae 0x4bc74d
cmp esi, dword [ecx + 0x15c]
jb 0x4bc735
mov eax, dword [ecx + 0x158]
mov dword [esi], eax
mov dword [ecx + 0x158], esi
jmp 0x4bc7bf
cmp esi, dword [ecx + 0x160]
jb 0x4bc74d
mov eax, dword [ecx + 0x150]
mov dword [esi], eax
mov dword [ecx + 0x150], esi
jmp 0x4bc7bf
cmp dword [ecx + 0x210], 0
je 0x4bc75f
mov edx, esi
call fcn.00427980
jmp 0x4bc7bb
test esi, esi
je 0x4bc7bf
cmp dword [0x4fc180], 0
je 0x4bc7b1
mov eax, dword [0x4fed70]
test eax, eax
je 0x4bc77f
push eax
call dword [0x4fc1d0]
add esp, 4
push esi
call dword [0x4fc1ac]
sub dword [0x4febf8], eax
add esp, 4
dec dword [0x4fec1c]
push esi
call dword [0x4fc1a4]
mov eax, dword [0x4fed70]
add esp, 4
test eax, eax
je 0x4bc7bb
push eax
call dword [0x4fc1d8]
jmp 0x4bc7b8
push esi
call dword [0x4fc1a4]
add esp, 4
mov edx, dword [esp + 0xc]
cmp dword [esp + 0x4c], 0
jne 0x4ba5b7
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0xc]
call fcn.004b86c0
mov edx, dword [esp + 0xc]
xor eax, eax
neg eax
sbb eax, eax
add eax, 2
mov dword [esp + 0x60], eax
jmp 0x4bc8da
mov eax, dword [esp + 0x84]
mov edx, dword [esp + 0xc]
test byte [eax + 0x28], 0x40
je 0x4bc814
xor eax, eax
mov byte [edx + 0x3d], 0xb8
neg eax
sbb eax, eax
add eax, 2
mov dword [esp + 0x60], eax
jmp 0x4bc8da
mov ecx, dword [esp + 0x50]
movzx eax, byte [ecx + 0x4f3c84]
mov byte [edx + 0x3d], al
mov eax, dword [esp + 0x40]
mov dword [edx + 0x40], eax
mov al, byte [ecx + 0x4f04e8]
mov edx, dword [edi + 0x6c]
mov byte [esp + 0x23], al
cmp dword [edi + 0x70], edx
jg 0x4bc86e
push 0
push esi
push dword [esp + 0x48]
movzx edx, al
mov ecx, edi
call fcn.0044f120
mov edx, eax
add esp, 0xc
lea eax, [edx + 1]
mov edx, dword [esp + 0xc]
mov dword [edx + 0x44], eax
xor eax, eax
neg eax
mov byte [edx + 0x3f], 1
sbb eax, eax
add eax, 2
mov dword [esp + 0x60], eax
jmp 0x4bc8da
lea eax, [edx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [edx + edx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4 + 8], esi
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 + 0x40]
mov dword [eax + 4], ecx
lea eax, [edx + 1]
mov edx, dword [esp + 0xc]
mov dword [edx + 0x44], eax
xor eax, eax
neg eax
mov byte [edx + 0x3f], 1
sbb eax, eax
add eax, 2
mov dword [esp + 0x60], eax
jmp 0x4bc8da
mov eax, dword [esp + 0x70]
neg eax
sbb eax, eax
add eax, 2
mov dword [esp + 0x60], eax
jmp 0x4bc8da
mov edx, dword [esp + 0xc]
mov eax, dword [esp + 0x74]
xor ecx, ecx
mov dword [esp + 0x1c], ecx
mov esi, dword [eax + 0x18]
mov eax, dword [eax + 0xc]
mov dword [esp + 0x14], eax
test eax, eax
jle 0x4bcb97
jmp 0x4bc904
mov edx, dword [esp + 0xc]
xor eax, eax
test byte [esi + 0xa], 6
mov dword [esp + 0x34], eax
jne 0x4bcb83
mov ecx, dword [esi + 0x28]
mov eax, dword [esi + 0x2c]
and ecx, dword [edx + 0x58]
and eax, dword [edx + 0x5c]
or ecx, eax
je 0x4bc931
mov eax, dword [esp + 0x64]
or dword [eax + 0x30], 2
jmp 0x4bcb7f
mov eax, dword [esp + 0x84]
mov edx, dword [esi]
mov dword [esp + 0x18], edx
mov al, byte [eax + 0x24]
test al, 0x58
je 0x4bc9ea
mov ecx, dword [edx + 4]
test cl, 3
je 0x4bcb7f
test al, 8
je 0x4bc962
test cl, 1
je 0x4bcb7f
mov ecx, dword [esp + 0x64]
mov eax, dword [edx + 0x24]
cmp dword [ecx + 0x1f8], eax
jne 0x4bc97a
mov ecx, 1
xor edx, edx
jmp 0x4bc9d2
mov edx, dword [ecx + 0x1f4]
mov eax, 1
mov dword [esp + 0x88], edx
cmp edx, eax
jle 0x4bc9b8
add ecx, 0x1fc
mov edx, dword [esp + 0x18]
mov edi, dword [edx + 0x24]
cmp dword [ecx], edi
mov edi, dword [esp + 0x2c]
mov edx, dword [esp + 0x88]
je 0x4bca72
inc eax
add ecx, 4
cmp eax, edx
jl 0x4bc996
xorps xmm0, xmm0
movlpd qword [esp + 0x90], xmm0
mov edx, dword [esp + 0x94]
mov ecx, dword [esp + 0x90]
mov eax, dword [esp + 0xc]
and ecx, dword [eax + 0x58]
mov eax, dword [eax + 0x5c]
and eax, edx
or ecx, eax
jne 0x4bcb7f
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x60]
cmp eax, 1
jne 0x4bca8c
mov eax, dword [esp + 0xc]
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 + 0x9c], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 0x98], eax
lea eax, [esp + 0x98]
mov dword [esp + 0xa4], 0x4718f0
mov dword [esp + 0xb8], eax
test edx, edx
je 0x4bca59
lea ecx, [esp + 0xa0]
call fcn.00463850
cmp word [esp + 0xb4], 0
je 0x4bca91
mov ecx, 2
mov dword [esp + 0x1c], ecx
jmp 0x4bcb83
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 0x4bc9d2
cmp eax, 3
jge 0x4bcab6
mov eax, 0x1000
test word [esi + 0xa], ax
je 0x4bcab6
mov ecx, dword [esp + 0x1c]
test ecx, ecx
jne 0x4bcb83
mov ecx, 3
mov dword [esp + 0x1c], ecx
jmp 0x4bcb83
mov eax, 0x200
test word [esi + 0xa], ax
je 0x4bcb3b
mov eax, dword [esp + 0xc]
mov edx, dword [eax + 0x2c]
test edx, edx
je 0x4bcb3b
mov ecx, dword [edi + 0x6c]
mov eax, edx
and edx, 1
shr eax, 1
or edx, 0x10
mov dword [esp + 0x88], eax
mov dword [esp + 0x34], ecx
cmp dword [edi + 0x70], ecx
jg 0x4bcafe
push 0
push 0
push eax
mov ecx, edi
call fcn.0044f120
add esp, 0xc
mov dword [esp + 0x34], eax
jmp 0x4bcb3b
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 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 + 0x88]
mov dword [eax + 4], ecx
mov byte [eax + 1], 0
push 0x10
push dword [esp + 0x90]
push dword [esp + 0x20]
push dword [esp + 0x14]
call fcn.004709d0
mov ecx, dword [esp + 0x44]
add esp, 0x10
test ecx, ecx
je 0x4bcb7a
mov eax, dword [edi]
mov edx, dword [edi + 0x6c]
cmp byte [eax + 0x57], 0
je 0x4bcb6e
mov eax, 0x4fec48
jmp 0x4bcb77
mov eax, dword [edi + 0x68]
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*4]
mov dword [eax + 8], edx
or word [esi + 0xa], 4
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
add esi, 0x30
dec eax
mov dword [esp + 0x14], eax
test eax, eax
jg 0x4bc900
mov dword [esp + 0x60], ecx
test ecx, ecx
jg 0x4bc8d6
mov esi, dword [esp + 0x74]
mov edx, dword [esi + 0x14]
mov eax, dword [esi + 0x18]
mov dword [esp + 0x28], edx
test edx, edx
jle 0x4bcd21
mov edi, eax
nop dword [eax + eax]
test byte [edi + 0xa], 6
jne 0x4bcd0d
movzx eax, word [edi + 0xc]
mov esi, 0xb
test al, 0x82
setne cl
bt ax, si
mov esi, dword [esp + 0x74]
setb al
test al, cl
je 0x4bcd0d
mov ecx, dword [esp + 0x40]
cmp dword [edi + 0x14], ecx
jne 0x4bcd0d
mov eax, dword [esp + 0x84]
test byte [eax + 0x24], 0x58
jne 0x4bcd0d
mov eax, dword [edi]
mov edx, esi
push 0
push 0x83
push dword [edi + 0x18]
mov dword [esp + 0x20], eax
push ecx
lea ecx, [esp + 0xf8]
mov dword [esp + 0x28], 0
call fcn.004c14e0
mov esi, eax
add esp, 0x10
test esi, esi
je 0x4bcc7c
nop dword [eax]
mov edx, dword [esi + 0x20]
mov ecx, edx
mov eax, dword [esi + 0x24]
and ecx, dword [ebp + 0x14]
and eax, dword [ebp + 0x18]
or ecx, eax
jne 0x4bcc6a
or edx, dword [esi + 0x24]
jne 0x4bcc5d
test byte [esi + 0xc], 0x82
jne 0x4bcc80
mov eax, dword [esp + 0x18]
test eax, eax
cmove eax, esi
mov dword [esp + 0x18], eax
lea ecx, [esp + 0xe8]
call fcn.004c11b0
mov esi, eax
test esi, esi
jne 0x4bcc40
mov esi, dword [esp + 0x18]
test esi, esi
je 0x4bcd09
test byte [esi + 0xa], 4
jne 0x4bcd09
test byte [esi + 0xc], 1
je 0x4bccaa
mov eax, dword [esi]
test dword [eax + 4], 0x1000
je 0x4bccaa
mov eax, dword [eax + 0x14]
mov eax, dword [eax + 0x1c]
cmp dword [eax], 1
jg 0x4bcd09
mov eax, dword [esi]
push 0x10
push dword [esp + 0x90]
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 + 0x1c]
mov eax, dword [eax + 0xc]
mov dword [esp + 0xb4], eax
lea eax, [esp + 0xa8]
push eax
push dword [esp + 0x14]
call fcn.004709d0
add esp, 0x10
or word [esi + 0xa], 4
mov edx, dword [esp + 0x28]
dec edx
add edi, 0x30
mov dword [esp + 0x28], edx
test edx, edx
jg 0x4bcbc0
mov edi, dword [esp + 0x2c]
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx + 0x38]
mov dword [esp + 0x18], eax
test eax, eax
je 0x4bd0dd
movzx eax, byte [ecx + 0x3c]
lea ecx, [eax + eax*8]
mov eax, dword [esp + 0x64]
mov eax, dword [eax + 4]
mov eax, dword [eax + ecx*8 + 0x18]
mov dword [esp + 0x60], eax
test byte [eax + 0x1c], 0x80
jne 0x4bcdf5
mov edx, dword [esp + 8]
mov ecx, dword [edx + 0x1c]
mov esi, dword [edx + 0x20]
cmp ecx, 2
jl 0x4bcd71
lea eax, [esi + 2]
mov dword [edx + 0x20], eax
lea eax, [ecx - 2]
mov dword [edx + 0x1c], eax
jmp 0x4bcd7d
mov eax, dword [edx + 0x2c]
lea esi, [eax + 1]
add eax, 2
mov dword [edx + 0x2c], eax
mov eax, dword [esp + 0xc]
lea edx, [esi + 1]
mov ecx, dword [edi + 0x6c]
mov eax, dword [eax + 4]
mov dword [esp + 0x14], eax
cmp dword [edi + 0x70], ecx
jg 0x4bcdb4
push 0
push edx
push eax
mov edx, 0x87
mov ecx, edi
call fcn.0044f120
mov edx, 1
add esp, 0xc
mov dword [esp + 0x30], edx
jmp 0x4bcee1
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov edi, dword [esp + 0x14]
mov dword [eax + ecx*4 + 8], edx
mov edx, 1
mov dword [eax + ecx*4 + 4], edi
mov edi, dword [esp + 0x2c]
mov dword [eax + ecx*4], 0x87
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov dword [esp + 0x30], edx
jmp 0x4bcee1
mov esi, dword [eax + 8]
test esi, esi
je 0x4bce10
nop dword [eax]
mov eax, dword [esi + 0x38]
and al, 3
cmp al, 2
je 0x4bce10
mov esi, dword [esi + 0x14]
test esi, esi
jne 0x4bce00
movzx eax, word [esi + 0x32]
mov dword [esp + 0x30], eax
lea ecx, [eax + 1]
cmp ecx, 1
jne 0x4bce44
mov ecx, dword [esp + 8]
mov al, byte [ecx + 0x13]
test al, al
jne 0x4bce33
inc dword [ecx + 0x2c]
mov edx, dword [ecx + 0x2c]
jmp 0x4bce88
dec al
mov byte [ecx + 0x13], al
movzx eax, al
mov edx, dword [ecx + eax*4 + 0xa0]
jmp 0x4bce88
mov eax, dword [esp + 8]
mov edx, dword [eax + 0x20]
mov eax, dword [eax + 0x1c]
mov dword [esp + 0x28], edx
mov dword [esp + 0x14], eax
cmp ecx, eax
jg 0x4bce75
mov edi, dword [esp + 8]
lea eax, [ecx + edx]
mov dword [edi + 0x20], eax
mov eax, dword [esp + 0x14]
sub eax, ecx
mov ecx, edi
mov edi, dword [esp + 0x2c]
mov dword [ecx + 0x1c], eax
jmp 0x4bce8c
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 + 0x28], edx
xor ecx, ecx
mov dword [esp + 0x14], ecx
cmp dword [esp + 0x30], ecx
jbe 0x4bced9
lea eax, [edx + 1]
mov dword [esp + 0x88], eax
mov edx, dword [esp + 0x60]
add eax, ecx
push eax
mov eax, dword [esi + 4]
movsx eax, word [eax + ecx*2]
mov ecx, edi
push eax
push dword [esp + 0x48]
call fcn.0046d1d0
mov ecx, dword [esp + 0x20]
add esp, 0xc
mov edx, dword [esp + 0x30]
inc ecx
mov eax, dword [esp + 0x88]
mov dword [esp + 0x14], ecx
cmp ecx, edx
jl 0x4bcea2
jmp 0x4bcedd
mov edx, dword [esp + 0x30]
mov esi, dword [esp + 0x28]
mov ecx, dword [esp + 0x18]
lea eax, [esi + 1]
mov ecx, dword [ecx]
mov dword [esp + 0x14], ecx
mov ecx, dword [edi + 0x6c]
mov dword [esp + 0x60], ecx
cmp dword [edi + 0x70], ecx
jg 0x4bcf1c
push edx
mov edx, dword [esp + 0x18]
mov ecx, edi
push eax
push 0
push edx
mov edx, 0x1d
call fcn.0044f160
mov edx, dword [esp + 0x40]
add esp, 0x10
mov dword [esp + 0x60], eax
jmp 0x4bcf4e
mov edx, dword [esp + 0x14]
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4 + 4], edx
lea edx, [esi + 1]
mov dword [eax + ecx*4 + 0xc], edx
mov edx, dword [esp + 0x30]
mov dword [eax + ecx*4], 0xfd1d
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0x10], edx
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x4bcf71
push esi
push edx
lea eax, [esi + 1]
mov edx, 0x61
push eax
mov ecx, edi
call fcn.0044f120
mov edx, dword [esp + 0x3c]
add esp, 0xc
jmp 0x4bcf9f
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
lea edi, [esi + 1]
mov dword [eax + ecx*4 + 4], edi
mov edi, dword [esp + 0x2c]
mov dword [eax + ecx*4], 0x61
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], esi
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esp + 0x18]
mov ecx, dword [edi + 0x6c]
mov eax, dword [eax]
mov dword [esp + 0x14], eax
cmp dword [edi + 0x70], ecx
jg 0x4bcfd1
push edx
mov edx, dword [esp + 0x18]
lea eax, [esi + 1]
push eax
push esi
push edx
mov edx, 0x8a
mov ecx, edi
call fcn.0044f160
mov edx, dword [esp + 0x40]
add esp, 0x10
jmp 0x4bcfff
mov edx, dword [esp + 0x14]
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4 + 4], edx
lea edx, [esi + 1]
mov dword [eax + ecx*4 + 0xc], edx
mov edx, dword [esp + 0x30]
mov dword [eax + ecx*4], 0xfd8a
mov dword [eax + ecx*4 + 8], esi
mov dword [eax + ecx*4 + 0x10], edx
mov eax, dword [esp + 0x18]
mov ecx, dword [edi + 0x6c]
mov eax, dword [eax + 4]
mov dword [esp + 0x14], eax
cmp dword [edi + 0x70], ecx
jg 0x4bd033
push edx
mov edx, dword [esp + 0x18]
lea eax, [esi + 1]
push eax
push 0
push edx
mov edx, 0xb4
mov ecx, edi
call fcn.0044f160
mov edx, dword [esp + 0x40]
add esp, 0x10
jmp 0x4bd065
mov edx, dword [esp + 0x14]
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4 + 4], edx
lea edx, [esi + 1]
mov dword [eax + ecx*4 + 0xc], edx
mov edx, dword [esp + 0x30]
mov dword [eax + ecx*4], 0xfdb4
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0x10], edx
mov eax, dword [edi + 0x6c]
test eax, eax
jle 0x4bd080
lea ecx, [eax + eax*4]
mov edx, 0x10
mov eax, dword [edi + 0x68]
mov word [eax + ecx*4 - 0x12], dx
mov edx, dword [esp + 0x30]
mov eax, dword [edi + 0x6c]
mov dword [esp + 0x14], eax
mov eax, dword [edi]
cmp byte [eax + 0x57], 0
je 0x4bd096
mov eax, 0x4fec48
jmp 0x4bd0a3
mov eax, dword [esp + 0x60]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x68]
lea eax, [eax + ecx*4]
mov ecx, dword [esp + 0x14]
inc edx
mov dword [eax + 8], ecx
cmp edx, 1
jne 0x4bd0ce
test esi, esi
je 0x4bd0dd
mov ecx, dword [esp + 8]
mov al, byte [ecx + 0x13]
cmp al, 8
jae 0x4bd0dd
movzx eax, al
mov dword [ecx + eax*4 + 0xa0], esi
inc byte [ecx + 0x13]
jmp 0x4bd0dd
mov ecx, dword [esp + 8]
cmp edx, dword [ecx + 0x1c]
jle 0x4bd0dd
mov dword [ecx + 0x1c], edx
mov dword [ecx + 0x20], esi
mov eax, dword [esp + 0xc]
mov edx, dword [eax]
test edx, edx
je 0x4bd14d
mov ecx, dword [esp + 0xc]
mov eax, dword [edi + 0x6c]
mov dword [ecx + 0x1c], eax
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x4bd10f
push 0
push edx
push 1
mov edx, 0x47
mov ecx, edi
call fcn.0044f120
add esp, 0xc
jmp 0x4bd13e
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 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 [esp + 0xc]
cmp dword [eax + 0x38], 0
je 0x4bd1bd
mov esi, dword [eax + 0x38]
jmp 0x4bd158
mov esi, dword [eax + 0x38]
test esi, esi
je 0x4bd225
mov ecx, dword [edi + 0x6c]
mov edx, dword [esi + 8]
cmp dword [edi + 0x70], ecx
jg 0x4bd179
push 0
push edx
push 0
mov edx, 0x4a
mov ecx, edi
call fcn.0044f120
add esp, 0xc
jmp 0x4bd1ac
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov edi, dword [esp + 0x2c]
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 edx, dword [esp + 8]
mov eax, dword [edi + 0x6c]
mov dword [esi + 0xc], eax
mov eax, dword [esp + 0xc]
inc byte [edx + 0x1a]
mov ecx, dword [esp + 0x74]
xor edi, edi
mov esi, dword [ecx + 0x18]
cmp dword [ecx + 0x14], edi
jle 0x4bd225
nop dword [eax + eax]
test byte [esi + 0xa], 6
jne 0x4bd214
mov edx, dword [esp + 0xc]
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 0x4bd214
mov eax, dword [esp + 0x84]
test byte [eax + 0x24], 0x40
jne 0x4bd214
push 0x10
push dword [esp + 0x90]
push dword [esi]
push edx
call fcn.004709d0
add esp, 0x10
or word [esi + 0xa], 4
mov eax, dword [esp + 0x74]
inc edi
add esi, 0x30
cmp edi, dword [eax + 0x14]
mov eax, dword [esp + 0xc]
jl 0x4bd1d0
mov ecx, dword [esp + 0xc]
mov eax, dword [eax + 0x58]
pop edi
pop esi
mov edx, dword [ecx + 0x5c]
mov ecx, dword [esp + 0x144]
xor ecx, esp
call fcn.004e3214
mov esp, ebp
pop ebp
ret