Function at 0x4887c0
Capabilities:
Encode data using base64
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x108
mov eax, dword [0x559940]
xor eax, esp
mov dword [esp + 0x104], eax
mov eax, dword [ebp + 8]
mov dword [esp + 0x8c], eax
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x88], eax
lea eax, [ecx + 0x50]
mov dword [esp + 0xac], eax
push esi
push edi
mov edi, dword [ecx]
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x6c], edx
mov dword [esp + 0x68], 0
mov eax, dword [edi]
mov dword [esp + 0x74], eax
lea eax, [edx + edx*4]
shl eax, 4
add ecx, eax
mov esi, dword [edi + 8]
mov dword [esp + 0x24], ecx
mov dword [esp + 0x4c], edi
mov dword [esp + 0x60], esi
lea eax, [ecx + 0x2f0]
mov dword [esp + 0x78], eax
mov eax, dword [ecx + 0x330]
mov dword [esp + 0x38], eax
movzx eax, byte [ecx + 0x31c]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x5c]
shl ecx, 4
mov eax, dword [eax + 4]
add eax, 8
add eax, ecx
mov ecx, dword [esp + 0x5c]
mov dword [esp + 0x30], eax
mov eax, dword [eax + 0x30]
mov edx, dword [ecx + 0x1ec]
mov dword [esp + 0x40], eax
xor eax, eax
test edx, edx
jle 0x488894
add ecx, 0x1f0
nop word [eax + eax]
mov edi, dword [esp + 0x40]
cmp dword [ecx], edi
je 0x488a47
inc eax
add ecx, 4
cmp eax, edx
jl 0x488880
xorps xmm0, xmm0
movlpd qword [esp + 0xb8], xmm0
mov edx, dword [esp + 0xbc]
mov ecx, dword [esp + 0xb8]
mov eax, dword [esp + 0x24]
not ecx
and ecx, dword [esp + 0x94]
not edx
and edx, dword [esp + 0x90]
mov dword [eax + 0x338], ecx
mov ecx, dword [esp + 0x5c]
mov dword [eax + 0x33c], edx
mov eax, dword [ecx + 0x40]
mov edx, dword [ecx + 0x44]
mov ecx, dword [esp + 0x6c]
call fcn.004f49d0
and eax, 1
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x38]
test byte [eax + 0x24], 0x40
je 0x488906
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x2c], 1
test byte [eax + 0x2c], 0x20
je 0x48890e
mov dword [esp + 0x2c], 0
mov edx, dword [esi + 0xc]
mov dword [esp + 0x28], edx
mov ecx, dword [edx + 0x44]
mov dword [esp + 0x1c], ecx
lea eax, [ecx + 1]
mov dword [edx + 0x44], eax
lea eax, [ecx - 1]
add edx, 0x48
test ecx, eax
jne 0x488953
mov edx, dword [edx]
lea eax, [ecx*8 + 4]
push 0
push eax
mov eax, dword [esp + 0x30]
mov ecx, dword [eax]
call fcn.00405ab0
mov edx, dword [esp + 0x30]
add esp, 8
mov ecx, dword [esp + 0x1c]
add edx, 0x48
mov dword [edx], eax
mov eax, dword [edx]
test eax, eax
je 0x488960
mov dword [eax + ecx*4], 0xffffffff
mov edx, dword [esp + 0x24]
not ecx
mov dword [esp + 0x1c], ecx
mov dword [edx + 0x300], ecx
mov dword [edx + 0x2fc], ecx
mov ecx, dword [esi + 0xc]
mov dword [esp + 0x28], ecx
mov eax, dword [ecx + 0x44]
mov dword [esp + 0x84], eax
inc eax
mov dword [ecx + 0x44], eax
add ecx, 0x48
mov eax, dword [esp + 0x84]
dec eax
test dword [esp + 0x84], eax
jne 0x4889cd
mov eax, dword [esp + 0x84]
mov edx, dword [ecx]
push 0
lea eax, [eax*8 + 4]
push eax
mov eax, dword [esp + 0x30]
mov ecx, dword [eax]
call fcn.00405ab0
mov ecx, dword [esp + 0x30]
add esp, 8
mov edx, dword [esp + 0x24]
add ecx, 0x48
mov dword [ecx], eax
mov eax, dword [ecx]
mov edi, dword [esp + 0x4c]
test eax, eax
je 0x4889e5
mov ecx, dword [esp + 0x84]
mov dword [eax + ecx*4], 0xffffffff
mov eax, dword [esp + 0x84]
cmp byte [edx + 0x31c], 0
not eax
mov dword [edx + 0x308], eax
mov edx, dword [esp + 0x30]
mov dword [esp + 0x84], eax
jbe 0x488a97
test byte [edx + 0x24], 8
je 0x488a97
mov edx, dword [edi + 0x2c]
mov eax, dword [esp + 0x78]
inc edx
mov dword [edi + 0x2c], edx
mov dword [eax], edx
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x88]
cmp dword [eax + 0x30], ecx
jg 0x488a61
push 0
push edx
push 0
mov edx, 0x43
mov ecx, esi
call fcn.00429830
add esp, 0xc
jmp 0x488a93
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 0x4888ae
lea eax, [ecx + 1]
mov dword [esi + 0x88], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x58]
mov dword [eax + ecx*4], 0x43
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 + 0x30]
mov ecx, dword [esp + 0x6c]
mov eax, ecx
test ecx, ecx
jle 0x488ab2
mov ecx, dword [esp + 0x78]
cmp dword [ecx], 0
jne 0x488ab2
dec eax
sub ecx, 0x50
test eax, eax
jg 0x488aa5
mov ecx, dword [esp + 0x5c]
lea eax, [eax + eax*4]
add eax, eax
mov eax, dword [ecx + eax*8 + 0x2fc]
mov dword [esp + 0x20], eax
mov eax, dword [edx + 0x28]
mov dword [esp + 0xb8], eax
test al, 0x10
je 0x488ba3
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x88]
mov edi, dword [edx + 0x1c]
mov edx, dword [edx + 0x18]
cmp dword [eax + 0x30], ecx
jg 0x488b01
push edx
push 0
push edi
mov edx, 0xf
mov ecx, esi
call fcn.00429830
add esp, 0xc
jmp 0x488b2f
lea eax, [ecx + 1]
mov dword [esi + 0x88], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x58]
mov dword [eax + ecx*4], 0xf
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 eax, dword [esi + 0xc]
mov edx, dword [esi + 0x88]
cmp dword [eax + 0x30], edx
jg 0x488b57
push 0
push dword [esp + 0x20]
mov edx, 0x10
mov ecx, esi
push edi
call fcn.00429830
add esp, 0xc
mov edx, eax
jmp 0x488b8d
lea eax, [edx + 1]
mov dword [esi + 0x88], eax
lea ecx, [edx + edx*4]
mov eax, dword [esi + 0x58]
mov esi, dword [esp + 0x60]
mov dword [eax + ecx*4 + 4], edi
mov edi, dword [esp + 0x1c]
mov dword [eax + ecx*4], 0x10
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 + 0x24]
mov dword [edi + 0x324], edx
mov byte [edi + 0x31d], 0xd
jmp 0x489154
mov eax, dword [esp + 0x38]
mov edx, dword [eax + 0x24]
test edx, 0x400
je 0x48901a
movzx edx, word [eax + 0x28]
inc dword [edi + 0x3c]
mov dword [esp + 0x44], edx
lea eax, [edx + 2]
cmp eax, 1
jne 0x488bf1
mov al, byte [edi + 0x13]
test al, al
jne 0x488bdc
inc dword [edi + 0x2c]
mov eax, dword [edi + 0x2c]
mov dword [esp + 0x1c], eax
jmp 0x488c1c
dec al
mov byte [edi + 0x13], al
movzx eax, al
mov eax, dword [edi + eax*4 + 0x15c]
mov dword [esp + 0x1c], eax
jmp 0x488c1c
mov ecx, dword [edi + 0x20]
mov dword [esp + 0x1c], ecx
cmp eax, dword [edi + 0x1c]
jg 0x488c0a
add eax, ecx
lea ecx, [edx + 2]
sub dword [edi + 0x1c], ecx
mov dword [edi + 0x20], eax
jmp 0x488c1c
mov eax, dword [edi + 0x2c]
lea ecx, [eax + 1]
mov dword [esp + 0x1c], ecx
lea ecx, [edx + 2]
add eax, ecx
mov dword [edi + 0x2c], eax
mov eax, dword [esp + 0x24]
mov eax, dword [eax + 0x2fc]
mov dword [esp + 0x28], eax
test edx, edx
je 0x488c9d
mov ecx, dword [esp + 0x1c]
add ecx, 2
xor esi, esi
mov dword [esp + 0x2c], ecx
nop dword [eax + eax]
mov eax, dword [esp + 0x38]
mov eax, dword [eax + 0x30]
mov edx, dword [eax + esi*4]
test edx, edx
je 0x488c92
test byte [edx + 0xc], 1
lea eax, [esi + ecx]
mov ecx, edi
je 0x488c7e
push eax
push dword [esp + 0x54]
push esi
push dword [esp + 0x84]
call fcn.00487730
mov eax, dword [esp + 0x34]
add esp, 0x10
mov ecx, dword [eax + 0x300]
mov dword [esp + 0x28], ecx
jmp 0x488c8e
mov edx, dword [edx]
push 1
push eax
mov edx, dword [edx + 0x10]
call fcn.00488660
add esp, 8
mov ecx, dword [esp + 0x2c]
inc esi
cmp esi, dword [esp + 0x44]
jl 0x488c40
mov esi, dword [esp + 0x60]
mov eax, dword [esp + 0x38]
mov ecx, dword [esi + 0x88]
mov edx, dword [eax + 0x18]
mov eax, dword [esi + 0xc]
cmp dword [eax + 0x30], ecx
jg 0x488cca
push 0
push dword [esp + 0x20]
mov ecx, esi
push edx
mov edx, 0x43
call fcn.00429830
add esp, 0xc
jmp 0x488d00
mov edi, dword [esp + 0x4c]
lea eax, [ecx + 1]
mov dword [esi + 0x88], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x58]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x1c]
mov dword [eax + ecx*4], 0x43
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 + 0xc]
mov edx, dword [esp + 0x1c]
mov ecx, dword [esi + 0x88]
inc edx
mov dword [esp + 0x3c], edx
cmp dword [eax + 0x30], ecx
jg 0x488d2f
push 0
push edx
push dword [esp + 0x4c]
mov edx, 0x43
mov ecx, esi
call fcn.00429830
add esp, 0xc
jmp 0x488d65
mov edx, dword [esp + 0x44]
lea eax, [ecx + 1]
mov dword [esi + 0x88], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x58]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x3c]
mov dword [eax + ecx*4], 0x43
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 + 0x38]
or eax, 0xffffffff
mov edx, 0xfffffff9
cmp byte [ecx + 0x1c], 0
cmovne eax, edx
mov edx, 0xb
push eax
push dword [ecx + 0x20]
mov ecx, esi
push dword [esp + 0x24]
push dword [esp + 0x34]
push dword [esp + 0x50]
call fcn.00429b70
mov ecx, dword [esp + 0x38]
add esp, 0x14
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x5c]
mov byte [eax + 0x1c], 0
mov eax, dword [esp + 0x40]
mov dword [ecx + 0x320], eax
mov eax, 0x3d
cmp byte [edx + 0x31], 0
mov edx, 0xa6
cmovne eax, edx
mov edx, dword [ecx + 0x328]
mov byte [ecx + 0x31d], al
mov eax, dword [esi + 0x88]
mov dword [ecx + 0x324], eax
mov ecx, dword [esp + 0x44]
sub ecx, 1
mov dword [esp + 0x30], ecx
js 0x48900e
lea eax, [edx + edx*2]
shl eax, 2
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x1c]
add eax, 2
add eax, ecx
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x38]
mov eax, dword [eax + 0x30]
mov edx, dword [eax + ecx*4]
mov dword [esp + 0x3c], edx
cmp ecx, 0x10
jae 0x488e36
mov eax, dword [esp + 0x38]
mov ax, word [eax + 0x1e]
shr ax, cl
test al, 1
je 0x488e32
mov ecx, dword [esp + 0x78]
call fcn.004875d0
jmp 0x488ff9
mov ecx, dword [esp + 0x30]
test byte [edx + 0xc], 1
je 0x488ffd
mov eax, dword [esp + 0x74]
cmp byte [eax + 0x49], 0
jne 0x488f08
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x2c]
sub ecx, 0xc
mov dword [esp + 0x2c], ecx
mov eax, dword [eax + 0x32c]
mov ecx, dword [eax + ecx + 4]
test ecx, ecx
jns 0x488e72
mov ecx, dword [esi + 0x88]
dec ecx
mov eax, dword [esi]
cmp byte [eax + 0x49], 0
je 0x488e81
mov eax, 0x5600c0
jmp 0x488e8a
mov eax, dword [esi + 0x58]
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*4]
mov ecx, dword [eax + 8]
mov edx, dword [eax + 0xc]
mov dword [esp + 0x48], ecx
mov ecx, dword [eax + 4]
mov al, byte [eax]
mov byte [esp + 0x16], al
mov eax, dword [esi + 0xc]
mov dword [esp + 0x28], ecx
mov ecx, dword [esi + 0x88]
cmp dword [eax + 0x30], ecx
jg 0x488ecb
mov ecx, dword [esp + 0x48]
push edx
movzx edx, byte [esp + 0x1a]
push ecx
mov ecx, dword [esp + 0x30]
push ecx
mov ecx, esi
call fcn.00429830
add esp, 0xc
jmp 0x488f08
lea eax, [ecx + 1]
mov dword [esi + 0x88], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x58]
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 + 0x16]
mov byte [eax], cl
xor ecx, ecx
mov word [eax + 2], cx
mov ecx, dword [esp + 0x28]
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x48]
mov dword [eax + 8], ecx
mov ecx, dword [edi]
push 0
push 0x30
call fcn.004058c0
add esp, 8
mov dword [esp + 0x18], eax
test eax, eax
je 0x488ff9
push 0x30
push 0
push eax
call fcn.004f7f30
mov eax, dword [esp + 0x24]
or ecx, 0xffffffff
add esp, 0xc
mov word [eax + 0x22], cx
mov ecx, eax
mov byte [eax], 0x35
call fcn.00440c30
mov eax, dword [edi]
mov ecx, dword [eax + 0x70]
mov eax, dword [esp + 0x18]
cmp dword [eax + 0x18], ecx
jle 0x488f61
push ecx
push str.Expression_tree_is_too_large__maximum_depth__d_
push edi
call fcn.00408830
add esp, 0xc
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x18]
push 0
push 0x31
mov eax, dword [eax]
mov eax, dword [eax + 0xc]
mov dword [ecx + 0xc], eax
mov ecx, dword [esp + 0x7c]
call fcn.004058c0
mov ecx, eax
add esp, 8
mov dword [esp + 0x3c], ecx
test ecx, ecx
je 0x488fe0
push 0x30
push 0
push ecx
call fcn.004f7f30
mov ecx, dword [esp + 0x48]
or eax, 0xffffffff
mov edx, dword [esp + 0x2c]
add esp, 0xc
mov word [ecx + 0x22], ax
lea eax, [ecx + 0x30]
mov dword [ecx + 8], eax
mov byte [ecx], 0x96
mov byte [eax], 0
mov eax, dword [esp + 0x18]
mov dword [ecx + 0x18], 1
push 0
mov dword [eax + 0x10], ecx
mov dword [ecx + 0x1c], edx
mov ecx, dword [esp + 0x28]
push dword [ecx + 0x308]
push eax
push edi
call fcn.00448ea0
mov eax, dword [esp + 0x28]
add esp, 0x10
jmp 0x488fe7
mov eax, dword [esp + 0x18]
mov dword [eax + 0x10], ecx
mov ecx, dword [esp + 0x74]
mov edx, eax
mov dword [eax + 0xc], 0
call fcn.00441410
mov ecx, dword [esp + 0x30]
dec dword [esp + 0x20]
dec ecx
mov dword [esp + 0x30], ecx
test ecx, ecx
jns 0x488e02
mov ecx, edi
call fcn.00445ca0
jmp 0x489154
test dl, 5
setne cl
bt edx, 8
setb al
test al, cl
je 0x4891ce
mov eax, dword [esp + 0x38]
mov ecx, edi
mov eax, dword [eax + 0x30]
mov edx, dword [eax]
inc dword [edi + 0x2c]
mov eax, dword [edi + 0x2c]
push eax
push dword [esp + 0x54]
mov dword [esp + 0x44], eax
push 0
push dword [esp + 0x84]
call fcn.00487730
mov edx, dword [esp + 0x4c]
mov ecx, eax
add esp, 0x10
mov dword [esp + 0x18], ecx
cmp ecx, edx
je 0x4890b2
test edx, edx
je 0x4890b2
mov al, byte [edi + 0x13]
mov byte [esp + 0x17], al
cmp al, 8
jae 0x4890b2
movzx esi, byte [edi + 0x19]
lea eax, [edi + 0x94]
xor ecx, ecx
mov dword [esp + 0x3c], esi
test esi, esi
mov esi, dword [esp + 0x60]
je 0x48909f
nop
cmp dword [eax + 0xc], edx
je 0x4890ed
inc ecx
add eax, 0x14
cmp ecx, dword [esp + 0x3c]
jl 0x489090
movzx eax, byte [esp + 0x17]
mov dword [edi + eax*4 + 0x15c], edx
inc byte [edi + 0x13]
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x24]
mov edx, dword [esi + 0x88]
mov eax, dword [eax + 0x300]
mov dword [esp + 0x2c], eax
mov eax, dword [esi + 0xc]
cmp dword [eax + 0x30], edx
jg 0x4890f3
mov edx, dword [esp + 0x2c]
push ecx
push edx
push dword [esp + 0x48]
mov edx, 0x1f
mov ecx, esi
call fcn.00429830
mov edx, dword [esp + 0x24]
add esp, 0xc
jmp 0x489129
mov byte [eax + 6], 1
jmp 0x4890ae
lea eax, [edx + 1]
mov dword [esi + 0x88], eax
lea ecx, [edx + edx*4]
mov eax, dword [esi + 0x58]
mov edx, dword [esp + 0x40]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x2c]
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [esp + 0x18]
mov dword [eax + ecx*4], 0x1f
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
push 1
mov ecx, edi
call fcn.00445c10
mov edx, dword [esp + 0x44]
add esp, 4
mov ecx, edi
push dword [esp + 0x18]
push 0xffffffffffffffff
call fcn.00445ae0
add esp, 8
mov eax, dword [esp + 0x24]
mov byte [eax + 0x31d], 0xa6
xor eax, eax
neg eax
sbb eax, eax
add eax, 2
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x5c]
mov edx, dword [eax + 0x5c]
xor ecx, ecx
mov edi, dword [eax + 0x64]
mov dword [esp + 0x30], ecx
mov dword [esp + 0x18], edx
test edx, edx
jle 0x48b6af
nop dword [eax]
xor eax, eax
mov dword [esp + 0x2c], eax
movzx eax, word [edi + 0xa]
mov edx, eax
mov dword [esp + 0xb8], edx
test al, 6
jne 0x48b68d
mov eax, dword [esp + 0x24]
mov esi, dword [esp + 0x24]
mov ecx, dword [edi + 0x28]
and ecx, dword [eax + 0x338]
mov eax, dword [edi + 0x2c]
and eax, dword [esi + 0x33c]
or ecx, eax
mov esi, dword [esp + 0x60]
je 0x48b4b8
mov eax, dword [esp + 0x5c]
mov byte [eax + 0x32], 1
jmp 0x48b689
mov eax, edx
and eax, 0x102
cmp eax, 0x102
jne 0x489644
xor ecx, ecx
mov dword [esp + 0x64], 0xa6
mov dword [esp + 0x6c], 0
mov dword [esp + 0x30], 0
mov dword [esp + 0x48], ecx
test dl, 0x20
je 0x48921a
mov eax, dword [esp + 0x38]
mov dword [esp + 0x2c], 4
mov eax, dword [eax + 0x30]
mov ecx, dword [eax]
mov dword [esp + 0x48], ecx
jmp 0x48921e
mov dword [esp + 0x2c], ecx
test dl, 0x10
je 0x489235
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x2c]
mov eax, dword [eax + 0x30]
mov eax, dword [edx + eax]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x50]
test eax, eax
je 0x48924f
mov eax, ecx
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 0x48], ecx
test ecx, ecx
je 0x4893e6
mov ecx, dword [ecx]
mov dword [esp + 0x18], 0x1a18191b
mov dword [esp + 0x2c], ecx
mov edx, dword [ecx + 0x10]
mov al, byte [edx]
cmp al, 0x96
jne 0x489271
mov al, byte [edx + 0x26]
cmp al, 0x97
jne 0x48927a
lea eax, [edx + 0x14]
jmp 0x489281
cmp al, 0x77
jne 0x4892d9
mov eax, dword [edx + 0x14]
mov eax, dword [eax]
cmp dword [eax], 1
jle 0x4892d9
mov al, byte [edi + 0x13]
test al, al
jne 0x489297
inc dword [edi + 0x2c]
mov eax, dword [edi + 0x2c]
jmp 0x4892a6
dec al
mov byte [edi + 0x13], al
movzx eax, al
mov eax, dword [edi + eax*4 + 0x15c]
mov edx, dword [ecx + 0x10]
mov ecx, edi
push 1
push eax
mov dword [esp + 0x4c], eax
call fcn.00488660
mov ecx, dword [esp + 0x34]
add esp, 8
mov edx, dword [esp + 0x44]
mov dword [esp + 0x20], edx
movzx eax, byte [ecx]
sub eax, 0x36
or eax, 1
mov al, byte [esp + eax + 0x18]
mov byte [esp + 0x16], al
jmp 0x489314
lea eax, [esp + 0x3c]
mov ecx, edi
push eax
call fcn.004482a0
mov edx, dword [esp + 0x4c]
add esp, 4
mov ecx, dword [esp + 0x78]
mov dword [esp + 0x20], eax
call fcn.004875d0
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x20]
movzx eax, byte [ecx]
mov al, byte [esp + eax - 0x1e]
mov byte [esp + 0x16], al
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x44], eax
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x88]
cmp dword [eax + 0x30], ecx
jg 0x489340
push edx
push dword [esp + 0x20]
movzx edx, byte [esp + 0x1e]
mov ecx, esi
push dword [esp + 0x48]
call fcn.00429830
mov edx, dword [esp + 0x2c]
add esp, 0xc
jmp 0x48937d
lea eax, [ecx + 1]
mov dword [esi + 0x88], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x58]
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 + 0x16]
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 + 0x1c]
mov dword [eax + 8], ecx
push 1
mov ecx, edi
call fcn.00445c10
mov edx, dword [esp + 0x48]
add esp, 4
test edx, edx
je 0x489452
mov al, byte [edi + 0x13]
mov byte [esp + 0x17], al
cmp al, 8
jae 0x489452
movzx esi, byte [edi + 0x19]
lea eax, [edi + 0x94]
xor ecx, ecx
mov dword [esp + 0x3c], esi
test esi, esi
mov esi, dword [esp + 0x60]
je 0x4893cf
nop dword [eax]
cmp dword [eax + 0xc], edx
je 0x4893e0
inc ecx
add eax, 0x14
cmp ecx, dword [esp + 0x3c]
jl 0x4893c0
movzx eax, byte [esp + 0x17]
mov dword [edi + eax*4 + 0x15c], edx
inc byte [edi + 0x13]
jmp 0x489452
mov byte [eax + 6], 1
jmp 0x489452
mov ecx, dword [esi + 0x88]
xor eax, 1
lea edx, [eax*4 + 0x21]
mov eax, dword [esi + 0xc]
cmp dword [eax + 0x30], ecx
jg 0x489415
mov ecx, dword [esp + 0x20]
push 0
push ecx
push dword [esp + 0x48]
mov ecx, esi
call fcn.00429830
add esp, 0xc
jmp 0x489452
lea eax, [ecx + 1]
mov dword [esi + 0x88], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x58]
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 + 0x20]
mov dword [eax + 8], ecx
mov eax, dword [esp + 0x30]
test eax, eax
je 0x489502
mov eax, dword [eax]
inc dword [edi + 0x2c]
mov ecx, dword [edi + 0x2c]
push 1
mov edx, dword [eax + 0x10]
mov dword [esp + 0x70], ecx
push ecx
mov ecx, edi
mov dword [esp + 0x34], eax
call fcn.00488660
mov ecx, dword [esp + 0x34]
add esp, 8
mov ecx, dword [ecx + 0x10]
mov dl, byte [ecx]
mov al, dl
cmp al, 0x96
jne 0x489490
mov al, byte [ecx + 0x26]
cmp al, 0x97
jne 0x489499
lea eax, [ecx + 0x14]
jmp 0x4894a0
cmp al, 0x77
jne 0x4894a7
mov eax, dword [ecx + 0x14]
mov eax, dword [eax]
cmp dword [eax], 1
jg 0x4894b5
mov eax, dword [esp + 0x2c]
mov al, byte [eax]
cmp al, 0x38
je 0x4894c2
cmp al, 0x36
je 0x4894c2
mov eax, dword [esp + 0x50]
lea eax, [eax*2 + 0x36]
jmp 0x4894d0
mov eax, dword [esp + 0x50]
xor eax, 1
lea eax, [eax*2 + 0x37]
mov dword [esp + 0x64], eax
cmp dl, 0x96
jne 0x4894dc
mov dl, byte [ecx + 0x26]
cmp dl, 0x97
jne 0x4894e6
lea eax, [ecx + 0x14]
jmp 0x4894ee
cmp dl, 0x77
jne 0x4894f5
mov eax, dword [ecx + 0x14]
mov eax, dword [eax]
cmp dword [eax], 1
jg 0x489502
mov edx, dword [esp + 0x30]
mov ecx, dword [esp + 0x78]
call fcn.004875d0
cmp dword [esp + 0x50], 0
mov edx, dword [esp + 0x24]
mov ecx, dword [esi + 0x88]
sete al
add al, 6
cmp dword [esp + 0x64], 0xa6
mov byte [edx + 0x31d], al
mov eax, dword [esp + 0x40]
mov dword [edx + 0x320], eax
mov dword [edx + 0x324], ecx
je 0x489154
inc dword [edi + 0x2c]
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x88]
mov edx, dword [edi + 0x2c]
mov dword [esp + 0x20], edx
cmp dword [eax + 0x30], ecx
jg 0x48956e
push 0
push edx
push dword [esp + 0x48]
mov edx, 0x7b
mov ecx, esi
call fcn.00429830
mov edx, dword [esp + 0x2c]
add esp, 0xc
jmp 0x4895a4
mov edi, dword [esp + 0x40]
lea eax, [ecx + 1]
mov dword [esi + 0x88], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x58]
mov dword [eax + ecx*4 + 4], edi
mov edi, dword [esp + 0x4c]
mov dword [eax + ecx*4], 0x7b
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
push edx
mov edx, dword [esp + 0x44]
mov ecx, edi
push 0xffffffffffffffff
call fcn.00445ae0
mov eax, dword [esi + 0xc]
add esp, 8
mov ecx, dword [esi + 0x88]
cmp dword [eax + 0x30], ecx
jg 0x4895e1
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x64]
push ecx
push dword [esp + 0x20]
mov ecx, dword [esp + 0x74]
push ecx
mov ecx, esi
call fcn.00429830
add esp, 0xc
jmp 0x489621
lea eax, [ecx + 1]
mov dword [esi + 0x88], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x58]
mov dword [eax + ecx*4 + 0x10], 0
mov byte [eax + ecx*4 + 1], 0
lea eax, [eax + ecx*4]
mov ecx, dword [esp + 0x64]
mov byte [eax], cl
xor ecx, ecx
mov word [eax + 2], cx
mov ecx, dword [esp + 0x6c]
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x1c]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x20]
mov dword [eax + 0xc], ecx
mov eax, dword [esi + 0x88]
test eax, eax
jle 0x489154
lea ecx, [eax + eax*4]
mov edx, 0x53
mov eax, dword [esi + 0x58]
mov word [eax + ecx*4 - 0x12], dx
jmp 0x489154
test edx, 0x200
je 0x48a684
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x80], 0
mov dword [esp + 0x30], 0
movzx eax, word [ecx + 0x18]
mov dword [esp + 0x54], eax
movzx eax, word [ecx + 0x1a]
mov dword [esp + 0x44], eax
movzx eax, word [ecx + 0x1c]
xor ecx, ecx
mov dword [esp + 0x64], eax
xor eax, eax
mov dword [esp + 0x7c], eax
mov byte [esp + 0x16], al
mov byte [esp + 0x17], al
mov eax, dword [esp + 0x38]
mov dword [esp + 0x20], ecx
mov eax, dword [eax + 0x20]
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x24]
mov eax, dword [eax + 0x2f8]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x5c]
test byte [eax + 0x2c], 1
je 0x4896dd
cmp byte [eax + 0x2f], cl
mov eax, dword [esp + 0x54]
jle 0x4896e1
mov edi, dword [esp + 0x68]
cmp word [edi + 0x32], ax
mov edi, dword [esp + 0x4c]
jbe 0x4896e1
mov ecx, 1
mov byte [esp + 0x16], 1
mov dword [esp + 0x20], ecx
jmp 0x4896e1
mov eax, dword [esp + 0x54]
movzx eax, ax
mov dword [esp + 0x58], eax
mov dword [esp + 0x18], eax
test dl, 0x20
je 0x48971f
mov eax, dword [esp + 0x38]
mov esi, dword [esp + 0x18]
inc dword [esp + 0x18]
mov eax, dword [eax + 0x30]
mov eax, dword [eax + esi*4]
mov esi, dword [esp + 0x38]
mov dword [esp + 0x80], eax
movzx eax, word [esi + 0x1a]
mov esi, dword [esp + 0x60]
cmp ecx, eax
cmovbe ecx, eax
mov dword [esp + 0x20], ecx
test dl, 0x10
je 0x489863
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x18]
mov edi, dword [esp + 0x38]
mov eax, dword [eax + 0x30]
mov edx, dword [eax + edx*4]
movzx eax, word [edi + 0x1c]
mov edi, dword [esp + 0x4c]
cmp ecx, eax
mov dword [esp + 0x30], edx
cmova eax, ecx
mov ecx, 0x100
mov dword [esp + 0x20], eax
test word [edx + 0xa], cx
je 0x48980e
inc dword [edi + 0x2c]
mov eax, dword [esp + 0x24]
mov edx, dword [edi + 0x2c]
mov dword [eax + 0x314], edx
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x88]
cmp dword [eax + 0x30], ecx
jg 0x489792
push 0
push edx
push 1
mov edx, 0x43
mov ecx, esi
call fcn.00429830
add esp, 0xc
jmp 0x4897c4
lea eax, [ecx + 1]
mov dword [esi + 0x88], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x58]
mov dword [eax + ecx*4], 0x43
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 + 0x24]
mov eax, dword [esi + 0x88]
mov esi, dword [esp + 0x58]
mov edx, dword [ecx + 0x314]
mov dword [ecx + 0x318], eax
add edx, edx
mov eax, dword [esp + 0x68]
mov dword [ecx + 0x314], edx
xor ecx, ecx
mov eax, dword [eax + 0x1c]
cmp byte [esi + eax], 1
mov eax, dword [esp + 0x24]
mov esi, dword [esp + 0x60]
sete cl
xor ecx, dword [esp + 0x50]
or ecx, edx
mov dword [eax + 0x314], ecx
mov eax, dword [esp + 0x20]
cmp dword [esp + 0x80], 0
mov edx, eax
jne 0x489867
mov edx, dword [esp + 0x68]
mov ecx, dword [esp + 0x58]
mov eax, dword [edx + 4]
movsx ecx, word [eax + ecx*2]
mov dword [esp + 0x3c], ecx
test ecx, ecx
js 0x489844
mov eax, dword [edx + 0xc]
add ecx, ecx
mov eax, dword [eax + 4]
cmp byte [eax + ecx*8 + 0xc], 0
je 0x489856
mov ecx, dword [esp + 0x3c]
mov eax, dword [esp + 0x20]
mov edx, eax
cmp ecx, 0xfffffffe
jne 0x489867
mov byte [esp + 0x16], 1
jmp 0x489867
mov eax, dword [esp + 0x20]
mov edx, eax
mov byte [esp + 0x16], 1
jmp 0x489867
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x54]
movzx eax, word [eax + 0x32]
mov dword [esp + 0x3c], eax
cmp cx, ax
jae 0x4898a1
mov eax, dword [esp + 0x68]
xor ecx, ecx
mov esi, dword [esp + 0x58]
mov eax, dword [eax + 0x1c]
cmp byte [esi + eax], cl
mov esi, dword [esp + 0x60]
sete cl
cmp dword [esp + 0x50], ecx
je 0x4898ad
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x54]
cmp dword [esp + 0x50], 0
je 0x4898ea
cmp ax, cx
jne 0x4898ea
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x80]
mov edi, dword [esp + 0x64]
mov dword [esp + 0x80], eax
mov al, byte [esp + 0x16]
mov byte [esp + 0x17], al
mov eax, dword [esp + 0x44]
mov dword [esp + 0x30], ecx
movzx ecx, di
mov edi, dword [esp + 0x4c]
movzx eax, al
mov byte [esp + 0x16], 0
mov dword [esp + 0x44], ecx
mov dword [esp + 0x64], eax
lea eax, [esp + 0x18]
mov ecx, edi
push eax
push edx
push dword [esp + 0x58]
mov edx, dword [esp + 0x84]
call fcn.00487fe0
mov edx, dword [esp + 0x64]
add esp, 0xc
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x18]
test eax, eax
je 0x48998e
cmp word [esp + 0x64], 0
je 0x48998e
add eax, edx
jne 0x489929
xor ecx, ecx
mov dword [esp + 0x7c], ecx
jmp 0x48998e
mov ecx, eax
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x489930
sub ecx, edx
push 0
lea eax, [ecx + 1]
mov ecx, dword [esp + 0x78]
mov dword [esp + 0x40], eax
push eax
test ecx, ecx
je 0x48995b
call fcn.004058c0
mov ecx, eax
mov dword [esp + 0x84], ecx
jmp 0x489969
call fcn.004051e0
mov ecx, eax
mov dword [esp + 0x84], eax
add esp, 8
test ecx, ecx
je 0x48998a
push dword [esp + 0x3c]
mov eax, dword [esp + 0x5c]
add eax, dword [esp + 0x1c]
push eax
push ecx
call fcn.004f79b0
mov esi, dword [esp + 0x6c]
add esp, 0xc
mov edx, dword [esp + 0x58]
mov eax, dword [esp + 0x24]
mov eax, dword [eax + 0x300]
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x80]
test eax, eax
je 0x4899b5
test byte [eax + 0xc], 0x28
mov dword [esp + 0x6c], 0
je 0x4899bd
mov dword [esp + 0x6c], 1
mov ecx, dword [esp + 0x30]
test ecx, ecx
je 0x4899d3
test byte [ecx + 0xc], 0x28
mov dword [esp + 0x48], 0
je 0x4899db
mov dword [esp + 0x48], 1
test eax, eax
jne 0x489a28
cmp word [esp + 0x54], ax
ja 0x489a28
mov dword [esp + 0x28], eax
cmp byte [esp + 0x16], 0
mov dword [esp + 0x54], edx
je 0x489bf7
mov eax, dword [esi + 0xc]
add edx, dword [esp + 0x1c]
mov ecx, dword [esi + 0x88]
cmp dword [eax + 0x30], ecx
jg 0x489ba8
push 0
push edx
push 0
mov edx, 0x46
mov ecx, esi
call fcn.00429830
add esp, 0xc
jmp 0x489bde
mov dword [esp + 0x28], 1
mov dword [esp + 0x54], edx
test eax, eax
je 0x4899ea
mov ecx, dword [esp + 0x44]
mov eax, dword [eax]
mov edi, dword [esp + 0x4c]
movzx edx, cx
mov ecx, dword [esp + 0x58]
add ecx, dword [esp + 0x1c]
mov eax, dword [eax + 0x10]
push edx
push ecx
mov edx, eax
mov dword [esp + 0x28], eax
mov ecx, edi
call fcn.00488660
mov eax, dword [esp + 0x88]
mov ecx, 0x100
add esp, 8
test word [eax + 0xa], cx
je 0x489abf
mov eax, dword [esi + 0x88]
lea ecx, [eax + eax*4]
mov eax, dword [esi]
shl ecx, 2
cmp byte [eax + 0x49], 0
je 0x489a94
mov ecx, 0x5600cc
mov edx, 0x5600c2
jmp 0x489a9f
mov eax, dword [esi + 0x58]
add eax, ecx
lea ecx, [eax - 8]
lea edx, [eax - 0x12]
mov eax, dword [esp + 0x24]
mov eax, dword [eax + 0x314]
shr eax, 1
mov dword [ecx], eax
mov eax, dword [esp + 0x24]
mov al, byte [eax + 0x314]
and al, 1
movzx eax, al
mov word [edx], ax
mov ecx, dword [esp + 0x20]
call fcn.00442970
test eax, eax
je 0x489b30
mov eax, dword [esi + 0xc]
mov edx, dword [esp + 0x58]
mov ecx, dword [esi + 0x88]
add edx, dword [esp + 0x1c]
cmp dword [eax + 0x30], ecx
jg 0x489afa
push 0
push dword [esp + 0x74]
mov ecx, esi
push edx
mov edx, 0x32
call fcn.00429830
add esp, 0xc
jmp 0x489b30
lea eax, [ecx + 1]
mov dword [esi + 0x88], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x58]
mov esi, dword [esp + 0x60]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x70]
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 + 0x18]
test eax, eax
je 0x489b50
add eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x20]
push eax
mov eax, dword [esp + 0x48]
movzx edx, ax
call fcn.00487650
add esp, 4
mov ecx, dword [esp + 0x44]
movzx eax, cx
add dword [esp + 0x54], eax
mov eax, dword [esp + 0x20]
mov cl, byte [eax]
cmp cl, 0x96
jne 0x489b69
mov cl, byte [eax + 0x26]
cmp cl, 0x97
jne 0x489b73
add eax, 0x14
jmp 0x489b7b
cmp cl, 0x77
jne 0x489b91
mov eax, dword [eax + 0x14]
mov eax, dword [eax]
cmp dword [eax], 1
jle 0x489b91
mov dword [esp + 0x6c], 1
mov byte [esp + 0x16], 0
jmp 0x489bf7
mov edx, dword [esp + 0x80]
mov ecx, dword [esp + 0x78]
call fcn.004875d0
mov byte [esp + 0x16], 0
jmp 0x489bf7
mov edi, dword [esp + 0x4c]
lea eax, [ecx + 1]
mov dword [esi + 0x88], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x58]
mov dword [eax + ecx*4], 0x46
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 + 0x58]
inc eax
mov dword [esp + 0x6c], 0
mov dword [esp + 0x54], eax
mov dword [esp + 0x28], 1
movzx eax, byte [esp + 0x16]
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x18]
sub ecx, eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x44], eax
test edx, edx
je 0x489c7d
test ecx, ecx
jle 0x489c34
nop word [eax + eax]
cmp byte [edx], 0x41
jne 0x489c2c
dec ecx
inc eax
inc edx
test ecx, ecx
jg 0x489c20
mov dword [esp + 0x44], eax
mov dword [esp + 0x20], ecx
cmp ecx, 1
jle 0x489c51
nop dword [eax]
cmp byte [edx + ecx - 1], 0x41
jne 0x489c55
dec ecx
mov dword [esp + 0x20], ecx
cmp ecx, 1
jg 0x489c40
test ecx, ecx
jle 0x489c7d
push ecx
push edx
push 0
push ecx
mov ecx, dword [edi + 8]
mov edx, 0x62
push eax
call fcn.00429b70
mov edx, dword [esp + 0x58]
add esp, 0x14
mov ecx, edi
push dword [esp + 0x20]
call fcn.00445c10
add esp, 4
mov eax, dword [esp + 0x38]
movzx eax, word [eax + 0x2a]
test ax, ax
je 0x489c94
cmp dword [esp + 0x54], eax
je 0x489d34
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x6c]
mov edx, dword [esi + 0x88]
lea eax, [eax + ecx*2]
mov ecx, dword [esp + 0x50]
mov cl, byte [ecx + eax*2 + 0x54dfd8]
mov eax, dword [esi + 0xc]
mov byte [esp + 0x16], cl
cmp dword [eax + 0x30], edx
jg 0x489cd9
push dword [esp + 0x1c]
movzx edx, cl
mov ecx, esi
push dword [esp + 0x74]
push dword [esp + 0x3c]
call fcn.00429830
add esp, 0xc
mov edx, eax
jmp 0x489d19
lea eax, [edx + 1]
mov dword [esi + 0x88], eax
lea ecx, [edx + edx*4]
mov eax, dword [esi + 0x58]
mov dword [eax + ecx*4 + 0x10], 0
mov byte [eax + ecx*4 + 1], 0
lea eax, [eax + ecx*4]
mov cl, byte [esp + 0x16]
mov byte [eax], cl
xor ecx, ecx
mov word [eax + 2], cx
mov ecx, dword [esp + 0x34]
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x70]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x1c]
mov dword [eax + 0xc], ecx
mov eax, dword [esi]
cmp byte [eax + 0x49], 0
jne 0x489d34
mov eax, dword [esi + 0x58]
lea ecx, [edx + edx*4]
mov edx, dword [esp + 0x54]
mov byte [eax + ecx*4 + 1], 0xfd
mov dword [eax + ecx*4 + 0x10], edx
mov eax, dword [esp + 0x30]
test eax, eax
je 0x489f2b
mov eax, dword [eax]
mov ecx, edi
push 1
mov eax, dword [eax + 0x10]
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x5c]
add eax, dword [esp + 0x20]
mov edx, eax
mov dword [esp + 0x58], eax
call fcn.00445c10
mov eax, dword [esp + 0x68]
add esp, 4
mov edx, dword [esp + 0x6c]
mov ecx, edi
movzx eax, ax
push eax
push dword [esp + 0x58]
call fcn.00488660
mov eax, dword [esp + 0x38]
mov ecx, 0x100
add esp, 8
test word [eax + 0xa], cx
je 0x489dd7
mov eax, dword [esi + 0x88]
lea ecx, [eax + eax*4]
mov eax, dword [esi]
shl ecx, 2
cmp byte [eax + 0x49], 0
je 0x489dac
mov ecx, 0x5600cc
mov edx, 0x5600c2
jmp 0x489db7
mov eax, dword [esi + 0x58]
add eax, ecx
lea ecx, [eax - 8]
lea edx, [eax - 0x12]
mov eax, dword [esp + 0x24]
mov eax, dword [eax + 0x314]
shr eax, 1
mov dword [ecx], eax
mov eax, dword [esp + 0x24]
mov al, byte [eax + 0x314]
and al, 1
movzx eax, al
mov word [edx], ax
mov ecx, dword [esp + 0x6c]
call fcn.00442970
test eax, eax
je 0x489e43
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x88]
cmp dword [eax + 0x30], ecx
jg 0x489e0d
push 0
push dword [esp + 0x74]
mov edx, 0x32
mov ecx, esi
push dword [esp + 0x5c]
call fcn.00429830
add esp, 0xc
jmp 0x489e43
mov edx, dword [esp + 0x54]
lea eax, [ecx + 1]
mov dword [esi + 0x88], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x58]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x70]
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 + 0x7c]
test eax, eax
je 0x489ee0
mov ecx, dword [esp + 0x64]
movzx edx, cx
mov ecx, dword [esp + 0x6c]
push eax
call fcn.00487650
mov eax, dword [esp + 0x68]
add esp, 4
mov ecx, dword [esp + 0x7c]
movzx edx, ax
mov dword [esp + 0x28], edx
mov eax, edx
test edx, edx
je 0x489e94
mov edx, dword [esp + 0x54]
nop dword [eax]
cmp byte [ecx], 0x41
jne 0x489e8c
dec eax
inc edx
inc ecx
test eax, eax
jg 0x489e80
mov dword [esp + 0x54], edx
mov dword [esp + 0x28], eax
cmp eax, 1
jle 0x489eb1
nop dword [eax]
cmp byte [ecx + eax - 1], 0x41
jne 0x489eb5
dec eax
mov dword [esp + 0x28], eax
cmp eax, 1
jg 0x489ea0
test eax, eax
jle 0x489ee0
push eax
push ecx
mov ecx, dword [edi + 8]
mov edx, 0x62
push 0
push eax
push dword [esp + 0x64]
call fcn.00429b70
mov edx, dword [esp + 0x68]
add esp, 0x14
mov ecx, edi
push dword [esp + 0x28]
call fcn.00445c10
add esp, 4
mov ecx, dword [esp + 0x64]
movzx eax, cx
mov ecx, dword [esp + 0x6c]
add dword [esp + 0x58], eax
mov al, byte [ecx]
cmp al, 0x96
jne 0x489ef8
mov al, byte [ecx + 0x26]
cmp al, 0x97
jne 0x489f01
lea eax, [ecx + 0x14]
jmp 0x489f08
cmp al, 0x77
jne 0x489f1c
mov eax, dword [ecx + 0x14]
mov eax, dword [eax]
cmp dword [eax], 1
jle 0x489f1c
mov dword [esp + 0x48], 1
jmp 0x489fa0
mov edx, dword [esp + 0x30]
mov ecx, dword [esp + 0x78]
call fcn.004875d0
jmp 0x489fa0
cmp byte [esp + 0x17], 0
je 0x489fa0
mov eax, dword [esi + 0xc]
mov edx, dword [esp + 0x58]
add edx, dword [esp + 0x1c]
mov ecx, dword [esi + 0x88]
cmp dword [eax + 0x30], ecx
jg 0x489f5e
push 0
push edx
push 0
mov edx, 0x46
mov ecx, esi
call fcn.00429830
add esp, 0xc
jmp 0x489f94
mov edi, dword [esp + 0x4c]
lea eax, [ecx + 1]
mov dword [esi + 0x88], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x58]
mov dword [eax + ecx*4], 0x46
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
inc dword [esp + 0x58]
mov dword [esp + 0x48], 0
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x74]
test ecx, ecx
je 0x48a050
test edx, edx
je 0x489fed
cmp dword [edx + 0x1d0], 0
je 0x489fcd
mov edx, ecx
mov ecx, dword [esp + 0x74]
call fcn.00405430
jmp 0x48a04c
cmp ecx, dword [edx + 0x128]
jb 0x489fed
cmp ecx, dword [edx + 0x12c]
jae 0x489fed
mov eax, dword [edx + 0x124]
mov dword [ecx], eax
mov dword [edx + 0x124], ecx
jmp 0x48a050
cmp dword [0x55a418], 0
je 0x48a042
mov eax, dword [0x560268]
test eax, eax
je 0x48a00d
push eax
call dword [0x55a474]
mov ecx, dword [esp + 0x1c]
add esp, 4
push ecx
call dword [0x55a450]
sub dword [0x560070], eax
add esp, 4
dec dword [0x560094]
push dword [esp + 0x18]
call dword [0x55a448]
mov eax, dword [0x560268]
add esp, 4
test eax, eax
je 0x48a04c
push eax
call dword [0x55a47c]
jmp 0x48a049
push ecx
call dword [0x55a448]
add esp, 4
mov edx, dword [esp + 0x74]
mov ecx, dword [esp + 0x7c]
test ecx, ecx
je 0x48a0fc
test edx, edx
je 0x48a099
cmp dword [edx + 0x1d0], 0
je 0x48a079
mov edx, ecx
mov ecx, dword [esp + 0x74]
call fcn.00405430
jmp 0x48a0fc
cmp ecx, dword [edx + 0x128]
jb 0x48a099
cmp ecx, dword [edx + 0x12c]
jae 0x48a099
mov eax, dword [edx + 0x124]
mov dword [ecx], eax
mov dword [edx + 0x124], ecx
jmp 0x48a0fc
cmp dword [0x55a418], 0
je 0x48a0f2
mov eax, dword [0x560268]
test eax, eax
je 0x48a0bc
push eax
call dword [0x55a474]
mov ecx, dword [esp + 0x80]
add esp, 4
push ecx
call dword [0x55a450]
sub dword [0x560070], eax
add esp, 4
mov eax, dword [esp + 0x7c]
dec dword [0x560094]
push eax
call dword [0x55a448]
mov eax, dword [0x560268]
add esp, 4
test eax, eax
je 0x48a0fc
push eax
call dword [0x55a47c]
jmp 0x48a0f9
push ecx
call dword [0x55a448]
add esp, 4
cmp dword [esp + 0x58], 0
mov ecx, dword [esp + 0x24]
mov eax, dword [esi + 0x88]
mov dword [ecx + 0x324], eax
je 0x48a1b0
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x50]
mov edx, dword [esi + 0x88]
mov cl, byte [eax + ecx*2 + 0x54bd9c]
mov eax, dword [esi + 0xc]
mov byte [esp + 0x17], cl
cmp dword [eax + 0x30], edx
jg 0x48a155
push dword [esp + 0x1c]
movzx edx, cl
mov ecx, esi
push dword [esp + 0x74]
push dword [esp + 0x3c]
call fcn.00429830
add esp, 0xc
mov edx, eax
jmp 0x48a195
lea eax, [edx + 1]
mov dword [esi + 0x88], eax
lea ecx, [edx + edx*4]
mov eax, dword [esi + 0x58]
mov dword [eax + ecx*4 + 0x10], 0
mov byte [eax + ecx*4 + 1], 0
lea eax, [eax + ecx*4]
mov cl, byte [esp + 0x17]
mov byte [eax], cl
xor ecx, ecx
mov word [eax + 2], cx
mov ecx, dword [esp + 0x34]
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x70]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x1c]
mov dword [eax + 0xc], ecx
mov eax, dword [esi]
cmp byte [eax + 0x49], 0
jne 0x48a1b0
mov eax, dword [esi + 0x58]
lea ecx, [edx + edx*4]
mov edx, dword [esp + 0x58]
mov byte [eax + ecx*4 + 1], 0xfd
mov dword [eax + ecx*4 + 0x10], edx
cmp dword [esp + 0x2c], 0
jne 0x48a4e4
mov eax, dword [esp + 0x68]
mov edx, dword [eax + 0xc]
test byte [edx + 0x24], 0x20
jne 0x48a2ea
mov ecx, dword [esp + 0x5c]
movzx eax, word [ecx + 0x2c]
test eax, 0x400
jne 0x48a206
test eax, 0x1000
je 0x48a1e8
cmp byte [ecx + 0x31], 1
je 0x48a206
push dword [esp + 0x34]
mov edi, dword [esp + 0x44]
mov edx, dword [esp + 0x6c]
push edi
call fcn.004884f0
mov ecx, dword [esp + 0x3c]
add esp, 8
jmp 0x48a4ec
inc dword [edi + 0x2c]
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x88]
mov edx, dword [edi + 0x2c]
mov dword [esp + 0x28], edx
cmp dword [eax + 0x30], ecx
jg 0x48a23a
push 0
push edx
push dword [esp + 0x3c]
mov edx, 0x82
mov ecx, esi
call fcn.00429830
mov edx, dword [esp + 0x34]
add esp, 0xc
jmp 0x48a270
mov edi, dword [esp + 0x34]
lea eax, [ecx + 1]
mov dword [esi + 0x88], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x58]
mov dword [eax + ecx*4 + 4], edi
mov edi, dword [esp + 0x4c]
mov dword [eax + ecx*4], 0x82
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
push edx
mov edx, dword [esp + 0x44]
mov ecx, edi
push 0xffffffffffffffff
call fcn.00445ae0
mov eax, dword [esi + 0xc]
add esp, 8
mov ecx, dword [esi + 0x88]
mov edx, dword [esp + 0x28]
mov edi, dword [esp + 0x40]
cmp dword [eax + 0x30], ecx
jg 0x48a2b3
push edx
push 0
push edi
mov edx, 0x20
mov ecx, esi
call fcn.00429830
mov ecx, dword [esp + 0x40]
add esp, 0xc
jmp 0x48a4ec
lea eax, [ecx + 1]
mov dword [esi + 0x88], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x58]
mov dword [eax + ecx*4], 0x20
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 ecx, dword [esp + 0x34]
jmp 0x48a4ec
mov ecx, dword [esp + 0x34]
cmp dword [esp + 0x40], ecx
je 0x48a4e8
mov edx, dword [edx + 8]
mov dword [esp + 0x20], edx
test edx, edx
je 0x48a317
mov eax, dword [edx + 0x38]
and al, 3
cmp al, 2
je 0x48a313
mov edx, dword [edx + 0x14]
test edx, edx
jne 0x48a303
mov dword [esp + 0x20], edx
movzx ecx, word [edx + 0x32]
cmp ecx, 1
jne 0x48a348
mov al, byte [edi + 0x13]
test al, al
jne 0x48a333
inc dword [edi + 0x2c]
mov eax, dword [edi + 0x2c]
mov dword [esp + 0x18], eax
jmp 0x48a371
dec al
mov byte [edi + 0x13], al
movzx eax, al
mov eax, dword [edi + eax*4 + 0x15c]
mov dword [esp + 0x18], eax
jmp 0x48a371
mov eax, dword [edi + 0x20]
mov dword [esp + 0x18], eax
cmp ecx, dword [edi + 0x1c]
jg 0x48a35e
add eax, ecx
sub dword [edi + 0x1c], ecx
mov dword [edi + 0x20], eax
jmp 0x48a371
mov eax, dword [edi + 0x2c]
lea esi, [eax + 1]
add eax, ecx
mov dword [esp + 0x18], esi
mov esi, dword [esp + 0x60]
mov dword [edi + 0x2c], eax
movzx eax, word [edx + 0x32]
xor edi, edi
mov dword [esp + 0x28], 0
mov ecx, eax
cmp di, ax
jae 0x48a45d
mov eax, dword [esp + 0x18]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x68]
xor ecx, ecx
movzx edi, word [eax + 0x34]
test edi, edi
je 0x48a3d5
mov eax, dword [edx + 4]
mov esi, dword [esp + 0x28]
movzx eax, word [eax + esi*2]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x68]
mov eax, dword [eax + 4]
nop word [eax + eax]
mov esi, dword [esp + 0x3c]
cmp si, word [eax]
mov esi, dword [esp + 0x60]
je 0x48a407
inc ecx
add eax, 2
cmp ecx, edi
jl 0x48a3c0
or eax, 0xffffffff
mov ecx, dword [esi + 0x88]
movsx edi, ax
mov eax, dword [esi + 0xc]
cmp dword [eax + 0x30], ecx
jg 0x48a40c
push dword [esp + 0x48]
mov edx, 0x60
mov ecx, esi
push edi
push dword [esp + 0x3c]
call fcn.00429830
mov edx, dword [esp + 0x2c]
add esp, 0xc
jmp 0x48a442
movzx eax, cx
jmp 0x48a3d8
lea eax, [ecx + 1]
mov dword [esi + 0x88], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x58]
mov esi, dword [esp + 0x34]
mov dword [eax + ecx*4 + 8], edi
mov edi, dword [esp + 0x48]
mov dword [eax + ecx*4 + 4], esi
mov esi, dword [esp + 0x60]
mov dword [eax + ecx*4], 0x60
mov dword [eax + ecx*4 + 0xc], edi
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esp + 0x28]
movzx edi, word [edx + 0x32]
inc ecx
inc dword [esp + 0x48]
mov dword [esp + 0x28], ecx
cmp ecx, edi
jl 0x48a392
mov ecx, edi
mov eax, dword [esi + 0xc]
mov edx, dword [esi + 0x88]
movzx edi, cx
cmp dword [eax + 0x30], edx
jg 0x48a490
push dword [esp + 0x18]
mov edx, 0x1d
mov ecx, esi
push dword [esp + 0x88]
push dword [esp + 0x48]
call fcn.00429830
add esp, 0xc
mov edx, eax
jmp 0x48a4cd
lea eax, [edx + 1]
mov dword [esi + 0x88], eax
lea ecx, [edx + edx*4]
mov eax, dword [esi + 0x58]
mov esi, dword [esp + 0x40]
mov dword [eax + ecx*4 + 4], esi
mov esi, dword [esp + 0x84]
mov dword [eax + ecx*4 + 8], esi
mov esi, dword [esp + 0x18]
mov dword [eax + ecx*4 + 0xc], esi
mov esi, dword [esp + 0x60]
mov dword [eax + ecx*4], 0x1d
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esi]
cmp byte [eax + 0x49], 0
jne 0x48a4e4
mov eax, dword [esi + 0x58]
lea ecx, [edx + edx*4]
mov byte [eax + ecx*4 + 1], 0xfd
mov dword [eax + ecx*4 + 0x10], edi
mov ecx, dword [esp + 0x34]
mov edi, dword [esp + 0x40]
mov edx, dword [esp + 0x68]
mov eax, dword [edx + 0x28]
mov dword [esp + 0x3c], eax
test eax, eax
je 0x48a622
xorps xmm0, xmm0
mov dword [esp + 0xbc], edi
lea edx, [esp + 0xb8]
mov dword [esp + 0xd0], 0
xor edi, edi
mov dword [esp + 0xe8], edx
mov edx, dword [esp + 0x68]
movlpd qword [esp + 0xd8], xmm0
movlpd qword [esp + 0xe0], xmm0
mov dword [esp + 0xd4], 0x488770
mov dword [esp + 0xc0], ecx
mov dword [esp + 0x44], edi
cmp dword [eax], edi
jle 0x48a622
lea ecx, [eax + 4]
mov dword [esp + 0x28], ecx
nop
mov eax, dword [edx + 4]
cmp word [eax + edi*2], 0xfffe
jne 0x48a604
mov esi, dword [esp + 0x5c]
mov dword [esp + 0xc4], edi
mov eax, dword [ecx]
mov dword [esp + 0xb8], eax
mov edx, dword [esi + 0x10]
test edx, edx
je 0x48a595
lea ecx, [esp + 0xd0]
call fcn.0043d910
mov esi, dword [esi + 8]
test esi, esi
je 0x48a5ce
mov edi, dword [esi]
add esi, 4
test edi, edi
jle 0x48a5ca
nop word [eax + eax]
mov edx, dword [esi]
lea ecx, [esp + 0xd0]
call fcn.0043d9c0
test eax, eax
jne 0x48a5ca
dec edi
add esi, 0x18
test edi, edi
jg 0x48a5b0
mov edi, dword [esp + 0x44]
mov eax, dword [esp + 0x5c]
mov esi, dword [eax + 0xc]
test esi, esi
je 0x48a600
mov edi, dword [esi]
add esi, 4
test edi, edi
jle 0x48a5fc
mov edx, dword [esi]
lea ecx, [esp + 0xd0]
call fcn.0043d9c0
test eax, eax
jne 0x48a5fc
dec edi
add esi, 0x18
test edi, edi
jg 0x48a5e2
mov edi, dword [esp + 0x44]
mov edx, dword [esp + 0x68]
mov eax, dword [esp + 0x3c]
inc edi
add dword [esp + 0x28], 0x18
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x44], edi
cmp edi, dword [eax]
jl 0x48a560
mov esi, dword [esp + 0x60]
mov ecx, dword [esp + 0x38]
mov edi, dword [esp + 0x24]
test dword [ecx + 0x24], 0x1000
je 0x48a63c
mov byte [edi + 0x31d], 0xa6
jmp 0x48a64c
cmp dword [esp + 0x50], 0
sete al
add al, 6
mov byte [edi + 0x31d], al
mov eax, dword [esp + 0x34]
mov dword [edi + 0x320], eax
mov al, byte [ecx + 0x26]
and al, 1
mov byte [edi + 0x31e], al
test byte [ecx + 0x24], 0xf
jne 0x48a66e
mov byte [edi + 0x31f], 1
cmp dword [esp + 0x2c], 0
je 0x48b4af
xor eax, eax
mov dword [esp + 0x68], eax
jmp 0x489156
test edx, 0x2000
je 0x48b3f6
mov eax, dword [edi + 0x28]
mov dword [esp + 0xa0], eax
inc eax
mov dword [edi + 0x28], eax
mov eax, dword [edi + 0x2c]
inc eax
mov dword [esp + 0x20], 0
mov dword [edi + 0x2c], eax
mov ecx, dword [esi + 0xc]
mov dword [esp + 0x44], eax
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x50], 0
mov edx, dword [ecx + 0x44]
mov dword [esp + 0x64], 0
mov dword [esp + 0x80], edx
lea eax, [edx + 1]
mov dword [ecx + 0x44], eax
lea eax, [edx - 1]
add ecx, 0x48
test edx, eax
jne 0x48a70c
lea eax, [edx*8 + 4]
mov edx, dword [ecx]
push 0
push eax
mov eax, dword [esp + 0x34]
mov ecx, dword [eax]
call fcn.00405ab0
mov ecx, dword [esp + 0x34]
add esp, 8
mov edx, dword [esp + 0x80]
add ecx, 0x48
mov dword [ecx], eax
mov eax, dword [ecx]
test eax, eax
je 0x48a719
mov dword [eax + edx*4], 0xffffffff
mov eax, dword [esp + 0x30]
not edx
mov dword [esp + 0x80], edx
xor edx, edx
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x44]
mov ecx, dword [eax + 0x10]
mov eax, dword [esp + 0x38]
mov dword [esp + 0x28], 0
mov dword [esp + 0x54], ecx
mov eax, dword [eax + 0x30]
mov eax, dword [eax]
mov dword [esp + 0x3c], eax
mov eax, dword [eax + 0x1c]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x24]
mov dword [eax + 0x320], edx
mov edx, dword [esp + 0x5c]
mov byte [eax + 0x31d], 0x3f
mov al, byte [edx + 0x2e]
cmp al, 1
jbe 0x48a8ec
mov ecx, dword [esp + 0x74]
movzx eax, al
sub eax, dword [esp + 0x6c]
dec eax
mov dword [esp + 0x88], eax
push 0
lea eax, [eax + eax*4]
shl eax, 4
add eax, 0x58
push eax
test ecx, ecx
je 0x48a7a6
call fcn.004058c0
mov ecx, eax
mov dword [esp + 0x84], ecx
jmp 0x48a7b4
call fcn.004051e0
mov ecx, eax
mov dword [esp + 0x84], eax
add esp, 8
test ecx, ecx
jne 0x48a7dd
mov eax, dword [esp + 0x94]
mov edx, dword [esp + 0x90]
pop edi
pop esi
mov ecx, dword [esp + 0x104]
xor ecx, esp
call fcn.004f49c2
mov esp, ebp
pop ebp
ret
mov edx, dword [esp + 0x88]
lea eax, [edx + 1]
movzx eax, al
mov dword [ecx + 4], eax
mov dword [ecx], eax
mov eax, dword [esp + 0x30]
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
movups xmm0, xmmword [eax + 0x40]
mov eax, dword [esp + 0x5c]
movups xmmword [ecx + 0x48], xmm0
mov eax, dword [eax + 4]
add eax, 8
mov dword [esp + 0x88], eax
cmp edx, 1
jl 0x48a886
mov esi, dword [esp + 0x24]
add esi, 0x36c
add ecx, 0x58
nop dword [eax]
movzx eax, byte [esi]
lea esi, [esi + 0x50]
lea ecx, [ecx + 0x50]
lea eax, [eax + eax*4]
shl eax, 4
add eax, dword [esp + 0x88]
movups xmm0, xmmword [eax]
movups xmmword [ecx - 0x50], xmm0
movups xmm0, xmmword [eax + 0x10]
movups xmmword [ecx - 0x40], xmm0
movups xmm0, xmmword [eax + 0x20]
movups xmmword [ecx - 0x30], xmm0
movups xmm0, xmmword [eax + 0x30]
movups xmmword [ecx - 0x20], xmm0
movups xmm0, xmmword [eax + 0x40]
movups xmmword [ecx - 0x10], xmm0
sub edx, 1
jne 0x48a840
mov esi, dword [esp + 0x60]
mov ecx, dword [esp + 0x54]
mov eax, dword [esp + 0x5c]
test byte [eax + 0x2c], 0x10
jne 0x48aa55
test byte [ecx + 0x24], 0x20
jne 0x48a93c
inc dword [edi + 0x2c]
lea edx, [esi + 0x88]
mov eax, dword [edi + 0x2c]
mov ecx, dword [edx]
mov dword [esp + 0x50], eax
mov eax, dword [esi + 0xc]
mov dword [esp + 0x34], edx
cmp dword [eax + 0x30], ecx
jg 0x48a8f5
push 0
push dword [esp + 0x54]
mov edx, 0x46
mov ecx, esi
push 0
call fcn.00429830
add esp, 0xc
inc dword [edi + 0x2c]
lea ecx, [esi + 0x88]
mov eax, dword [edi + 0x2c]
mov dword [esp + 0x64], eax
jmp 0x48aa5f
mov eax, dword [edx + 4]
mov dword [esp + 0x7c], eax
jmp 0x48a88a
lea eax, [ecx + 1]
mov dword [edx], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x58]
mov edx, dword [esp + 0x50]
mov dword [eax + ecx*4], 0x46
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
lea ecx, [esi + 0x88]
inc dword [edi + 0x2c]
mov eax, dword [edi + 0x2c]
mov dword [esp + 0x64], eax
jmp 0x48aa5f
mov ecx, dword [ecx + 8]
mov dword [esp + 0x2c], ecx
test ecx, ecx
je 0x48a95b
mov eax, dword [ecx + 0x38]
and al, 3
cmp al, 2
je 0x48a957
mov ecx, dword [ecx + 0x14]
test ecx, ecx
jne 0x48a947
mov dword [esp + 0x2c], ecx
mov eax, dword [edi + 0x28]
mov dword [esp + 0x50], eax
inc eax
mov dword [edi + 0x28], eax
lea eax, [esi + 0x88]
movzx edx, word [ecx + 0x32]
mov ecx, dword [eax]
mov dword [esp + 0x34], eax
mov eax, dword [esi + 0xc]
cmp dword [eax + 0x30], ecx
jg 0x48a996
push 0
push edx
push dword [esp + 0x58]
mov edx, 0x6c
mov ecx, esi
call fcn.00429830
add esp, 0xc
jmp 0x48a9cc
mov edi, dword [esp + 0x50]
lea eax, [ecx + 1]
mov dword [esi + 0x88], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x58]
mov dword [eax + ecx*4 + 4], edi
mov edi, dword [esp + 0x4c]
mov dword [eax + ecx*4], 0x6c
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [edi + 8]
mov ecx, edi
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x88], eax
call fcn.004589a0
mov dword [esp + 0x8c], eax
test eax, eax
je 0x48a8d7
mov edx, dword [esp + 0x88]
mov ecx, dword [edx]
cmp byte [ecx + 0x49], 0
je 0x48aa23
push eax
mov edx, 0xfffffff7
call fcn.0042a2b0
add esp, 4
lea ecx, [esi + 0x88]
inc dword [edi + 0x2c]
mov eax, dword [edi + 0x2c]
mov dword [esp + 0x34], ecx
mov dword [esp + 0x64], eax
jmp 0x48aa5f
mov eax, dword [edx + 0x88]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0x58]
mov edx, dword [esp + 0x8c]
mov byte [eax + ecx*4 - 0x13], 0xf7
mov dword [eax + ecx*4 - 4], edx
lea ecx, [esi + 0x88]
inc dword [edi + 0x2c]
mov eax, dword [edi + 0x2c]
mov dword [esp + 0x34], ecx
mov dword [esp + 0x64], eax
jmp 0x48aa5f
lea ecx, [esi + 0x88]
mov dword [esp + 0x34], ecx
mov eax, dword [esi + 0xc]
mov edx, dword [ecx]
mov dword [esp + 0x88], edx
cmp dword [eax + 0x30], edx
jg 0x48aa90
push 0
push dword [esp + 0x48]
mov edx, 0x43
mov ecx, esi
push 0
call fcn.00429830
add esp, 0xc
mov dword [esp + 0x88], eax
jmp 0x48aac2
lea eax, [edx + 1]
mov dword [ecx], eax
lea ecx, [edx + edx*4]
mov eax, dword [esi + 0x58]
mov edx, dword [esp + 0x44]
mov dword [eax + ecx*4], 0x43
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 + 0x5c]
xor edx, edx
cmp dword [eax + 0x5c], 1
jle 0x48abe3
xor ecx, ecx
mov dword [esp + 0x2c], edx
mov dword [esp + 0x48], ecx
xor edi, edi
nop
mov eax, dword [eax + 0x64]
add eax, ecx
mov esi, dword [eax]
mov dword [esp + 0x8c], esi
cmp eax, dword [esp + 0x3c]
je 0x48ab38
test byte [esi + 4], 1
jne 0x48ab38
test byte [eax + 0xa], 6
jne 0x48ab38
mov esi, 0x1fff
test word [eax + 0xc], si
je 0x48ab38
mov edx, dword [esp + 0x8c]
mov ecx, dword [esp + 0x74]
push 0
push 0
call fcn.004416a0
mov ecx, dword [esp + 0x7c]
mov edx, edi
push eax
call fcn.00440e80
mov ecx, dword [esp + 0x54]
add esp, 0xc
mov edx, dword [esp + 0x2c]
mov edi, eax
mov eax, dword [esp + 0x5c]
inc edx
add ecx, 0x30
mov dword [esp + 0x2c], edx
mov dword [esp + 0x48], ecx
cmp edx, dword [eax + 0x5c]
jl 0x48aae0
mov esi, dword [esp + 0x60]
mov edx, edi
mov dword [esp + 0x18], edi
mov edi, dword [esp + 0x4c]
test edx, edx
je 0x48abe3
mov ecx, dword [edi]
push 0
push 0x30
call fcn.004058c0
add esp, 8
mov dword [esp + 0x48], eax
test eax, eax
je 0x48abca
push 0x30
push 0
push eax
call fcn.004f7f30
mov ecx, dword [esp + 0x54]
or eax, 0xffffffff
mov edx, dword [esp + 0x24]
add esp, 0xc
mov word [ecx + 0x22], ax
mov byte [ecx], 0x2c
mov dword [ecx + 0x10], edx
mov eax, dword [edx + 4]
and eax, 0x200100
or dword [ecx + 4], eax
call fcn.00440c30
mov eax, dword [edi]
mov ecx, dword [eax + 0x70]
mov eax, dword [esp + 0x48]
cmp dword [eax + 0x18], ecx
jle 0x48abd9
push ecx
push str.Expression_tree_is_too_large__maximum_depth__d_
push edi
call fcn.00408830
add esp, 0xc
jmp 0x48abd5
mov edx, dword [esp + 0x18]
mov ecx, dword [edi]
call fcn.00441410
mov eax, dword [esp + 0x48]
mov edx, eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x18], edx
mov ax, word [eax + 0x2c]
mov ecx, 0x400
and ax, cx
mov ecx, dword [esp + 0x58]
or ax, 0x20
movzx eax, ax
mov dword [esp + 0xa8], eax
xor eax, eax
mov dword [esp + 0x30], eax
cmp dword [ecx + 0xc], eax
jle 0x48b24a
mov dword [esp + 0xc8], 0x10
mov dword [esp + 0xb8], 1
mov esi, dword [esp + 0x40]
lea eax, [eax + eax*2]
shl eax, 4
add eax, dword [ecx + 0x14]
cmp dword [eax + 0x14], esi
mov esi, dword [esp + 0x60]
je 0x48ac4f
mov esi, 0x400
test word [eax + 0xc], si
mov esi, dword [esp + 0x60]
je 0x48b234
mov eax, dword [eax]
xor ecx, ecx
mov dword [esp + 0x70], ecx
test edx, edx
je 0x48ac66
test byte [eax + 4], 1
jne 0x48ac66
mov dword [edx + 0xc], eax
mov eax, edx
push dword [esp + 0xa0]
mov edx, dword [esp + 0x80]
mov ecx, edi
push dword [esp + 0xac]
push 0
push 0
push eax
call fcn.004948a0
mov edx, eax
add esp, 0x14
mov dword [esp + 0x98], edx
test edx, edx
je 0x48b230
mov eax, dword [esp + 0x24]
push 0
movzx ecx, byte [eax + 0x31c]
push ecx
push dword [esp + 0x74]
lea ecx, [edx + 0x2f0]
mov edx, dword [esp + 0x88]
push ecx
mov ecx, edi
call fcn.004871f0
mov eax, dword [esp + 0x6c]
add esp, 0x10
test byte [eax + 0x2c], 0x10
jne 0x48b135
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x30]
mov eax, dword [eax + 0xc]
dec eax
cmp ecx, eax
mov eax, 0xffffffff
cmove ecx, eax
mov eax, dword [esp + 0x54]
mov dword [esp + 0x48], ecx
test byte [eax + 0x24], 0x20
jne 0x48ada5
push 0
push dword [esp + 0x68]
mov edx, eax
mov ecx, edi
push dword [esp + 0x48]
push 0xffffffffffffffff
call fcn.00446020
mov ecx, dword [esi + 0xc]
mov edx, eax
mov eax, dword [esp + 0x44]
add esp, 0x10
mov eax, dword [eax]
mov dword [esp + 0x70], eax
cmp dword [ecx + 0x30], eax
jg 0x48ad45
push edx
push 0
push dword [esp + 0x58]
mov edx, 0x2d
mov ecx, esi
call fcn.00429830
mov ecx, eax
add esp, 0xc
mov dword [esp + 0x70], ecx
jmp 0x48ad81
mov ecx, dword [esp + 0x34]
inc eax
mov edi, dword [esp + 0x50]
mov dword [ecx], eax
mov eax, dword [esi + 0x58]
mov ecx, dword [esp + 0x70]
lea ecx, [ecx + ecx*4]
mov dword [eax + ecx*4 + 4], edi
mov edi, dword [esp + 0x4c]
mov dword [eax + ecx*4], 0x2d
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esp + 0x70]
mov eax, dword [esi]
cmp byte [eax + 0x49], 0
jne 0x48b135
mov eax, dword [esi + 0x58]
lea ecx, [ecx + ecx*4]
mov edx, dword [esp + 0x48]
mov byte [eax + ecx*4 + 1], 0xfd
mov dword [eax + ecx*4 + 0x10], edx
jmp 0x48b135
mov ecx, eax
call fcn.00450c40
mov dword [esp + 0xac], eax
movzx ecx, word [eax + 0x32]
mov eax, ecx
mov dword [esp + 0x8c], eax
mov dword [esp + 0x1c], eax
cmp eax, 1
jne 0x48adfd
mov al, byte [edi + 0x13]
test al, al
jne 0x48ade2
inc dword [edi + 0x2c]
xor ecx, ecx
mov edx, dword [edi + 0x2c]
mov dword [esp + 0x38], edx
mov dword [esp + 0x2c], ecx
jmp 0x48ae40
dec al
xor ecx, ecx
mov byte [edi + 0x13], al
movzx eax, al
mov dword [esp + 0x2c], ecx
mov edx, dword [edi + eax*4 + 0x15c]
mov dword [esp + 0x38], edx
jmp 0x48ae40
mov ecx, dword [edi + 0x1c]
mov edx, dword [edi + 0x20]
mov dword [esp + 0x38], edx
cmp eax, ecx
jg 0x48ae19
add eax, edx
sub ecx, dword [esp + 0x1c]
mov dword [edi + 0x20], eax
mov dword [edi + 0x1c], ecx
jmp 0x48ae2a
mov eax, dword [edi + 0x2c]
lea edx, [eax + 1]
add eax, dword [esp + 0x1c]
mov dword [esp + 0x38], edx
mov dword [edi + 0x2c], eax
xor ecx, ecx
xor eax, eax
mov dword [esp + 0x2c], ecx
cmp ax, word [esp + 0x8c]
jae 0x48af04
mov esi, edx
mov eax, dword [esp + 0xac]
mov edx, dword [esp + 0x54]
push 0
push esi
mov eax, dword [eax + 4]
push dword [esp + 0x48]
movsx eax, word [eax + ecx*2]
mov ecx, edi
push eax
call fcn.00446020
add esp, 0x10
mov dword [esp + 0x9c], eax
cmp eax, esi
je 0x48aee8
mov ecx, dword [edi + 8]
mov dword [esp + 0xa4], ecx
mov edx, dword [ecx + 0xc]
mov eax, dword [ecx + 0x88]
mov dword [esp + 0xb0], eax
cmp dword [edx + 0x30], eax
mov edx, dword [esp + 0x9c]
jg 0x48aeae
push 0
push esi
push edx
mov edx, 0x4c
call fcn.00429830
add esp, 0xc
jmp 0x48aee8
inc eax
mov dword [ecx + 0x88], eax
mov eax, dword [esp + 0xb0]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0xa4]
mov eax, dword [eax + 0x58]
mov dword [eax + ecx*4], 0x4c
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 [esp + 0x2c]
inc esi
inc ecx
mov dword [esp + 0x2c], ecx
cmp ecx, dword [esp + 0x1c]
jl 0x48ae42
mov esi, dword [esp + 0x60]
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x48]
test eax, eax
je 0x48afa3
mov eax, dword [esp + 0x34]
mov ecx, dword [eax]
mov eax, dword [esi + 0xc]
mov dword [esp + 0x70], ecx
cmp dword [eax + 0x30], ecx
jg 0x48af44
push edx
push 0
push dword [esp + 0x58]
mov edx, 0x1e
mov ecx, esi
call fcn.00429830
mov edx, dword [esp + 0x44]
add esp, 0xc
mov ecx, eax
mov dword [esp + 0x70], eax
jmp 0x48af7e
mov edi, dword [esp + 0x34]
lea eax, [ecx + 1]
lea ecx, [ecx + ecx*4]
mov dword [edi], eax
mov eax, dword [esi + 0x58]
mov edi, dword [esp + 0x50]
mov dword [eax + ecx*4 + 4], edi
mov edi, dword [esp + 0x4c]
mov dword [eax + ecx*4], 0x1e
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esp + 0x70]
mov eax, dword [esi]
cmp byte [eax + 0x49], 0
jne 0x48af9d
mov eax, dword [esi + 0x58]
lea ecx, [ecx + ecx*4]
mov edi, dword [esp + 0x1c]
mov dword [eax + ecx*4 + 0x10], edi
mov edi, dword [esp + 0x4c]
mov byte [eax + ecx*4 + 1], 0xfd
mov eax, dword [esp + 0x48]
test eax, eax
js 0x48b0a8
mov eax, dword [esp + 0x34]
mov ecx, dword [eax]
mov eax, dword [esi + 0xc]
cmp dword [eax + 0x30], ecx
jg 0x48afd1
push dword [esp + 0x64]
mov ecx, esi
push dword [esp + 0x20]
push edx
mov edx, 0x63
call fcn.00429830
add esp, 0xc
jmp 0x48b007
mov edi, dword [esp + 0x34]
lea eax, [ecx + 1]
lea ecx, [ecx + ecx*4]
mov dword [edi], eax
mov eax, dword [esi + 0x58]
mov edi, dword [esp + 0x4c]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x1c]
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [esp + 0x64]
mov dword [eax + ecx*4], 0x63
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esp + 0x34]
mov eax, dword [esi + 0xc]
mov edx, dword [ecx]
cmp dword [eax + 0x30], edx
jg 0x48b034
push dword [esp + 0x38]
mov edx, 0x7f
mov ecx, esi
push dword [esp + 0x68]
push dword [esp + 0x58]
call fcn.00429830
add esp, 0xc
mov edx, eax
jmp 0x48b06a
mov edi, dword [esp + 0x50]
lea eax, [edx + 1]
mov dword [ecx], eax
lea ecx, [edx + edx*4]
mov eax, dword [esi + 0x58]
mov dword [eax + ecx*4 + 4], edi
mov edi, dword [esp + 0x64]
mov dword [eax + ecx*4 + 8], edi
mov edi, dword [esp + 0x38]
mov dword [eax + ecx*4 + 0xc], edi
mov edi, dword [esp + 0x4c]
mov dword [eax + ecx*4], 0x7f
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esi]
cmp byte [eax + 0x49], 0
jne 0x48b085
mov eax, dword [esi + 0x58]
lea ecx, [edx + edx*4]
mov edx, dword [esp + 0x1c]
mov byte [eax + ecx*4 + 1], 0xfd
mov dword [eax + ecx*4 + 0x10], edx
cmp dword [esp + 0x48], 0
je 0x48b0a8
mov eax, dword [esp + 0x34]
mov eax, dword [eax]
test eax, eax
jle 0x48b0a8
mov edx, dword [esp + 0xc8]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x58]
mov word [eax + ecx*4 - 0x12], dx
cmp word [esp + 0x8c], 1
jne 0x48b110
cmp dword [esp + 0x38], 0
je 0x48b135
mov al, byte [edi + 0x13]
mov byte [esp + 0x17], al
cmp al, 8
jae 0x48b135
movzx edx, byte [edi + 0x19]
lea eax, [edi + 0x94]
xor ecx, ecx
test edx, edx
je 0x48b0f5
nop dword [eax]
mov esi, dword [esp + 0x38]
cmp dword [eax + 0xc], esi
mov esi, dword [esp + 0x60]
je 0x48b10a
inc ecx
add eax, 0x14
cmp ecx, edx
jl 0x48b0e0
movzx eax, byte [esp + 0x17]
mov ecx, dword [esp + 0x38]
mov dword [edi + eax*4 + 0x15c], ecx
inc byte [edi + 0x13]
jmp 0x48b135
mov byte [eax + 6], 1
jmp 0x48b135
push dword [esp + 0x1c]
mov edx, dword [esp + 0x3c]
mov ecx, edi
call fcn.00445c10
mov eax, dword [esp + 0x20]
add esp, 4
cmp eax, dword [edi + 0x1c]
jle 0x48b135
mov dword [edi + 0x1c], eax
mov eax, dword [esp + 0x38]
mov dword [edi + 0x20], eax
mov edx, dword [esp + 0x34]
mov eax, dword [esi + 0xc]
mov ecx, dword [edx]
cmp dword [eax + 0x30], ecx
jg 0x48b165
push 0
push dword [esp + 0x84]
mov edx, 0xe
mov ecx, esi
push dword [esp + 0x4c]
call fcn.00429830
mov edx, dword [esp + 0x40]
add esp, 0xc
jmp 0x48b19e
mov edi, dword [esp + 0x44]
lea eax, [ecx + 1]
mov dword [edx], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x58]
mov dword [eax + ecx*4 + 4], edi
mov edi, dword [esp + 0x80]
mov dword [eax + ecx*4 + 8], edi
mov edi, dword [esp + 0x4c]
mov dword [eax + ecx*4], 0xe
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esp + 0x70]
test ecx, ecx
je 0x48b1c8
mov edx, dword [edx]
jns 0x48b1ad
lea ecx, [edx - 1]
mov eax, dword [esi]
cmp byte [eax + 0x49], 0
je 0x48b1bc
mov eax, 0x5600c0
jmp 0x48b1c5
mov eax, dword [esi + 0x58]
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*4]
mov dword [eax + 8], edx
mov edx, dword [esp + 0x98]
mov eax, dword [esp + 0x28]
cmp byte [edx + 0x32], 0
mov ecx, dword [edx + 0x330]
cmovne eax, dword [esp + 0xb8]
mov dword [esp + 0x28], eax
test dword [ecx + 0x24], 0x200
je 0x48b221
cmp dword [esp + 0x30], 0
je 0x48b202
mov eax, dword [esp + 0x20]
cmp dword [ecx + 0x20], eax
jne 0x48b221
mov eax, dword [esp + 0x54]
test byte [eax + 0x24], 0x20
je 0x48b218
mov eax, dword [ecx + 0x20]
mov eax, dword [eax + 0x38]
and al, 3
cmp al, 2
je 0x48b221
mov eax, dword [ecx + 0x20]
mov dword [esp + 0x20], eax
jmp 0x48b229
mov dword [esp + 0x20], 0
mov ecx, edx
call fcn.004956f0
mov ecx, dword [esp + 0x58]
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x18]
inc eax
mov dword [esp + 0x30], eax
cmp eax, dword [ecx + 0xc]
jl 0x48ac26
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x20]
mov dword [eax + 0x328], ecx
test ecx, ecx
je 0x48b269
mov ecx, dword [esp + 0xa0]
mov dword [eax + 0x2f8], ecx
mov edx, dword [esp + 0x18]
test edx, edx
je 0x48b281
mov ecx, dword [esp + 0x74]
mov dword [edx + 0xc], 0
call fcn.00441410
mov edi, dword [esp + 0x34]
mov ecx, dword [esp + 0x88]
mov edx, dword [edi]
test ecx, ecx
jns 0x48b295
lea ecx, [edx - 1]
mov eax, dword [esi]
cmp byte [eax + 0x49], 0
je 0x48b2a4
mov eax, 0x5600c0
jmp 0x48b2ad
mov eax, dword [esi + 0x58]
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*4]
mov dword [eax + 4], edx
mov eax, dword [esp + 0x24]
mov ecx, dword [edi]
mov edx, dword [eax + 0x2fc]
mov eax, dword [esi + 0xc]
cmp dword [eax + 0x30], ecx
jg 0x48b2da
push 0
push edx
push 0
mov edx, 0xd
mov ecx, esi
call fcn.00429830
add esp, 0xc
jmp 0x48b30c
lea eax, [ecx + 1]
mov dword [edi], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x58]
mov edi, dword [esp + 0x34]
mov dword [eax + ecx*4], 0xd
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 [esi + 0xc]
mov ecx, dword [eax + 0x48]
test ecx, ecx
je 0x48b32a
mov eax, dword [esp + 0x80]
lea eax, [eax*4 + 4]
sub ecx, eax
mov eax, dword [edi]
mov dword [ecx], eax
mov eax, dword [esp + 0x5c]
cmp byte [eax + 0x2e], 1
jbe 0x48b3d9
mov edi, dword [esp + 0x7c]
test edi, edi
je 0x48b3d9
mov ecx, dword [esp + 0x74]
test ecx, ecx
je 0x48b381
cmp dword [ecx + 0x1d0], 0
je 0x48b361
mov edx, edi
call fcn.00405430
jmp 0x48b3d9
cmp edi, dword [ecx + 0x128]
jb 0x48b381
cmp edi, dword [ecx + 0x12c]
jae 0x48b381
mov eax, dword [ecx + 0x124]
mov dword [edi], eax
mov dword [ecx + 0x124], edi
jmp 0x48b3d9
cmp dword [0x55a418], 0
je 0x48b3cf
mov eax, dword [0x560268]
test eax, eax
je 0x48b39d
push eax
call dword [0x55a474]
add esp, 4
push edi
call dword [0x55a450]
sub dword [0x560070], eax
add esp, 4
dec dword [0x560094]
push edi
call dword [0x55a448]
mov eax, dword [0x560268]
add esp, 4
test eax, eax
je 0x48b3d9
push eax
call dword [0x55a47c]
jmp 0x48b3d6
push edi
call dword [0x55a448]
add esp, 4
cmp dword [esp + 0x28], 0
jne 0x489154
mov edx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x78]
call fcn.004875d0
jmp 0x489154
test byte [esp + 0xb8], 0x20
jne 0x489149
mov ecx, dword [esp + 0x50]
mov edi, dword [esp + 0x24]
movzx eax, byte [ecx + 0x54d29c]
mov byte [edi + 0x31d], al
mov eax, dword [esp + 0x40]
mov dword [edi + 0x320], eax
mov al, byte [ecx + 0x54b6bc]
mov edx, dword [esi + 0x88]
mov byte [esp + 0x17], al
mov eax, dword [esi + 0xc]
cmp dword [eax + 0x30], edx
jg 0x48b459
mov ecx, dword [esp + 0x20]
movzx edx, byte [esp + 0x17]
push 0
push ecx
push dword [esp + 0x48]
mov ecx, esi
call fcn.00429830
add esp, 0xc
mov edx, eax
jmp 0x48b49a
lea eax, [edx + 1]
mov dword [esi + 0x88], eax
lea ecx, [edx + edx*4]
mov eax, dword [esi + 0x58]
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov byte [eax + ecx*4 + 1], 0
lea eax, [eax + ecx*4]
mov cl, byte [esp + 0x17]
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 + 0x20]
mov dword [eax + 8], ecx
lea eax, [edx + 1]
mov byte [edi + 0x31f], 1
mov dword [edi + 0x324], eax
jmp 0x489154
mov eax, dword [esp + 0x68]
jmp 0x489156
mov ecx, dword [edi]
movzx eax, dx
mov edx, dword [esp + 0x78]
mov dword [esp + 0x98], ecx
cmp dword [edx], 0
je 0x48b4db
test byte [ecx + 4], 1
je 0x48b689
movzx eax, word [edi + 0xa]
cmp dword [esp + 0x28], 1
movzx edx, ax
jne 0x48b579
mov eax, dword [esp + 0x24]
xorps xmm0, xmm0
mov dword [esp + 0xd0], 0
movlpd qword [esp + 0xd8], xmm0
movlpd qword [esp + 0xe0], xmm0
mov eax, dword [eax + 0x2f4]
mov dword [esp + 0xcc], eax
mov eax, dword [esp + 0x68]
mov dword [esp + 0xc8], eax
lea eax, [esp + 0xc8]
mov dword [esp + 0xe8], eax
mov eax, dword [esp + 0xb8]
mov dword [esp + 0xd4], 0x4499b0
movzx eax, ax
test ecx, ecx
je 0x48b55e
mov edx, ecx
lea ecx, [esp + 0xd0]
call fcn.0043d910
movzx eax, word [edi + 0xa]
cmp byte [esp + 0xe4], 0
movzx eax, ax
je 0x48b584
mov ecx, 2
mov dword [esp + 0x30], ecx
jmp 0x48b68d
cmp dword [esp + 0x28], 3
mov eax, edx
mov ecx, edx
jge 0x48b5aa
movzx eax, ax
mov ecx, eax
test eax, 0x1000
je 0x48b5aa
mov ecx, dword [esp + 0x30]
test ecx, ecx
jne 0x48b68d
mov ecx, 3
mov dword [esp + 0x30], ecx
jmp 0x48b68d
test ecx, 0x200
je 0x48b637
mov eax, dword [esp + 0x24]
mov edx, dword [esi + 0x88]
mov dword [esp + 0x2c], edx
mov ecx, dword [eax + 0x314]
mov eax, ecx
shr eax, 1
and ecx, 1
mov dword [esp + 0x3c], eax
add ecx, 0x15
mov eax, dword [esi + 0xc]
mov dword [esp + 0xb8], ecx
cmp dword [eax + 0x30], edx
jg 0x48b602
mov edx, dword [esp + 0x3c]
push 0
push 0
push edx
mov edx, ecx
mov ecx, esi
call fcn.00429830
add esp, 0xc
mov dword [esp + 0x2c], eax
jmp 0x48b637
lea eax, [edx + 1]
mov dword [esi + 0x88], eax
lea ecx, [edx + edx*4]
mov eax, dword [esi + 0x58]
mov edx, dword [esp + 0x3c]
mov dword [eax + ecx*4 + 4], edx
lea eax, [eax + ecx*4]
mov ecx, dword [esp + 0xb8]
mov byte [eax], cl
xor ecx, ecx
mov word [eax + 2], cx
mov dword [eax + 8], ecx
mov dword [eax + 0xc], ecx
mov dword [eax + 0x10], ecx
mov byte [eax + 1], cl
push 0x10
push dword [esp + 0x88]
push dword [esp + 0xa0]
push dword [esp + 0x58]
call fcn.00448ea0
mov ecx, dword [esp + 0x3c]
add esp, 0x10
test ecx, ecx
je 0x48b684
mov eax, dword [esi]
mov edx, dword [esi + 0x88]
cmp byte [eax + 0x49], 0
je 0x48b670
mov eax, 0x5600c0
jmp 0x48b681
test ecx, ecx
lea eax, [edx - 1]
cmovns eax, ecx
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x58]
lea eax, [eax + ecx*4]
mov dword [eax + 8], edx
or word [edi + 0xa], 4
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x18]
add edi, 0x30
dec eax
mov dword [esp + 0x18], eax
test eax, eax
jg 0x489180
mov eax, dword [esp + 0x5c]
mov edx, dword [eax + 0x5c]
mov edi, dword [eax + 0x64]
mov dword [esp + 0x18], edx
mov dword [esp + 0x28], ecx
test ecx, ecx
jg 0x489165
test edx, edx
jle 0x48b7af
add edi, 0xc
test byte [edi - 2], 6
jne 0x48b79b
movzx eax, word [edi]
mov esi, 0xb
test al, 0x82
setne cl
bt ax, si
mov esi, dword [esp + 0x4c]
setb al
test al, cl
je 0x48b79b
mov ecx, dword [esp + 0x40]
cmp dword [edi + 8], ecx
jne 0x48b79b
mov eax, dword [esp + 0x78]
cmp dword [eax], 0
jne 0x48b79b
mov eax, dword [edi - 0xc]
mov edx, ecx
mov ecx, dword [esp + 0xb4]
push 0
push 0x83
push dword [esp + 0x98]
mov dword [esp + 0xc4], eax
push dword [esp + 0xa0]
push dword [edi + 0x10]
call fcn.0048ebd0
add esp, 0x14
test eax, eax
je 0x48b797
test byte [eax + 0xa], 4
jne 0x48b797
mov eax, dword [eax]
push 0x10
push dword [esp + 0x88]
movups xmm0, xmmword [eax]
movups xmmword [esp + 0xd8], xmm0
movups xmm0, xmmword [eax + 0x10]
movups xmmword [esp + 0xe8], xmm0
movups xmm0, xmmword [eax + 0x20]
mov eax, dword [esp + 0xc0]
movups xmmword [esp + 0xf8], xmm0
mov eax, dword [eax + 0xc]
mov dword [esp + 0xe4], eax
lea eax, [esp + 0xd8]
push eax
push esi
call fcn.00448ea0
add esp, 0x10
mov edx, dword [esp + 0x18]
dec edx
add edi, 0x30
mov dword [esp + 0x18], edx
test edx, edx
jg 0x48b6c6
mov esi, dword [esp + 0x60]
mov eax, dword [esp + 0x78]
mov edi, dword [eax]
test edi, edi
je 0x48b8c1
mov ecx, dword [esp + 0x24]
mov eax, dword [esi + 0x88]
mov dword [ecx + 0x30c], eax
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x88]
cmp dword [eax + 0x30], ecx
jg 0x48b7f1
push 0
push edi
push 1
mov edx, 0x43
mov ecx, esi
call fcn.00429830
add esp, 0xc
jmp 0x48b823
lea eax, [ecx + 1]
mov dword [esi + 0x88], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x58]
mov dword [eax + ecx*4], 0x43
mov dword [eax + ecx*4 + 4], 1
mov dword [eax + ecx*4 + 8], edi
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov edx, dword [esp + 0x4c]
xor edi, edi
cmp byte [edx + 0x19], 0
jbe 0x48b85d
lea esi, [edx + 0xa0]
cmp byte [esi - 6], 0
je 0x48b851
mov al, byte [edx + 0x13]
cmp al, 8
jae 0x48b851
movzx ecx, al
mov eax, dword [esi]
mov dword [edx + ecx*4 + 0x15c], eax
inc byte [edx + 0x13]
movzx eax, byte [edx + 0x19]
inc edi
add esi, 0x14
cmp edi, eax
jl 0x48b835
mov eax, dword [esp + 0x5c]
xor edi, edi
mov esi, dword [esp + 0x5c]
mov byte [edx + 0x19], 0
mov esi, dword [esi + 0x64]
cmp dword [eax + 0x5c], edi
jle 0x48b8c1
test byte [esi + 0xa], 6
jne 0x48b8b8
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x24]
mov ecx, dword [esi + 0x28]
and ecx, dword [eax + 0x338]
mov eax, dword [esi + 0x2c]
and eax, dword [edx + 0x33c]
or ecx, eax
mov edx, dword [esp + 0x4c]
jne 0x48b8b4
push 0x10
push dword [esp + 0x88]
push dword [esi]
push edx
call fcn.00448ea0
add esp, 0x10
or word [esi + 0xa], 4
mov eax, dword [esp + 0x5c]
inc edi
add esi, 0x30
cmp edi, dword [eax + 0x5c]
jl 0x48b873
mov ecx, dword [esp + 0x24]
pop edi
pop esi
mov eax, dword [ecx + 0x338]
mov edx, dword [ecx + 0x33c]
mov ecx, dword [esp + 0x104]
xor ecx, esp
call fcn.004f49c2
mov esp, ebp
pop ebp
ret