Function at 0x479bc2
Capabilities:
Encode data using xor
Encrypt data using speck
Reference sql statements
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x19c
mov eax, dword [0x4010c0]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
mov edi, ecx
xorps xmm0, xmm0
mov dword [ebp - 0x144], edi
movlpd qword [ebp - 0x40], xmm0
mov edx, dword [edi]
mov eax, dword [edi + 0x68]
mov ebx, eax
mov esi, dword [edi + 0x58]
mov dword [ebp - 0x13c], eax
xor eax, eax
mov ch, byte [edx + 0x54]
mov dword [ebp - 0x150], eax
mov dword [ebp - 0x140], edx
mov byte [ebp - 0x17d], al
mov byte [ebp - 0x14c], ch
mov dword [ebp - 0x17c], eax
mov dword [ebp - 0x148], esi
cmp dword [edi + 0xa0], eax
je 0x479c3e
mov ecx, edi
call fcn.0047524c
mov edx, dword [ebp - 0x140]
xor eax, eax
mov ch, byte [ebp - 0x14c]
cmp dword [edx + 0x174], eax
je 0x479c76
mov eax, dword [edx + 0x17c]
xor edx, edx
mov dword [ebp - 0x178], eax
mov eax, dword [edi + 0xb4]
div dword [ebp - 0x178]
sub dword [ebp - 0x178], edx
xor eax, eax
mov edx, dword [ebp - 0x140]
mov dword [ebp - 0x184], eax
jmp 0x479c84
or dword [ebp - 0x178], 0xffffffff
or dword [ebp - 0x184], 0xffffffff
cmp dword [edi + 0x24], 7
mov dword [ebp - 0x154], 1
mov dword [ebp - 0x170], 0x14
mov dword [ebp - 0x168], 2
je 0x47f958
mov dword [edi + 0x24], eax
mov dword [edi + 0x38], eax
mov dword [edi + 0x3c], eax
mov dword [edx + 0x1c8], eax
cmp dword [edx + 0x128], eax
jne 0x47f93f
imul ebx, dword [edi + 0x20], 0x14
mov edx, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x13c]
mov dword [ebp - 0x198], edx
mov edx, dword [ebp - 0x40]
add ebx, eax
mov cl, byte [ebx]
add edx, 1
mov dword [ebp - 0x194], edx
push 0
pop edx
adc dword [ebp - 0x198], edx
movzx edx, cl
mov dword [ebp - 0x14], ebx
mov byte [ebp - 0x161], cl
mov dword [ebp - 0x158], edx
cmp edx, 0xb5
ja case.0x479d0d.89
jmp dword [edx*4 + 0x47faca]
imul ecx, dword [ebx + 4], 0x28
push 4
pop eax
mov word [ecx + esi + 0x10], ax
mov eax, ebx
sub eax, dword [ebp - 0x13c]
cdq
idiv dword [ebp - 0x170]
cdq
mov dword [ecx + esi], eax
mov dword [ecx + esi + 4], edx
jmp case.0x479d0d.9
imul eax, dword [ebx + 4], 0x28
push 4
pop edx
test byte [eax + esi + 0x10], dl
je 0x47a0e4
imul ebx, dword [eax + esi], 0x14
mov eax, dword [ebp - 0x13c]
add ebx, eax
jmp case.0x479d0d.89
imul ecx, dword [ebx + 4], 0x28
mov eax, dword [ebx + 0xc]
push 4
add ecx, esi
dec eax
cdq
mov dword [ecx], eax
pop eax
mov word [ecx + 0x10], ax
xor eax, eax
mov dword [ecx + 4], edx
cmp dword [ebx + 8], eax
jne 0x47f469
mov eax, dword [ebp - 0x13c]
mov ch, byte [ebp - 0x14c]
add ebx, dword [ebp - 0x170]
mov edx, dword [ebp - 0x194]
jmp 0x479cdf
imul ecx, dword [ebx + 4], 0x28
mov edx, dword [ebp - 0x13c]
add ecx, esi
lea ebx, [edx - 0x14]
imul eax, dword [ecx], 0x14
imul eax, dword [eax + edx + 8], 0x14
add ebx, eax
xor eax, eax
mov word [ecx + 0x10], ax
jmp 0x479d7d
imul esi, dword [ebx + 4], 0x28
sub ebx, eax
mov eax, ebx
cdq
idiv dword [ebp - 0x170]
add esi, dword [ebp - 0x148]
push 4
pop ecx
cdq
mov word [esi + 0x10], cx
mov ecx, dword [esi]
imul ebx, ecx, 0x14
mov dword [esi], eax
mov eax, dword [ebp - 0x13c]
mov dword [esi + 4], edx
add ebx, eax
mov esi, dword [ebp - 0x148]
jmp 0x479d83
imul eax, dword [ebx + 0xc], 0x28
mov edx, dword [ebp - 0x154]
test byte [eax + esi + 0x10], dl
je 0x47a0e4
mov esi, dword [edi + 0xd0]
test esi, esi
je 0x47f488
xor eax, eax
cmp dword [ebx + 4], eax
jne 0x47f488
push dword [edi + 0x2c]
mov eax, dword [esi + 4]
push dword [edi + 0x28]
mov ecx, dword [ebp - 0x140]
dec dword [edi + 0xd8]
mov dword [edi + 0xd0], eax
call fcn.00477a4c
pop ecx
pop ecx
mov ecx, esi
call fcn.00475af1
push 4
pop ecx
cmp dword [ebx + 8], ecx
jne 0x479e5b
imul ecx, eax, 0x14
mov eax, dword [edi + 0x68]
mov eax, dword [ecx + eax + 8]
dec eax
mov ecx, dword [edi + 0x68]
mov esi, dword [edi + 0x58]
imul ebx, eax, 0x14
mov eax, ecx
mov dword [ebp - 0x13c], ecx
mov dword [ebp - 0x148], esi
add ebx, eax
jmp 0x479d83
mov edx, ebx
mov ecx, edi
call fcn.00479b23
mov ecx, eax
mov eax, dword [ebx + 4]
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp 0x479d7d
mov edx, ebx
mov ecx, edi
call fcn.00479b23
mov ecx, dword [ebx + 0x10]
mov edx, dword [ecx]
mov ecx, dword [ecx + 4]
mov dword [eax], edx
mov dword [eax + 4], ecx
jmp 0x479d7d
mov edx, ebx
mov ecx, edi
call fcn.00479b23
push 8
pop ecx
mov word [eax + 0x10], cx
mov ecx, dword [ebx + 0x10]
movsd xmm0, qword [ecx]
movsd qword [eax], xmm0
jmp 0x479d7d
mov edx, ebx
mov ecx, edi
call fcn.00479b23
mov edx, dword [ebx + 0x10]
mov esi, eax
test edx, edx
jne 0x479ee5
xor eax, eax
mov ecx, eax
jmp 0x479efb
mov ecx, edx
lea edi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x479eea
sub ecx, edi
and ecx, 0x3fffffff
xor eax, eax
cmp byte [ebp - 0x14c], 1
mov dword [ebx + 4], ecx
je 0x479f74
push eax
push dword [ebp - 0x154]
mov ecx, esi
push 0xffffffffffffffff
push 0xffffffffffffffff
call fcn.00473d40
mov edi, eax
add esp, 0x10
mov dword [ebp - 0x150], edi
test edi, edi
jne 0x47f680
movzx edx, byte [ebp - 0x14c]
mov ecx, esi
call fcn.0047333c
test eax, eax
jne 0x47b5aa
mov dword [esi + 0x18], eax
mov eax, 0x2000
or word [esi + 0x10], ax
cmp byte [ebx + 1], 0xfa
jne 0x479f64
push dword [ebx + 0x10]
push dword [ebp - 0x140]
call fcn.00459573
pop ecx
pop ecx
mov byte [ebx + 1], 0xfa
mov eax, dword [esi + 8]
mov dword [ebx + 0x10], eax
mov ecx, dword [esi + 0xc]
mov dword [ebx + 4], ecx
mov eax, dword [ebp - 0x140]
mov edi, dword [ebp - 0x144]
cmp ecx, dword [eax + 0x78]
jg 0x47f686
mov byte [ebx], 0x49
mov edx, ebx
mov ecx, edi
call fcn.00479b23
mov esi, eax
mov eax, 0x2202
mov word [esi + 0x10], ax
mov ecx, dword [ebx + 0x10]
mov al, byte [ebp - 0x14c]
mov dword [esi + 8], ecx
mov ecx, dword [ebx + 4]
mov dword [esi + 0xc], ecx
mov byte [esi + 0x12], al
mov eax, dword [ebx + 0xc]
test eax, eax
jle 0x47f292
mov edi, dword [ebp - 0x148]
imul ecx, eax, 0x28
movzx eax, word [ebx + 2]
cdq
cmp dword [ecx + edi], eax
mov edi, dword [ebp - 0x144]
jne 0x47f292
mov eax, dword [ebp - 0x148]
cmp dword [ecx + eax + 4], edx
jne 0x47f292
mov eax, 0x2210
mov word [esi + 0x10], ax
mov esi, dword [ebp - 0x148]
jmp 0x479d7d
mov edx, ebx
mov ecx, edi
call fcn.00479b23
cmp dword [ebx + 4], 0
mov esi, 0x101
mov edi, dword [ebx + 0xc]
mov edx, dword [ebx + 8]
mov ecx, dword [ebp - 0x154]
cmovne ecx, esi
and dword [eax + 0xc], 0
movzx ecx, cx
lea esi, [eax + 0x10]
sub edi, edx
mov dword [ebp - 0x15c], ecx
mov word [esi], cx
test edi, edi
jle 0x47f292
xor edx, edx
mov eax, 0x9000
lea esi, [esi + 0x28]
test word [esi], ax
je 0x47a063
lea ecx, [esi - 0x10]
call fcn.0047367a
mov ecx, dword [ebp - 0x15c]
xor edx, edx
mov eax, 0x9000
dec edi
mov word [esi], cx
mov dword [esi - 4], edx
test edi, edi
jg 0x47a046
mov edi, dword [ebp - 0x144]
jmp 0x479ff6
imul ecx, dword [ebx + 4], 0x28
mov edx, 0xffc1
add ecx, esi
mov ax, word [ecx + 0x10]
and ax, dx
or ax, word [ebp - 0x154]
jmp 0x479db5
mov edx, ebx
mov ecx, edi
call fcn.00479b23
cmp dword [ebx + 0x10], 0
mov esi, eax
mov ecx, esi
jne 0x47a0c0
mov edx, dword [ebx + 4]
call fcn.00473ae3
mov ecx, esi
call fcn.004734f9
test eax, eax
jne 0x47b5b0
jmp 0x47a0d5
xor eax, eax
push eax
push eax
mov eax, dword [ebx + 4]
cdq
push edx
mov edx, dword [ebx + 0x10]
push eax
call fcn.00473d40
add esp, 0x10
mov ch, byte [ebp - 0x14c]
mov byte [esi + 0x12], ch
mov esi, dword [ebp - 0x148]
mov eax, dword [ebp - 0x13c]
jmp case.0x479d0d.89
imul ecx, dword [ebx + 4], 0x28
mov esi, dword [edi + 0x64]
add ecx, 0xffffffd8
add esi, ecx
mov ecx, esi
call fcn.00473c18
test eax, eax
jne 0x47f686
imul edx, dword [ebx + 8], 0x28
mov eax, 0x9000
add edx, dword [ebp - 0x148]
mov dword [ebp - 0x15c], edx
test word [edx + 0x10], ax
je 0x47a132
mov ecx, edx
call fcn.00473ac7
mov edx, dword [ebp - 0x15c]
push 5
pop eax
mov ecx, eax
mov edi, edx
rep movsd dword es:[edi], dword [esi]
mov ax, word [edx + 0x10]
mov ecx, 0xafff
and ax, cx
mov ecx, 0x2040
or ax, cx
mov word [edx + 0x10], ax
jmp 0x47a06e
imul edi, dword [ebx + 4], 0x28
mov eax, dword [ebx + 0xc]
mov dword [ebp - 0x18], eax
add edi, esi
imul esi, dword [ebx + 8], 0x28
add esi, dword [ebp - 0x148]
mov edx, edi
mov ecx, esi
call fcn.00473d1e
mov eax, 0x4000
test word [esi + 0x10], ax
je 0x47a191
mov ecx, esi
call fcn.004734b3
test eax, eax
jne 0x47b5aa
add edi, 0x28
add esi, 0x28
sub dword [ebp - 0x18], 1
jne 0x47a16e
jmp 0x47a06e
imul edi, dword [ebx + 4], 0x28
mov eax, dword [ebx + 0xc]
mov dword [ebp - 0x18], eax
add edi, esi
imul esi, dword [ebx + 8], 0x28
add esi, dword [ebp - 0x148]
mov eax, 0x4000
mov edx, edi
push eax
mov ecx, esi
call fcn.00473c5c
mov eax, 0x4000
pop ecx
test word [esi + 0x10], ax
je 0x47a1e2
mov ecx, esi
call fcn.004734b3
test eax, eax
jne 0x47b5aa
movzx eax, word [esi + 0x10]
test eax, 0x800
je 0x47a203
mov ecx, dword [ebp - 0x168]
test byte [ebx + 2], cl
je 0x47a203
mov ecx, 0xf7ff
and eax, ecx
mov word [esi + 0x10], ax
mov ecx, dword [ebp - 0x18]
mov eax, ecx
dec ecx
mov dword [ebp - 0x18], ecx
test eax, eax
je 0x47f292
add esi, 0x28
add edi, 0x28
jmp 0x47a1b8
imul edx, dword [ebx + 4], 0x28
mov eax, 0x4000
imul ecx, dword [ebx + 8], 0x28
push eax
add edx, esi
add ecx, esi
call fcn.00473c5c
pop ecx
jmp 0x479d7d
imul ecx, dword [ebx + 8], 0x28
mov edi, 0x9000
imul eax, dword [ebx + 4], 0x28
add ecx, esi
mov edx, dword [eax + esi]
test word [ecx + 0x10], di
mov eax, dword [eax + esi + 4]
mov edi, dword [ebp - 0x144]
je 0x47a265
push eax
push edx
call fcn.00473b11
pop ecx
jmp 0x47a233
mov dword [ecx], edx
mov dword [ecx + 4], eax
push 4
pop eax
jmp 0x479db5
xor edx, edx
mov ecx, edi
call fcn.00476282
mov ecx, eax
mov dword [ebp - 0x150], ecx
test ecx, ecx
je 0x479d7d
mov edx, dword [ebp - 0x140]
mov esi, dword [ebp - 0x13c]
cmp byte [edx + 0x57], 0
je 0x47f96f
push 7
jmp 0x47f997
imul ecx, dword [ebx + 4], 0x28
imul edi, dword [ebx + 8], 0x28
add ecx, esi
add edi, esi
mov dword [ebp - 0x14], ecx
imul esi, dword [ebx + 0xc], 0x28
movzx edx, word [ecx + 0x10]
mov al, byte [edi + 0x10]
or al, dl
mov dword [ebp - 0x18c], edx
add esi, dword [ebp - 0x148]
test al, 1
je 0x47a2fa
mov eax, 0x9000
test word [esi + 0x10], ax
je 0x47a2eb
mov ecx, esi
call fcn.0047367a
jmp 0x47a06e
mov eax, dword [ebp - 0x154]
mov word [esi + 0x10], ax
jmp 0x47a06e
test dl, 0x12
jne 0x47a330
mov dl, byte [ebp - 0x14c]
xor eax, eax
push eax
call fcn.00473546
pop ecx
test eax, eax
jne 0x47b5aa
mov eax, dword [ebp - 0x14]
mov ecx, 0xfffd
mov ax, word [eax + 0x10]
and ax, cx
movzx ecx, ax
mov dword [ebp - 0x18c], ecx
jmp 0x47a35b
bt edx, 0xa
jae 0x47a35b
call fcn.004734f9
test eax, eax
jne 0x47b5aa
mov eax, dword [ebp - 0x14]
mov ecx, 0xfffd
mov ax, word [eax + 0x10]
and ax, cx
movzx eax, ax
mov dword [ebp - 0x18c], eax
movzx eax, word [edi + 0x10]
mov dword [ebp - 0xbc], eax
test al, 0x12
jne 0x47a37c
mov dl, byte [ebp - 0x14c]
xor eax, eax
push eax
mov ecx, edi
call fcn.00473546
pop ecx
jmp 0x47a389
bt eax, 0xa
jae 0x47a3a6
mov ecx, edi
call fcn.004734f9
test eax, eax
jne 0x47b5aa
mov ax, word [edi + 0x10]
mov ecx, 0xfffd
and ax, cx
movzx eax, ax
mov dword [ebp - 0xbc], eax
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax + 0xc]
mov eax, dword [edi + 0xc]
add eax, ecx
mov dword [ebp - 0x15c], eax
cdq
mov ecx, eax
mov dword [ebp - 0x18], edx
mov eax, dword [ebp - 0x140]
mov dword [ebp - 0x174], ecx
mov eax, dword [eax + 0x78]
cdq
cmp dword [ebp - 0x18], edx
jg 0x47f680
jl 0x47a3e0
cmp ecx, eax
ja 0x47f680
mov edx, dword [ebp - 0x15c]
xor eax, eax
cmp esi, edi
mov ecx, esi
sete al
add edx, 2
push eax
call fcn.00473355
pop ecx
test eax, eax
jne 0x47b5aa
mov ax, word [esi + 0x10]
mov ecx, 0xf242
and ax, cx
or ax, word [ebp - 0x168]
mov word [esi + 0x10], ax
cmp esi, edi
je 0x47a437
push dword [edi + 0xc]
push dword [edi + 8]
push dword [esi + 8]
call sub.VCRUNTIME140.dll_memcpy
mov eax, dword [ebp - 0xbc]
add esp, 0xc
mov word [edi + 0x10], ax
mov eax, dword [ebp - 0x14]
push dword [eax + 0xc]
push dword [eax + 8]
mov eax, dword [edi + 0xc]
add eax, dword [esi + 8]
push eax
call sub.VCRUNTIME140.dll_memcpy
mov eax, dword [ebp - 0x14]
add esp, 0xc
mov ecx, dword [ebp - 0x18c]
mov word [eax + 0x10], cx
mov eax, dword [ebp - 0x154]
mov ecx, dword [ebp - 0x174]
cmp byte [ebp - 0x14c], al
jbe 0x47a479
mov eax, dword [ebp - 0x18]
and ecx, 0xfffffffe
mov dword [ebp - 0x1c], eax
mov eax, dword [esi + 8]
xor edx, edx
mov edi, dword [ebp - 0x144]
mov byte [ecx + eax], dl
mov eax, dword [esi + 8]
mov byte [ecx + eax + 1], dl
mov eax, 0x200
or word [esi + 0x10], ax
mov dword [esi + 0xc], ecx
jmp 0x47a0d5
imul eax, dword [ebx + 4], 0x28
add eax, esi
mov dword [ebp - 0x160], eax
movzx edx, word [eax + 0x10]
imul eax, dword [ebx + 8], 0x28
add eax, esi
mov dword [ebp - 0x158], eax
movzx ecx, word [eax + 0x10]
imul eax, dword [ebx + 0xc], 0x28
add eax, esi
mov dword [ebp - 0xbc], eax
mov al, cl
and al, dl
test al, 4
jne 0x47a510
mov eax, dword [ebp - 0x154]
or cl, dl
test al, cl
jne 0x47a75a
mov esi, dword [ebp - 0x160]
mov ecx, esi
call fcn.00479afb
mov edi, dword [ebp - 0x158]
mov ecx, edi
movzx ebx, ax
call fcn.00479afb
push 4
and al, bl
mov ebx, dword [ebp - 0x14]
pop ecx
test cl, al
je 0x47a67a
mov eax, dword [ebp - 0x160]
mov edx, dword [eax]
mov esi, dword [eax + 4]
mov eax, dword [ebp - 0x158]
mov ecx, dword [eax + 4]
mov edi, dword [eax]
movzx eax, byte [ebx]
mov dword [ebp - 0x14], ecx
mov dword [ebp - 0x38], edi
mov dword [ebp - 0x34], ecx
sub eax, 0x6a
je 0x47a5cb
sub eax, 1
je 0x47a5b5
sub eax, 1
je 0x47a5a9
sub eax, 1
mov eax, edx
je 0x47a57b
or eax, esi
je 0x47a748
mov eax, edx
and eax, esi
cmp eax, 0xffffffff
jne 0x47a567
mov edx, dword [ebp - 0x154]
xor eax, eax
mov esi, eax
push esi
push edx
push ecx
push edi
call fcn.004cc270
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x34], edx
jmp 0x47a605
or eax, esi
je 0x47a748
mov eax, edx
and eax, esi
cmp eax, 0xffffffff
jne 0x47a59e
xor eax, eax
cmp edi, eax
jne 0x47a59e
cmp ecx, 0x80000000
je 0x47a66e
push esi
push edx
push ecx
push edi
call fcn.004cc0a0
jmp 0x47a570
push esi
push edx
lea ecx, [ebp - 0x38]
call fcn.0045d81a
jmp 0x47a5bf
push esi
push edx
lea ecx, [ebp - 0x38]
call fcn.0045d7cc
pop ecx
pop ecx
test eax, eax
jne 0x47a66e
jmp 0x47a605
xor eax, eax
cmp esi, eax
jl 0x47a630
jg 0x47a5d7
cmp edx, eax
jb 0x47a630
cmp ecx, eax
jl 0x47a5fb
jg 0x47a5e1
cmp edi, eax
jbe 0x47a5fb
or ecx, 0xffffffff
mov eax, 0x7fffffff
sub ecx, edi
sbb eax, dword [ebp - 0x14]
cmp eax, esi
jg 0x47a5f8
jl 0x47a66e
cmp ecx, edx
jb 0x47a66e
mov ecx, dword [ebp - 0x14]
add edi, edx
mov dword [ebp - 0x38], edi
adc ecx, esi
mov dword [ebp - 0x34], ecx
mov edx, dword [ebp - 0xbc]
mov ecx, dword [ebp - 0x34]
mov eax, dword [ebp - 0x38]
push 4
mov dword [edx + 4], ecx
mov ecx, 0xf244
mov dword [edx], eax
mov ax, word [edx + 0x10]
and ax, cx
pop ecx
or ax, cx
movzx eax, ax
jmp 0x47a14f
cmp ecx, eax
jg 0x47a5fb
jl 0x47a63a
cmp edi, eax
jae 0x47a5fb
mov eax, dword [ebp - 0x154]
mov ecx, 0x80000000
sub eax, edi
mov dword [ebp - 0x15c], eax
mov eax, edx
sbb ecx, dword [ebp - 0x14]
add eax, 1
mov dword [ebp - 0x24], eax
mov eax, esi
adc eax, 0
cmp ecx, eax
jl 0x47a5f8
jg 0x47a66e
mov eax, dword [ebp - 0x15c]
cmp eax, dword [ebp - 0x24]
jbe 0x47a5f8
mov edi, dword [ebp - 0x158]
mov esi, dword [ebp - 0x160]
mov ecx, esi
call fcn.004737b9
mov ecx, edi
movsd qword [ebp - 0x20], xmm0
call fcn.004737b9
movzx eax, byte [ebx]
sub eax, 0x6a
je 0x47a721
sub eax, 1
je 0x47a71a
sub eax, 1
je 0x47a713
sub eax, 1
je 0x47a6fa
mov ecx, esi
call fcn.00473753
mov ecx, dword [ebp - 0x158]
mov esi, eax
mov edi, edx
call fcn.00473753
mov ecx, esi
mov dword [ebp - 0x15c], eax
or ecx, edi
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x34], edx
je 0x47a748
mov eax, esi
and eax, edi
cmp eax, 0xffffffff
jne 0x47a6e3
mov esi, dword [ebp - 0x154]
xor eax, eax
mov edi, eax
push edi
push esi
push edx
push dword [ebp - 0x15c]
call fcn.004cc270
mov ecx, eax
call fcn.004cc600
jmp 0x47a726
movsd xmm1, qword [ebp - 0x20]
ucomisd xmm1, qword [0x433678]
lahf
test ah, 0x44
jnp 0x47a748
divsd xmm0, xmm1
jmp 0x47a726
mulsd xmm0, qword [ebp - 0x20]
jmp 0x47a726
subsd xmm0, qword [ebp - 0x20]
jmp 0x47a726
addsd xmm0, qword [ebp - 0x20]
movsd qword [ebp - 0x20], xmm0
mov esi, 0x7ff00000
mov ecx, dword [ebp - 0x1c]
mov eax, ecx
and eax, esi
cmp eax, esi
jne 0x47a780
mov eax, dword [ebp - 0x20]
and ecx, 0xfffff
or eax, ecx
je 0x47a780
mov edi, dword [ebp - 0x144]
mov esi, dword [ebp - 0x148]
mov eax, dword [ebp - 0x154]
mov edx, dword [ebp - 0xbc]
mov ecx, 0x9000
test word [edx + 0x10], cx
je 0x47a777
mov ecx, edx
call fcn.0047367a
jmp 0x479d7d
mov word [edx + 0x10], ax
jmp 0x479d7d
mov edx, dword [ebp - 0xbc]
mov ecx, 0xf248
push 8
movsd qword [edx], xmm0
jmp 0x47a61d
mov eax, dword [ebx + 4]
test eax, eax
je 0x47a0e4
imul eax, eax, 0x28
mov edx, 0x9000
add eax, esi
test word [eax + 0x10], dx
je 0x47a7bc
xor ecx, ecx
push ecx
push ecx
mov ecx, eax
jmp 0x47a25d
xor edx, edx
push 4
mov dword [eax], edx
mov dword [eax + 4], edx
pop edx
mov word [eax + 0x10], dx
jmp 0x47a0e4
imul ecx, dword [ebx + 8], 0x28
imul esi, dword [ebx + 4], 0x28
mov eax, dword [ebp - 0x148]
imul edx, dword [ebx + 0xc], 0x28
add ecx, eax
add esi, eax
add edx, eax
mov al, byte [ecx + 0x10]
or al, byte [esi + 0x10]
mov dword [ebp - 0x24], edx
test al, 1
je 0x47a81a
mov eax, 0x9000
test word [edx + 0x10], ax
je 0x47a80b
mov ecx, edx
call fcn.0047367a
jmp 0x479ff6
mov eax, dword [ebp - 0x154]
mov word [edx + 0x10], ax
jmp 0x479ff6
call fcn.00473753
mov ecx, esi
mov dword [ebp - 0x14], eax
mov edi, edx
call fcn.00473753
mov cl, byte [ebx]
mov esi, eax
cmp cl, 0x66
jne 0x47a840
mov eax, dword [ebp - 0x14]
and eax, esi
and edi, edx
jmp 0x47a918
cmp cl, 0x67
jne 0x47a851
mov eax, dword [ebp - 0x14]
or eax, esi
or edi, edx
jmp 0x47a918
mov eax, esi
or eax, edx
je 0x47a915
xor eax, eax
cmp edx, eax
jg 0x47a88d
jl 0x47a867
cmp esi, eax
jae 0x47a882
mov al, 0xd1
sub al, cl
mov cl, al
cmp edx, 0xffffffff
jl 0x47a88d
jg 0x47a879
cmp esi, 0xffffffc0
jbe 0x47a88d
neg esi
push 0
pop eax
adc edx, eax
neg edx
cmp edx, eax
jl 0x47a8b6
jg 0x47a88d
cmp esi, 0x40
jb 0x47a8b6
xor edx, edx
cmp edi, edx
jg 0x47a8a6
jl 0x47a89a
cmp dword [ebp - 0x14], edx
jae 0x47a8a6
cmp cl, 0x68
je 0x47a8a6
or eax, 0xffffffff
or edi, eax
jmp 0x47a918
xorps xmm0, xmm0
movlpd qword [ebp - 0x20], xmm0
mov edi, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x20]
jmp 0x47a918
mov eax, dword [ebp - 0x14]
cmp cl, 0x68
mov edx, edi
mov ecx, esi
jne 0x47a8cb
call fcn.004cc330
mov ecx, eax
jmp 0x47a90f
call fcn.004cc4e0
mov ecx, eax
mov dword [ebp - 0xbc], edx
xor eax, eax
mov dword [ebp - 0x15c], ecx
cmp edi, eax
jg 0x47a90f
jl 0x47a8eb
cmp dword [ebp - 0x14], eax
jae 0x47a90f
push 0x40
pop ecx
sub ecx, esi
or eax, 0xffffffff
or edx, 0xffffffff
call fcn.004cc330
mov ecx, dword [ebp - 0x15c]
or ecx, eax
or dword [ebp - 0xbc], edx
mov edx, dword [ebp - 0xbc]
mov eax, ecx
mov edi, edx
jmp 0x47a918
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x24]
mov edx, 0xf244
push 4
mov dword [ecx], eax
mov ax, word [ecx + 0x10]
and ax, dx
mov dword [ecx + 4], edi
pop edx
or ax, dx
mov word [ecx + 0x10], ax
jmp 0x47a06e
imul esi, dword [ebx + 4], 0x28
add esi, dword [ebp - 0x148]
mov ecx, esi
call fcn.0047387d
mov eax, dword [ebx + 8]
cdq
add dword [esi], eax
adc dword [esi + 4], edx
jmp 0x479ff6
imul esi, dword [ebx + 4], 0x28
push 4
pop edx
add esi, dword [ebp - 0x148]
movzx eax, word [esi + 0x10]
mov ecx, eax
test dl, al
jne 0x47a9aa
push dword [ebp - 0x14c]
mov dl, 0x43
mov ecx, esi
call fcn.004799e1
movzx eax, word [esi + 0x10]
pop ecx
push 4
pop edx
mov ecx, eax
test dl, al
jne 0x47a9aa
xor eax, eax
cmp dword [ebx + 8], eax
jne 0x47f469
mov ecx, dword [ebp - 0x170]
mov dword [ebp - 0x150], ecx
jmp 0x47a28b
mov eax, 0xf244
and ecx, eax
push 4
pop eax
or ecx, eax
mov word [esi + 0x10], cx
jmp 0x479ff6
imul ecx, dword [ebx + 4], 0x28
add ecx, esi
test byte [ecx + 0x10], 0x24
je 0x479d83
call fcn.004738a2
jmp 0x479d7d
imul esi, dword [ebx + 4], 0x28
mov eax, 0x400
add esi, dword [ebp - 0x148]
test word [esi + 0x10], ax
je 0x47aa05
mov ecx, esi
call fcn.004734f9
mov ecx, eax
mov dword [ebp - 0x150], ecx
test ecx, ecx
jne 0x47a28b
push dword [ebp - 0x14c]
mov dl, byte [ebx + 8]
mov ecx, esi
call fcn.004739f6
pop ecx
mov ecx, eax
mov dword [ebp - 0x150], ecx
test ecx, ecx
jne 0x47a28b
jmp 0x479ff6
imul edi, dword [ebx + 4], 0x28
add edi, esi
imul esi, dword [ebx + 0xc], 0x28
movzx eax, word [edi + 0x10]
add esi, dword [ebp - 0x148]
mov dword [ebp - 0x14], eax
movzx ecx, word [esi + 0x10]
mov eax, ecx
mov dword [ebp - 0x158], ecx
and eax, dword [ebp - 0x14]
mov dword [ebp - 0x15c], eax
test al, 4
je 0x47aabe
mov eax, dword [esi + 4]
mov ecx, dword [esi]
cmp eax, dword [edi + 4]
jl 0x47aa94
jg 0x47aa6b
cmp ecx, dword [edi]
jbe 0x47aa89
cmp byte [edx + 0x425df8], 0
jne 0x47f469
mov eax, dword [ebp - 0x154]
mov dword [ebp - 0x17c], eax
jmp 0x47a06e
cmp eax, dword [edi + 4]
jg 0x47aaad
jl 0x47aa94
cmp ecx, dword [edi]
jae 0x47aaad
cmp byte [edx + 0x425dec], 0
jne 0x47f469
or dword [ebp - 0x17c], 0xffffffff
jmp 0x47a06e
cmp byte [edx + 0x425df2], 0
jne 0x47f469
xor eax, eax
jmp 0x47aa7e
mov edx, dword [ebp - 0x14]
mov eax, ecx
or eax, edx
test al, 1
je 0x47ab27
movzx eax, word [ebx + 2]
test al, al
jns 0x47ab1d
mov eax, dword [ebp - 0x154]
test byte [ebp - 0x15c], al
je 0x47ab0a
test ecx, 0x100
jne 0x47ab0a
xor eax, eax
mov dword [ebp - 0x17c], eax
cmp dword [ebp - 0x17c], 0
movzx eax, byte [ebx]
jne 0x47ac52
mov al, byte [eax + 0x425df2]
jmp 0x47ac58
mov eax, ecx
not eax
and eax, 1
lea eax, [eax*2 - 1]
jmp 0x47ac39
push 0x10
pop ecx
test cl, al
jmp 0x47aa72
mov dl, byte [ebx + 2]
and dl, 0x47
cmp dl, 0x43
jb 0x47ab7b
mov edx, dword [ebp - 0x168]
test dl, al
je 0x47ac23
mov al, byte [ebp - 0x14]
and al, 0x2e
cmp al, dl
jne 0x47ab62
xor edx, edx
mov ecx, edi
call fcn.00479932
movzx ecx, word [esi + 0x10]
mov edx, dword [ebp - 0x168]
mov dword [ebp - 0x158], ecx
and cl, 0x2e
cmp cl, dl
jne 0x47ac23
xor edx, edx
mov ecx, esi
call fcn.00479932
jmp 0x47ac23
cmp dl, 0x42
jne 0x47ac23
mov edx, dword [ebp - 0x168]
test dl, al
je 0x47ac23
mov eax, dword [ebp - 0x14]
test dl, al
jne 0x47abe3
test al, 0x2c
je 0x47abe3
push dword [ebp - 0x154]
mov dl, byte [ebp - 0x14c]
mov ecx, edi
call fcn.00473546
movzx eax, word [edi + 0x10]
pop ecx
mov ecx, eax
xor ecx, dword [ebp - 0x14]
and ecx, 0xdbf
xor ecx, eax
movzx eax, cx
mov dword [ebp - 0x14], eax
cmp edi, esi
jne 0x47abdd
or eax, dword [ebp - 0x168]
movzx ecx, ax
mov dword [ebp - 0x158], ecx
jmp 0x47abe3
mov ecx, dword [ebp - 0x158]
mov eax, dword [ebp - 0x168]
test al, cl
jne 0x47ac23
test cl, 0x2c
je 0x47ac23
push dword [ebp - 0x154]
mov dl, byte [ebp - 0x14c]
mov ecx, esi
call fcn.00473546
movzx eax, word [esi + 0x10]
pop ecx
mov ecx, eax
xor ecx, dword [ebp - 0x158]
and ecx, 0xdbf
xor ecx, eax
movzx edx, cx
mov dword [ebp - 0x158], edx
push dword [ebx + 0x10]
mov edx, edi
mov ecx, esi
call fcn.00476e98
mov edx, dword [ebp - 0x14]
pop ecx
mov ecx, dword [ebp - 0x158]
mov dword [ebp - 0x17c], eax
test eax, eax
jns 0x47aaef
movzx eax, byte [ebx]
mov al, byte [eax + 0x425dec]
jmp 0x47ac58
mov al, byte [eax + 0x425df8]
mov word [esi + 0x10], cx
mov word [edi + 0x10], dx
test al, al
jne 0x47f469
jmp 0x47a06e
cmp dword [ebp - 0x17c], 0
je 0x47f469
jmp case.0x479d0d.89
mov eax, dword [ebp - 0x154]
test byte [ebx + 2], al
jne 0x47ac90
xor eax, eax
mov edi, eax
jmp 0x47ac98
mov edi, dword [ebx - 4]
push 4
pop eax
add edi, eax
mov edx, dword [ebx + 4]
mov ecx, dword [ebx + 0xc]
mov eax, dword [ebx + 0x10]
mov dword [ebp - 0x24], edx
mov edx, dword [ebx + 8]
mov dword [ebp - 0x15c], edx
xor edx, edx
mov dword [ebp - 0x174], ecx
mov esi, edx
mov dword [ebp - 0x18], eax
test ecx, ecx
jle 0x47a06e
lea edx, [eax + 0x14]
mov dword [ebp - 0xbc], edx
test edi, edi
je 0x47acd4
mov ecx, dword [edi + esi*4]
jmp 0x47acd6
mov ecx, esi
mov eax, dword [eax + 0x10]
mov edx, dword [ebp - 0xbc]
movzx eax, byte [esi + eax]
and eax, dword [ebp - 0x154]
mov dword [ebp - 0x158], eax
mov eax, dword [ebp - 0x15c]
push dword [edx]
add eax, ecx
imul eax, eax, 0x28
add eax, dword [ebp - 0x148]
mov dword [ebp - 0x18c], eax
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp - 0x18c]
add eax, ecx
imul eax, eax, 0x28
add eax, dword [ebp - 0x148]
mov ecx, eax
mov dword [ebp - 0x14], eax
call fcn.00476e98
pop ecx
mov ecx, eax
mov dword [ebp - 0x17c], ecx
test ecx, ecx
jne 0x47ad4d
push 4
pop eax
add dword [ebp - 0xbc], eax
inc esi
mov eax, dword [ebp - 0x18]
cmp esi, dword [ebp - 0x174]
jl 0x47accb
jmp 0x47a06e
mov eax, dword [ebp - 0x18]
mov edx, dword [ebp - 0x168]
mov eax, dword [eax + 0x10]
test byte [esi + eax], dl
je 0x47ad7f
mov eax, dword [ebp - 0x14]
mov edx, dword [ebp - 0x154]
test byte [eax + 0x10], dl
jne 0x47ad77
mov eax, dword [ebp - 0x18c]
test byte [eax + 0x10], dl
je 0x47ad7f
neg ecx
mov dword [ebp - 0x17c], ecx
cmp dword [ebp - 0x158], 0
mov esi, dword [ebp - 0x148]
je 0x47ad96
neg ecx
mov dword [ebp - 0x17c], ecx
mov edi, dword [ebp - 0x144]
jmp 0x479d7d
mov ecx, dword [ebp - 0x17c]
test ecx, ecx
jns 0x47adb1
imul ebx, dword [ebx + 4], 0x14
jmp 0x47adbd
jne 0x47adb9
imul ebx, dword [ebx + 8], 0x14
jmp 0x47adbd
imul ebx, dword [ebx + 0xc], 0x14
add ebx, eax
add ebx, 0xffffffec
jmp 0x479d83
imul ecx, dword [ebx + 4], 0x28
mov edx, dword [ebp - 0x168]
add ecx, esi
call fcn.004737e0
imul ecx, dword [ebx + 8], 0x28
mov esi, eax
mov edi, dword [ebp - 0x148]
mov edx, dword [ebp - 0x168]
add ecx, edi
call fcn.004737e0
imul ecx, esi, 3
cmp byte [ebx], 0x2c
jne 0x47ae02
mov al, byte [ecx + eax + 0x428a64]
jmp 0x47ae09
mov al, byte [ecx + eax + 0x4297f0]
imul esi, dword [ebx + 0xc], 0x28
add esi, edi
movzx ecx, word [esi + 0x10]
cmp al, byte [ebp - 0x168]
jne 0x47ae2a
mov eax, 0xf241
and ecx, eax
or ecx, dword [ebp - 0x154]
jmp 0x47ae3f
movzx eax, al
cdq
mov dword [esi], eax
mov eax, 0xf244
and ecx, eax
mov dword [esi + 4], edx
push 4
pop eax
or ecx, eax
mov word [esi + 0x10], cx
jmp 0x47a06e
imul ecx, dword [ebx + 4], 0x28
mov edx, dword [ebx + 0xc]
add ecx, esi
call fcn.004737e0
imul ecx, dword [ebx + 8], 0x28
mov edi, 0x9000
xor eax, dword [ebx + 0x10]
cdq
add ecx, esi
test word [ecx + 0x10], di
mov edi, dword [ebp - 0x144]
je 0x47ae78
push edx
push eax
jmp 0x47a25d
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp 0x47a26a
imul ecx, dword [ebx + 4], 0x28
mov edx, dword [ebp - 0x154]
add ecx, esi
imul esi, dword [ebx + 8], 0x28
add esi, dword [ebp - 0x148]
test byte [ecx + 0x10], dl
jne 0x47aed5
xor edx, edx
call fcn.004737e0
neg eax
mov ecx, 0x9000
sbb eax, eax
inc eax
test word [esi + 0x10], cx
je 0x47aec6
xor ecx, ecx
push ecx
push eax
mov ecx, esi
call fcn.00473b11
pop ecx
pop ecx
jmp 0x479ff6
mov dword [esi], eax
xor eax, eax
push 4
mov dword [esi + 4], eax
pop eax
jmp 0x479ff2
mov ecx, 0x9000
test word [esi + 0x10], cx
je 0x47aee7
mov ecx, esi
jmp 0x47a801
mov word [esi + 0x10], dx
jmp 0x479dea
imul edi, dword [ebx + 4], 0x28
mov eax, 0x9000
add edi, esi
imul esi, dword [ebx + 8], 0x28
add esi, dword [ebp - 0x148]
test word [esi + 0x10], ax
je 0x47af1a
mov ecx, esi
call fcn.0047367a
mov edx, dword [ebp - 0x154]
jmp 0x47af24
mov edx, dword [ebp - 0x154]
mov word [esi + 0x10], dx
test byte [edi + 0x10], dl
jne 0x47f292
push 4
pop eax
mov ecx, edi
mov word [esi + 0x10], ax
call fcn.00473753
not eax
not edx
mov dword [esi], eax
mov dword [esi + 4], edx
jmp 0x47a06e
mov edi, dword [edi + 0xd0]
mov ecx, dword [ebp - 0x144]
test edi, edi
je 0x47af94
mov eax, ebx
mov edi, dword [edi + 0x14]
sub eax, dword [ecx + 0x68]
cdq
idiv dword [ebp - 0x170]
mov edx, dword [ebp - 0x154]
mov ecx, eax
mov esi, ecx
and ecx, 7
shr esi, 3
shl edx, cl
movzx eax, byte [esi + edi]
test eax, edx
jne 0x47f469
bts eax, ecx
mov byte [esi + edi], al
mov esi, dword [ebp - 0x148]
jmp 0x47afa3
mov eax, dword [ecx + 0x68]
mov eax, dword [eax + 4]
cmp eax, dword [ebx + 4]
je 0x47f469
mov eax, dword [ebp - 0x144]
mov eax, dword [eax + 0x68]
mov eax, dword [eax + 4]
mov dword [ebx + 4], eax
jmp 0x47ad96
imul ecx, dword [ebx + 4], 0x28
mov edx, dword [ebx + 0xc]
add ecx, esi
call fcn.004737e0
test eax, eax
jmp 0x479d77
xor edx, edx
xor eax, eax
cmp dword [ebx + 0xc], eax
sete dl
imul ecx, dword [ebx + 4], 0x28
add ecx, esi
call fcn.004737e0
test eax, eax
je 0x47f469
jmp 0x479d7d
imul eax, dword [ebx + 4], 0x28
mov edx, dword [ebp - 0x154]
test byte [eax + esi + 0x10], dl
jne 0x47f469
jmp 0x47a0e4
mov ecx, dword [ebx + 4]
test ecx, ecx
js 0x47b049
mov eax, dword [edi + 0x60]
mov edx, dword [ebx + 0xc]
mov ecx, dword [eax + ecx*4]
movzx eax, word [ecx + 0x3e]
cmp edx, eax
jge 0x47b044
mov eax, dword [ecx + edx*4 + 0x58]
cmp eax, 0xc
jb 0x47b03b
mov ecx, dword [ebp - 0x154]
test cl, al
push 4
pop eax
push 8
pop ecx
cmove eax, ecx
jmp 0x47b066
movzx eax, byte [eax + 0x4256c8]
jmp 0x47b069
mov ecx, dword [ebx + 0x10]
jmp 0x47b05c
imul eax, dword [ebx + 0xc], 0x28
movzx eax, word [eax + esi + 0x10]
and eax, 0x3f
movzx ecx, byte [eax + 0x428b20]
mov eax, dword [ebp - 0x154]
dec ecx
shl ax, cl
movzx eax, ax
test word [ebx + 2], ax
jmp 0x479d77
imul eax, dword [ebx + 4], 0x28
mov edx, dword [ebp - 0x154]
test byte [eax + esi + 0x10], dl
jne 0x47b0a0
imul eax, dword [ebx + 0xc], 0x28
test byte [eax + esi + 0x10], dl
jne 0x47b0a0
imul ecx, dword [ebx + 8], 0x28
xor eax, eax
push eax
push eax
add ecx, esi
call fcn.00473b33
jmp 0x47a262
imul eax, dword [ebx + 8], 0x28
mov edi, 0x9000
add eax, esi
test word [eax + 0x10], di
mov edi, dword [ebp - 0x144]
je 0x47a7c6
mov ecx, eax
jmp 0x47a76d
imul eax, dword [ebx + 4], 0x28
mov edx, dword [ebp - 0x154]
test byte [eax + esi + 0x10], dl
je 0x47f469
jmp 0x47a0e4
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x60]
mov eax, dword [eax + ecx*4]
test eax, eax
je 0x479d7d
cmp byte [eax + 2], 0
je 0x479d7d
imul ecx, dword [ebx + 0xc], 0x28
add ecx, esi
call fcn.00473ac7
jmp 0x47f469
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x60]
mov esi, dword [eax + ecx*4]
mov ecx, dword [ebx + 8]
mov dword [ebp - 0x174], esi
mov dword [ebp - 0x160], ecx
mov eax, dword [esi + 0x20]
mov edx, dword [esi + 0x48]
mov dword [ebp - 0x158], edx
cmp eax, dword [edi + 0x1c]
je 0x47b18f
cmp byte [esi + 2], 0
jne 0x47b1f8
cmp byte [esi + 3], 0
mov edi, dword [esi + 0x2c]
je 0x47b16b
mov eax, dword [esi + 0x10]
test eax, eax
je 0x47b1bd
mov eax, dword [eax + ecx*4 + 4]
test eax, eax
je 0x47b1bd
mov esi, dword [esi + 0x28]
lea ecx, [eax - 1]
mov dword [ebp - 0x174], esi
mov dword [ebp - 0x160], ecx
mov edi, dword [ebp - 0x144]
jmp 0x47b11e
cmp byte [edi], 0
je 0x47b1d4
mov ecx, esi
call fcn.004768d3
mov ecx, eax
mov dword [ebp - 0x150], ecx
test ecx, ecx
jne 0x47f675
mov ecx, dword [ebp - 0x160]
jmp 0x47b163
mov eax, dword [esi + 0x2c]
cmp byte [eax], 0
je 0x47b2af
mov ecx, esi
call fcn.004768d3
mov ecx, eax
mov dword [ebp - 0x150], ecx
test ecx, ecx
jne 0x47a28b
mov ecx, dword [ebp - 0x160]
jmp 0x47b11e
mov ecx, esi
call fcn.00476893
mov ecx, eax
mov dword [ebp - 0x150], ecx
test ecx, ecx
jne 0x47f675
mov ecx, edi
call fcn.0046c45d
lea edx, [esi + 0x54]
mov dword [esi + 0x50], eax
mov ecx, edi
call fcn.0046c8d1
mov edx, dword [ebp - 0x158]
mov ecx, eax
mov edi, dword [ebp - 0x144]
jmp 0x47b221
cmp byte [esi], 3
jne 0x47b299
mov eax, dword [esi + 0x24]
test eax, eax
jle 0x47b299
imul ecx, eax, 0x28
add ecx, dword [ebp - 0x148]
mov eax, dword [ecx + 0xc]
mov dword [esi + 0x54], eax
mov dword [esi + 0x50], eax
mov ecx, dword [ecx + 8]
mov dword [esi + 0x4c], ecx
mov eax, dword [edi + 0x1c]
lea edi, [esi + 0x34]
mov dword [esi + 0x20], eax
movzx eax, byte [ecx]
mov dword [edx], eax
cmp eax, 0x80
jae 0x47b241
mov eax, dword [ebp - 0x154]
jmp 0x47b24c
mov ecx, dword [esi + 0x4c]
call fcn.0045d5bf
movzx eax, al
mov ecx, edi
lea edx, [esi + 0x54]
mov dword [ecx], eax
lea ecx, [esi + 0x3e]
mov esi, dword [ebp - 0x158]
xor eax, eax
mov word [ecx], ax
mov eax, dword [edx]
cmp eax, dword [esi]
mov esi, dword [ebp - 0x174]
jae 0x47b291
xor eax, eax
mov dword [edx], eax
mov edx, dword [ebp - 0x158]
mov dword [esi + 0x4c], eax
mov eax, dword [edx]
cmp eax, 0x18003
ja 0x47b493
cmp eax, dword [esi + 0x50]
jbe 0x47b2b2
jmp 0x47b493
mov edx, dword [esi + 0x4c]
jmp 0x47b327
imul ecx, dword [ebx + 0xc], 0x28
mov esi, dword [ebp - 0x148]
add ecx, esi
call fcn.00473ac7
jmp 0x479d7d
lea ecx, [esi + 0x3e]
movzx eax, word [ecx]
mov edi, dword [ebp - 0x160]
mov dword [ebp - 0x15c], ecx
cmp eax, edi
ja 0x47b4f7
lea edi, [esi + 0x34]
mov eax, dword [edi]
mov dword [ebp - 0x24], edi
cmp eax, dword [edx]
jae 0x47b4b1
mov edx, dword [esi + 0x4c]
mov dword [ebp - 0x18], edx
test edx, edx
jne 0x47b32a
push 0xa
xor eax, eax
lea edi, [ebp - 0x138]
pop ecx
rep stosd dword es:[edi], eax
mov ecx, dword [esi + 0x2c]
lea eax, [ebp - 0x138]
push eax
mov eax, dword [ebp - 0x158]
mov edx, dword [eax]
call fcn.00473fb2
pop ecx
mov ecx, eax
mov dword [ebp - 0x150], ecx
test ecx, ecx
jne 0x47f675
mov edx, dword [ebp - 0x130]
mov ecx, dword [ebp - 0x15c]
mov edi, dword [ebp - 0x24]
mov dword [ebp - 0x18], edx
movzx ebx, word [ecx]
mov eax, dword [ebp - 0x158]
mov edi, dword [edi]
add edi, edx
mov ecx, dword [eax + ebx*4]
xor eax, eax
mov dword [ebp - 0x16c], eax
mov eax, dword [ebp - 0x158]
mov dword [ebp - 0xbc], ecx
mov eax, dword [eax]
add eax, edx
lea edx, [esi + 0x58]
mov esi, dword [ebp - 0x16c]
lea edx, [edx + ebx*4]
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x18c], edx
movzx eax, byte [edi]
mov dword [ebp - 0xc0], eax
mov dword [edx], eax
mov eax, dword [ebp - 0xc0]
cmp eax, 0x80
jae 0x47b397
movzx eax, al
inc edi
movzx eax, byte [eax + 0x4257e8]
cdq
add ecx, eax
adc esi, edx
mov edx, dword [ebp - 0x18c]
jmp 0x47b3df
lea edx, [ebp - 0xc0]
mov ecx, edi
call fcn.0045d5bf
mov edx, dword [ebp - 0x18c]
movzx eax, al
add edi, eax
mov eax, dword [ebp - 0xc0]
mov dword [edx], eax
mov eax, dword [ebp - 0xc0]
cmp eax, 0x80
jb 0x47b3cb
add eax, 0xfffffff4
shr eax, 1
jmp 0x47b3d2
movzx eax, byte [eax + 0x4257e8]
mov ecx, dword [ebp - 0xbc]
add ecx, eax
push 0
pop eax
adc esi, eax
push 4
pop eax
add edx, eax
mov dword [ebp - 0xbc], ecx
mov eax, dword [ebp - 0x158]
inc ebx
mov dword [ebp - 0x18c], edx
mov dword [eax + ebx*4], ecx
cmp ebx, dword [ebp - 0x160]
ja 0x47b40b
cmp edi, dword [ebp - 0x24]
jb 0x47b367
mov edx, dword [ebp - 0x24]
mov dword [ebp - 0xbc], ebx
mov ebx, dword [ebp - 0x14]
mov dword [ebp - 0x16c], esi
mov esi, dword [ebp - 0x174]
cmp edi, edx
jb 0x47b462
ja 0x47b473
cmp ecx, dword [esi + 0x50]
jne 0x47b473
xor ecx, ecx
cmp dword [ebp - 0x16c], ecx
jne 0x47b473
mov eax, dword [ebp - 0xbc]
sub edi, dword [ebp - 0x18]
mov word [esi + 0x3e], ax
xor eax, eax
mov dword [esi + 0x34], edi
cmp dword [esi + 0x4c], eax
jne 0x47b45a
lea ecx, [ebp - 0x138]
call fcn.004736d4
mov ecx, dword [ebp - 0xc0]
jmp 0x47b4bb
mov eax, dword [ebp - 0x16c]
test eax, eax
jb 0x47b438
ja 0x47b473
cmp ecx, dword [esi + 0x50]
jbe 0x47b438
mov ecx, dword [ebp - 0x158]
xor eax, eax
cmp dword [ecx], eax
jne 0x47b483
mov edi, edx
jmp 0x47b43e
cmp dword [esi + 0x4c], eax
jne 0x47b493
lea ecx, [ebp - 0x138]
call fcn.004736d4
mov esi, dword [ebp - 0x13c]
mov eax, dword [esi + 0xc]
test eax, eax
jle 0x47f553
imul ebx, eax, 0x14
add esi, 0xffffffec
add ebx, esi
jmp 0x47a06e
xor eax, eax
mov ecx, eax
mov dword [ebp - 0xc0], ecx
movzx eax, word [esi + 0x3e]
cmp eax, dword [ebp - 0x160]
ja 0x47b501
imul ecx, dword [ebx + 0xc], 0x28
mov esi, dword [ebp - 0x148]
add ecx, esi
cmp byte [ebx + 1], 0xf6
jne 0x47b4ed
mov edx, dword [ebx + 0x10]
mov eax, 0x2000
push eax
call fcn.00473c5c
pop ecx
jmp 0x47ad96
call fcn.00473ac7
jmp 0x47ad96
mov ecx, dword [esi + edi*4 + 0x58]
mov dword [ebp - 0xc0], ecx
imul edi, dword [ebx + 0xc], 0x28
mov eax, 0x9000
add edi, dword [ebp - 0x148]
test word [edi + 0x10], ax
je 0x47b523
mov ecx, edi
call fcn.00473ac7
mov ecx, dword [ebp - 0xc0]
mov eax, dword [esi + 0x54]
mov esi, dword [ebp - 0x160]
mov edx, dword [ebp - 0x158]
cmp eax, dword [edx + esi*4 + 4]
mov esi, dword [ebp - 0x174]
jb 0x47b613
mov eax, dword [esi + 0x4c]
mov esi, dword [ebp - 0x160]
add eax, dword [edx + esi*4]
mov dword [ebp - 0x15c], eax
cmp ecx, 0xc
jae 0x47b569
mov edx, ecx
mov ecx, eax
push edi
call fcn.004769f9
pop ecx
jmp 0x47a06e
mov al, byte [ebp - 0x14c]
lea esi, [ecx - 0xc]
shr esi, 1
mov dword [edi + 0xc], esi
mov byte [edi + 0x12], al
lea edx, [esi + 2]
cmp dword [edi + 0x18], edx
jge 0x47b5cf
mov eax, dword [ebp - 0x140]
cmp esi, dword [eax + 0x78]
jg 0x47f680
mov eax, dword [ebp - 0x154]
mov ecx, edi
mov word [edi + 0x10], ax
xor eax, eax
push eax
call fcn.00473355
pop ecx
test eax, eax
je 0x47b5d5
mov edi, dword [ebp - 0x144]
mov ecx, dword [ebp - 0x140]
call fcn.00459aa2
push 0x42cf24
push edi
call fcn.00474562
pop ecx
pop ecx
push 7
jmp 0x47f695
mov eax, dword [edi + 0x20]
mov dword [edi + 8], eax
push esi
push dword [ebp - 0x15c]
push dword [edi + 8]
call sub.VCRUNTIME140.dll_memcpy
mov eax, dword [edi + 8]
xor edx, edx
add esp, 0xc
mov byte [esi + eax], dl
mov eax, dword [edi + 8]
mov byte [esi + eax + 1], dl
mov eax, dword [ebp - 0xc0]
and eax, dword [ebp - 0x154]
mov ax, word [eax*2 + 0x423f14]
mov word [edi + 0x10], ax
jmp 0x47a06e
mov al, byte [ebp - 0x14c]
mov byte [edi + 0x12], al
movzx eax, word [ebx + 2]
mov edx, dword [ebp - 0xc0]
test al, 0xc0
je 0x47b63d
cmp edx, 0xc
jb 0x47b639
mov ecx, dword [ebp - 0x154]
test cl, dl
je 0x47b64e
test al, al
js 0x47b64e
mov ecx, edx
call fcn.00476921
test eax, eax
jne 0x47b658
mov edx, dword [ebp - 0xc0]
mov ecx, 0x425178
jmp 0x47b55d
mov ecx, dword [ebp - 0x140]
cmp eax, dword [ecx + 0x78]
jg 0x47f680
mov ecx, dword [ebp - 0x160]
push edi
push eax
mov eax, dword [ebp - 0x158]
mov edx, dword [eax + ecx*4]
mov ecx, dword [esi + 0x2c]
call fcn.00473f26
pop ecx
pop ecx
mov ecx, eax
mov dword [ebp - 0x150], ecx
test ecx, ecx
jne 0x47f675
mov edx, dword [ebp - 0xc0]
mov ecx, dword [edi + 8]
push edi
call fcn.004769f9
pop ecx
mov ecx, 0xbfff
and word [edi + 0x10], cx
jmp 0x47a06e
imul edi, dword [ebx + 4], 0x28
xor edx, edx
mov eax, dword [ebx + 0x10]
mov dword [ebp - 0x15c], eax
mov ecx, dword [eax + 4]
add edi, esi
mov esi, edx
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x14], esi
cmp dx, word [eax + 0x22]
jge 0x47a06e
add ecx, 8
mov dword [ebp - 0x18], ecx
movzx eax, word [ecx + 6]
test al, 0x60
je 0x47b6f7
test al, 0x20
jne 0x47b7cb
xor eax, eax
cmp dword [ebx + 0xc], eax
jne 0x47b7c8
mov dl, byte [ecx]
mov ecx, edi
push dword [ebp - 0x14c]
call fcn.004799e1
mov eax, dword [ebp - 0x154]
pop ecx
movzx ecx, word [edi + 0x10]
mov dword [ebp - 0x24], ecx
movzx edx, cx
test al, cl
jne 0x47b7c5
mov esi, dword [ebp - 0x18]
mov esi, dword [esi - 4]
shr esi, 4
and esi, 0xf
lea eax, [esi - 1]
sub eax, 1
je 0x47b7b7
sub eax, 1
je 0x47b7b3
sub eax, 1
je 0x47b7b3
sub eax, 1
je 0x47b753
sub eax, 1
jne 0x47b7c2
mov eax, dword [ebp - 0x168]
jmp 0x47b7ba
push 4
pop eax
test al, cl
je 0x47b7ae
mov edx, dword [edi]
xor eax, eax
add edx, eax
mov eax, dword [edi + 4]
adc eax, 0x8000
cmp eax, 0xffff
ja 0x47b783
jb 0x47b776
cmp edx, 0xffffffff
ja 0x47b783
push 0x10
pop eax
or ecx, 0x20
mov esi, eax
movzx eax, cx
jmp 0x47b7a1
mov edx, dword [edi + 4]
mov ecx, dword [edi]
call fcn.004cc600
push 0x10
pop eax
mov esi, eax
movsd qword [edi], xmm0
mov eax, dword [ebp - 0x24]
push 8
pop ecx
or eax, ecx
movzx eax, ax
mov edx, edi
and eax, 0xfffb
mov word [edx + esi], ax
jmp 0x47b7c2
test cl, 0x28
jmp 0x47b7bc
push 4
jmp 0x47b7b9
push 0x10
pop eax
test al, cl
je 0x47f576
mov esi, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x18]
add edi, 0x28
push 0x10
pop eax
add ecx, eax
inc esi
mov eax, dword [ebp - 0x15c]
mov dword [ebp - 0x14], esi
mov dword [ebp - 0x18], ecx
movsx eax, word [eax + 0x22]
cmp esi, eax
jl 0x47b6dc
jmp 0x47a06e
imul esi, dword [ebx + 4], 0x28
mov edi, dword [ebx + 0x10]
add esi, dword [ebp - 0x148]
mov al, byte [edi]
push dword [ebp - 0x14c]
mov dl, al
mov ecx, esi
call fcn.004799e1
cmp byte [edi], 0x45
pop ecx
jne 0x47b870
movzx ecx, word [esi + 0x10]
push 4
pop eax
mov dword [ebp - 0x15c], ecx
test al, cl
je 0x47b870
mov edx, dword [esi]
xor eax, eax
add edx, eax
mov eax, dword [esi + 4]
adc eax, 0x8000
cmp eax, 0xffff
ja 0x47b84e
jb 0x47b83f
cmp edx, 0xffffffff
ja 0x47b84e
and ecx, 0xfffb
or ecx, 0x20
mov word [esi + 0x10], cx
jmp 0x47b870
mov edx, dword [esi + 4]
mov ecx, dword [esi]
call fcn.004cc600
mov eax, dword [ebp - 0x15c]
push 8
and eax, 0xfff9
movsd qword [esi], xmm0
pop ecx
or eax, ecx
mov word [esi + 0x10], ax
inc edi
mov al, byte [edi]
test al, al
je 0x47f292
add esi, 0x28
jmp 0x47b7fd
imul ecx, dword [ebx + 4], 0x28
xor eax, eax
mov edi, dword [ebx + 0x10]
mov esi, eax
imul eax, dword [ebx + 8], 0x28
xorps xmm0, xmm0
movlpd qword [ebp - 0x20], xmm0
mov dword [ebp - 0x158], esi
add ecx, dword [ebp - 0x148]
movlpd qword [ebp - 0x190], xmm0
add eax, ecx
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x15c], eax
imul eax, dword [ebx + 0xc], 0x28
add eax, dword [ebp - 0x148]
mov dword [ebp - 0x174], eax
test edi, edi
je 0x47b90d
push 4
lea esi, [ecx + 0x10]
pop ebx
push dword [ebp - 0x14c]
mov dl, byte [edi]
lea ecx, [esi - 0x10]
call fcn.004799e1
cmp byte [edi], 0x45
pop ecx
jne 0x47b8fb
movzx eax, word [esi]
test bl, al
je 0x47b8fb
and eax, 0xfffb
or eax, 0x20
mov word [esi], ax
inc edi
add esi, 0x28
cmp byte [edi], 0
jne 0x47b8d3
mov ebx, dword [ebp - 0x14]
mov esi, dword [ebp - 0x158]
mov edx, dword [ebp - 0x18c]
mov edi, dword [ebp - 0x15c]
mov ecx, dword [ebp - 0x1c]
add edi, 0xfffffff4
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0xbc], edx
mov edx, dword [ebp - 0x190]
mov dword [ebp - 0x16c], ecx
mov dword [ebp - 0x160], eax
mov dword [ebp - 0x18c], edx
movzx edx, word [edi - 0xc]
mov dword [ebp - 0x24], edi
mov dword [ebp - 0x1c], edx
test dl, 1
je 0x47b972
inc esi
mov eax, 0x400
mov dword [ebp - 0x158], esi
and edx, eax
movzx esi, dx
neg esi
sbb esi, esi
and esi, 0xa
mov edx, dword [ebp - 0x158]
jmp 0x47bba3
test dl, 0x24
je 0x47bae4
mov eax, dword [edi - 0x18]
xor ecx, ecx
mov esi, dword [edi - 0x1c]
cmp eax, ecx
jg 0x47b995
jl 0x47b98d
cmp esi, ecx
jae 0x47b995
mov ecx, esi
not eax
not ecx
jmp 0x47b997
mov ecx, esi
inc dword [ebp - 0x158]
test eax, eax
ja 0x47ba63
jb 0x47b9ac
cmp ecx, 0x7f
ja 0x47b9f1
mov edx, dword [ebp - 0x154]
mov eax, esi
and eax, edx
cmp eax, esi
jne 0x47b9d5
xor eax, eax
cmp eax, dword [edi - 0x18]
jne 0x47b9d5
mov eax, dword [ebp - 0x144]
cmp byte [eax + 0x93], 4
jb 0x47b9d5
lea esi, [ecx + 8]
jmp 0x47b9e6
add dword [ebp - 0x160], edx
mov esi, edx
push 0
pop ecx
adc dword [ebp - 0x16c], ecx
mov ecx, dword [ebp - 0x16c]
jmp 0x47b967
test eax, eax
ja 0x47ba63
jb 0x47b9ff
cmp ecx, 0x7fff
ja 0x47ba23
mov edx, dword [ebp - 0x168]
add dword [ebp - 0x160], edx
mov esi, edx
mov ecx, dword [ebp - 0x16c]
push 0
pop eax
adc ecx, eax
mov dword [ebp - 0x16c], ecx
jmp 0x47b967
test eax, eax
ja 0x47ba63
jb 0x47ba31
cmp ecx, 0x7fffff
ja 0x47ba50
add dword [ebp - 0x160], 3
mov ecx, dword [ebp - 0x16c]
push 0
pop eax
adc ecx, eax
mov dword [ebp - 0x16c], ecx
push 3
jmp 0x47bade
test eax, eax
ja 0x47ba63
jb 0x47ba5e
cmp ecx, 0x7fffffff
ja 0x47ba63
push 4
pop edx
jmp 0x47ba05
cmp eax, 0x7fff
ja 0x47ba93
jb 0x47ba71
cmp ecx, 0xffffffff
ja 0x47ba93
add dword [ebp - 0x160], 6
mov ecx, dword [ebp - 0x16c]
push 0
pop eax
adc ecx, eax
push 5
pop eax
mov dword [ebp - 0x16c], ecx
mov esi, eax
jmp 0x47b967
mov ecx, dword [ebp - 0x16c]
push 8
pop eax
add dword [ebp - 0x160], eax
push 0
pop eax
adc ecx, eax
mov dword [ebp - 0x16c], ecx
test dl, 0x20
je 0x47badc
mov edx, dword [edi - 0x18]
mov ecx, esi
call fcn.004cc600
mov eax, dword [ebp - 0x1c]
push 8
pop ecx
and eax, 0xffdf
movsd qword [edi - 0x1c], xmm0
or eax, ecx
mov ecx, dword [ebp - 0x16c]
mov word [edi - 0xc], ax
push 7
jmp 0x47bade
push 6
pop esi
jmp 0x47b967
test dl, 8
je 0x47bb0c
mov edx, dword [ebp - 0x158]
inc edx
add eax, 8
push 0
mov dword [ebp - 0x160], eax
pop eax
adc ecx, eax
push 7
mov dword [ebp - 0x16c], ecx
pop esi
jmp 0x47bb9d
mov ecx, dword [edi - 0x10]
mov eax, edx
shr eax, 1
and eax, 1
mov dword [ebp - 0x1c], ecx
bt edx, 0xa
lea esi, [ecx + 6]
lea esi, [eax + esi*2]
jae 0x47bb60
mov edx, dword [edi - 0x1c]
mov eax, dword [ebp - 0x160]
or eax, dword [ebp - 0x16c]
lea esi, [esi + edx*2]
je 0x47bb51
lea ecx, [edi - 0x1c]
call fcn.004734f9
test eax, eax
jne 0x47b5aa
mov ecx, dword [ebp - 0x1c]
add ecx, dword [edi - 0x1c]
jmp 0x47bb60
mov eax, edx
cdq
add dword [ebp - 0x18c], eax
adc dword [ebp - 0xbc], edx
add dword [ebp - 0x160], ecx
mov ecx, esi
mov edi, dword [ebp - 0x154]
push 0
pop eax
adc dword [ebp - 0x16c], eax
mov edx, eax
shr ecx, 7
jmp 0x47bb86
shrd ecx, edx, 7
inc edi
shr edx, 7
mov eax, ecx
or eax, edx
jne 0x47bb7e
mov edx, dword [ebp - 0x158]
mov ecx, dword [ebp - 0x16c]
add edx, edi
mov edi, dword [ebp - 0x24]
mov dword [ebp - 0x158], edx
mov eax, edi
mov dword [eax], esi
lea eax, [edi - 0x1c]
cmp eax, dword [ebp - 0x18]
je 0x47bbc3
mov eax, dword [ebp - 0x160]
sub edi, 0x28
mov esi, dword [ebp - 0x158]
jmp 0x47b940
cmp edx, 0x7e
jle 0x47bbf7
mov eax, edx
cdq
push edx
push eax
call fcn.0045d625
mov esi, eax
mov eax, dword [ebp - 0x158]
add eax, esi
mov dword [ebp - 0x158], eax
cdq
push edx
push eax
call fcn.0045d625
mov edx, dword [ebp - 0x158]
add esp, 0x10
cmp esi, eax
jge 0x47bbfe
inc edx
mov dword [ebp - 0x158], edx
mov eax, edx
cdq
mov edi, eax
mov ecx, edx
add edi, dword [ebp - 0x160]
mov eax, dword [ebp - 0x174]
mov esi, edi
adc ecx, dword [ebp - 0x16c]
add esi, dword [ebp - 0x18c]
mov eax, dword [eax + 0x18]
adc ecx, dword [ebp - 0xbc]
cdq
cmp ecx, edx
jg 0x47bc41
jl 0x47bc33
cmp esi, eax
ja 0x47bc41
mov ecx, dword [ebp - 0x174]
mov eax, dword [ecx + 0x20]
mov dword [ecx + 8], eax
jmp 0x47bc78
mov eax, dword [ebp - 0x140]
mov eax, dword [eax + 0x78]
cdq
cmp ecx, edx
jg 0x47f680
jl 0x47bc5d
cmp esi, eax
ja 0x47f680
mov ecx, dword [ebp - 0x174]
mov edx, edi
call fcn.00473451
test eax, eax
jne 0x47b5aa
mov ecx, dword [ebp - 0x174]
mov edx, dword [ebp - 0x18c]
push 0x10
pop eax
mov word [ecx + 0x10], ax
mov eax, edx
or eax, dword [ebp - 0xbc]
mov dword [ecx + 0xc], edi
je 0x47bc9d
mov eax, 0x410
mov dword [ecx], edx
mov word [ecx + 0x10], ax
mov eax, dword [ebp - 0x158]
mov esi, dword [ecx + 8]
lea ecx, [esi + eax]
mov dword [ebp - 0x158], ecx
cmp eax, 0x80
jge 0x47bcbb
mov byte [esi], al
inc esi
jmp 0x47bccf
cdq
mov ecx, esi
push edx
push eax
call fcn.0045d3e6
pop ecx
pop ecx
mov ecx, dword [ebp - 0x158]
add esi, eax
mov edi, dword [ebp - 0x18]
add edi, 0xc
mov eax, dword [edi + 0x10]
cmp eax, 7
ja 0x47bd23
mov byte [esi], al
inc esi
test eax, eax
je 0x47bd7c
mov edx, dword [edi - 0xc]
movzx eax, byte [eax + 0x4257e8]
mov dword [ebp - 0x24], edx
mov edx, dword [edi - 8]
mov ebx, dword [ebp - 0x24]
mov dword [ebp - 0x1c], eax
sub eax, 1
mov byte [eax + ecx], bl
mov ebx, dword [ebp - 0x14]
je 0x47bd1e
mov ebx, dword [ebp - 0x24]
shrd ebx, edx, 8
shr edx, 8
sub eax, 1
mov byte [eax + ecx], bl
jne 0x47bd0c
mov ebx, dword [ebp - 0x14]
add ecx, dword [ebp - 0x1c]
jmp 0x47bd4d
cmp eax, 0x80
jae 0x47bd55
mov byte [esi], al
inc esi
cmp eax, 0xe
jb 0x47bd7c
cmp dword [edi], 0
jle 0x47bd7c
push dword [edi]
push dword [edi - 4]
push ecx
call sub.VCRUNTIME140.dll_memcpy
mov ecx, dword [ebp - 0x158]
add esp, 0xc
add ecx, dword [edi]
mov dword [ebp - 0x158], ecx
jmp 0x47bd7c
xor ecx, ecx
push ecx
push eax
mov ecx, esi
call fcn.0045d3e6
pop ecx
add esi, eax
cmp dword [edi], 0
pop ecx
je 0x47bd76
push dword [edi]
push dword [edi - 4]
push dword [ebp - 0x158]
jmp 0x47bd3d
mov ecx, dword [ebp - 0x158]
mov eax, dword [ebp - 0x15c]
add eax, 0xffffffe4
cmp edi, eax
je 0x47f292
add edi, 0x28
jmp 0x47bcd5
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x60]
mov eax, dword [eax + ecx*4]
mov edx, dword [eax + 0x2c]
xor eax, eax
cmp dword [ebx + 0xc], eax
je 0x47bdb7
mov ecx, edx
call fcn.0046d0e5
mov dword [ebp - 0x68], eax
mov dword [ebp - 0x64], edx
jmp 0x47bddf
mov ecx, dword [ebp - 0x140]
lea eax, [ebp - 0x68]
xorps xmm0, xmm0
push eax
movlpd qword [ebp - 0x68], xmm0
call fcn.004718d2
pop ecx
mov ecx, eax
mov dword [ebp - 0x150], ecx
test ecx, ecx
jne 0x47a28b
mov edx, ebx
mov ecx, edi
call fcn.00479b23
mov ecx, dword [ebp - 0x68]
mov edx, dword [ebp - 0x64]
mov dword [eax], ecx
mov dword [eax + 4], edx
jmp 0x47df92
mov eax, dword [ebx + 4]
mov edi, dword [ebx + 0x10]
mov dword [ebp - 0x158], eax
test eax, eax
jne 0x47bee3
mov eax, dword [ebp - 0x140]
xor ecx, ecx
cmp dword [eax + 0xc4], ecx
jg 0x47f5bf
mov ecx, edi
call fcn.0045c53b
mov esi, eax
xor edx, edx
mov eax, dword [ebp - 0x140]
mov dword [ebp - 0x1c], esi
mov ecx, dword [eax + 0x1fc]
add ecx, dword [eax + 0x1f8]
push ecx
mov ecx, eax
call fcn.004b0e9c
pop ecx
mov ecx, eax
mov dword [ebp - 0x150], ecx
test ecx, ecx
jne 0x47f675
push ecx
mov ecx, dword [ebp - 0x140]
lea eax, [esi + 0x21]
push eax
call fcn.004597ba
mov esi, eax
pop ecx
pop ecx
test esi, esi
je 0x47c207
mov ecx, dword [ebp - 0x1c]
lea edx, [esi + 0x20]
inc ecx
mov dword [esi], edx
push ecx
push edi
push edx
call sub.VCRUNTIME140.dll_memcpy
mov edx, dword [ebp - 0x140]
add esp, 0xc
cmp byte [edx + 0x55], 0
je 0x47bea5
xor eax, eax
mov byte [edx + 0x55], al
mov eax, dword [ebp - 0x154]
mov byte [edx + 0x5d], al
jmp 0x47beab
inc dword [edx + 0x1f8]
mov eax, dword [edx + 0x1ec]
mov dword [esi + 0x18], eax
mov eax, dword [edx + 0x200]
mov ecx, dword [edx + 0x204]
mov dword [edx + 0x1ec], esi
mov dword [esi + 8], eax
mov dword [esi + 0xc], ecx
mov eax, dword [edx + 0x208]
mov ecx, dword [edx + 0x20c]
mov dword [esi + 0x10], eax
mov dword [esi + 0x14], ecx
jmp 0x47c207
xor eax, eax
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x140]
mov esi, dword [eax + 0x1ec]
jmp 0x47bf09
mov ecx, dword [esi]
mov edx, edi
call fcn.0045c824
test eax, eax
je 0x47bf2d
inc dword [ebp - 0x14]
mov esi, dword [esi + 0x18]
test esi, esi
jne 0x47bef6
push edi
mov edi, dword [ebp - 0x144]
push 0x42e650
push edi
call fcn.00474562
add esp, 0xc
mov ecx, dword [ebp - 0x154]
jmp 0x47a99f
mov edi, dword [ebp - 0x140]
xor eax, eax
mov edx, dword [ebp - 0x158]
mov ecx, dword [ebp - 0x154]
cmp dword [edi + 0xc4], eax
jle 0x47bf51
cmp edx, ecx
je 0x47f5dc
cmp dword [esi + 0x18], eax
jne 0x47bfd1
cmp byte [edi + 0x5d], al
je 0x47bfd1
mov dword [ebp - 0x160], ecx
cmp edx, ecx
jne 0x47bfdd
mov edi, dword [ebp - 0x144]
mov edx, ecx
mov ecx, edi
call fcn.00476282
mov dword [ebp - 0x150], eax
test eax, eax
jne 0x47c224
mov eax, dword [ebp - 0x140]
mov ecx, dword [ebp - 0x154]
mov byte [eax + 0x55], cl
mov ecx, edi
call fcn.004762f0
push 5
pop ecx
cmp eax, ecx
je 0x47f5e3
mov ecx, dword [edi + 0x24]
xor edx, edx
mov eax, dword [ebp - 0x140]
mov dword [ebp - 0x150], ecx
test ecx, ecx
je 0x47bfbd
mov byte [eax + 0x55], dl
jmp 0x47bfc0
mov byte [eax + 0x5d], dl
mov edi, dword [ebp - 0x154]
mov dword [ebp - 0x160], edi
jmp 0x47c129
mov dword [ebp - 0x160], eax
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x14], eax
mov eax, dword [edi + 0x1f8]
xor ecx, ecx
sub eax, dword [ebp - 0x14]
dec eax
mov dword [ebp - 0x14], eax
cmp edx, dword [ebp - 0x168]
jne 0x47c06d
mov eax, dword [edi + 0x18]
and eax, dword [ebp - 0x154]
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x15c], ecx
cmp dword [edi + 0x14], ecx
jle 0x47c078
xor eax, dword [ebp - 0x154]
mov edi, ecx
mov dword [ebp - 0x1c], eax
push eax
mov eax, dword [ebp - 0x140]
mov edx, 0x204
mov ecx, dword [eax + 0x10]
mov ecx, dword [ecx + edi + 4]
call fcn.0046c0ba
pop ecx
mov ecx, eax
mov dword [ebp - 0x150], ecx
test ecx, ecx
jne 0x47f675
mov eax, dword [ebp - 0x15c]
push 0x10
pop edx
add edi, edx
inc eax
mov edx, dword [ebp - 0x140]
mov dword [ebp - 0x15c], eax
cmp eax, dword [edx + 0x14]
mov eax, dword [ebp - 0x1c]
jl 0x47c016
mov edx, dword [ebp - 0x158]
mov edi, dword [ebp - 0x140]
jmp 0x47c07e
mov dword [ebp - 0x24], ecx
mov ecx, dword [ebp - 0x150]
jmp 0x47c081
mov ecx, dword [ebp - 0x150]
mov eax, dword [ebp - 0x14]
and dword [ebp - 0x15c], 0
cmp dword [edi + 0x14], 0
jle 0x47c0e2
xor ecx, ecx
mov edi, ecx
push eax
mov eax, dword [ebp - 0x140]
mov ecx, dword [eax + 0x10]
mov ecx, dword [ecx + edi + 4]
call fcn.0046c226
pop ecx
mov ecx, eax
mov dword [ebp - 0x150], ecx
test ecx, ecx
jne 0x47f675
mov eax, dword [ebp - 0x15c]
push 0x10
pop edx
add edi, edx
inc eax
mov edx, dword [ebp - 0x140]
mov dword [ebp - 0x15c], eax
cmp eax, dword [edx + 0x14]
mov edx, dword [ebp - 0x158]
mov eax, dword [ebp - 0x14]
jl 0x47c092
mov edi, dword [ebp - 0x140]
cmp dword [ebp - 0x24], 0
je 0x47c123
mov ecx, dword [edi + 4]
test ecx, ecx
je 0x47c10d
mov edx, dword [ebp - 0x154]
mov eax, dword [ecx + 0x98]
and eax, 0xfffffffd
or eax, edx
mov dword [ecx + 0x98], eax
mov ecx, dword [ecx + 8]
test ecx, ecx
jne 0x47c0f5
mov ecx, edi
call fcn.00490791
mov eax, dword [ebp - 0x154]
or dword [edi + 0x18], eax
mov ecx, dword [ebp - 0x150]
mov edi, dword [ebp - 0x160]
test ecx, ecx
jne 0x47f675
mov eax, dword [ebp - 0x140]
mov ecx, dword [eax + 0x1ec]
cmp ecx, esi
je 0x47c16b
mov edi, eax
mov eax, dword [ecx + 0x18]
mov edx, ecx
mov ecx, edi
mov dword [edi + 0x1ec], eax
call fcn.004594d9
dec dword [edi + 0x1f8]
mov ecx, dword [edi + 0x1ec]
cmp ecx, esi
jne 0x47c143
mov edi, dword [ebp - 0x160]
mov edx, dword [ebp - 0x158]
cmp edx, dword [ebp - 0x154]
jne 0x47c1a9
mov ecx, dword [ebp - 0x140]
mov edx, esi
mov eax, dword [esi + 0x18]
mov dword [ecx + 0x1ec], eax
call fcn.004594d9
test edi, edi
jne 0x47c207
mov ecx, dword [ebp - 0x140]
mov eax, ecx
mov edx, dword [ebp - 0x158]
dec dword [ecx + 0x1f8]
jmp 0x47c1eb
mov edx, dword [ebp - 0x140]
mov eax, dword [esi + 8]
mov ecx, dword [esi + 0xc]
mov dword [edx + 0x200], eax
mov eax, edx
mov dword [eax + 0x204], ecx
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0x14]
mov esi, edx
mov dword [esi + 0x208], eax
mov eax, edx
mov edx, dword [ebp - 0x158]
mov dword [eax + 0x20c], ecx
test edi, edi
je 0x47c1eb
cmp edx, dword [ebp - 0x168]
jne 0x47c207
mov ecx, dword [ebp - 0x14]
push ecx
mov ecx, eax
call fcn.004b0e9c
pop ecx
mov ecx, eax
mov dword [ebp - 0x150], ecx
test ecx, ecx
jne 0x47f675
mov edi, dword [ebp - 0x144]
cmp byte [edi + 0x95], 3
jne 0x479ff6
mov dword [ebp - 0x150], 0x65
mov edx, dword [ebp - 0x140]
mov esi, dword [ebp - 0x150]
mov eax, dword [ebp - 0x198]
cmp eax, dword [ebp - 0x184]
jb 0x47fa9b
mov ecx, dword [ebp - 0x178]
ja 0x47c256
cmp dword [ebp - 0x194], ecx
jb 0x47fa9b
mov eax, dword [edx + 0x174]
test eax, eax
je 0x47fa9b
add ecx, dword [edx + 0x17c]
push 0
mov dword [ebp - 0x178], ecx
pop ecx
push dword [edx + 0x178]
adc dword [ebp - 0x184], ecx
call eax
mov edx, dword [ebp - 0x140]
pop ecx
test eax, eax
je 0x47c230
or dword [ebp - 0x178], 0xffffffff
or dword [ebp - 0x184], 0xffffffff
push 9
pop ecx
mov dword [ebp - 0x150], ecx
jmp 0x47a291
xor eax, eax
mov dword [ebp - 0x18], eax
cmp dword [ebx + 8], eax
je 0x47c2d2
mov eax, dword [ebp - 0x140]
mov esi, 0x100000
mov ecx, dword [eax + 0x24]
mov edx, dword [eax + 0x20]
and ecx, 2
mov eax, edx
and eax, esi
or eax, ecx
jne 0x47f60b
mov eax, dword [ebp - 0x140]
mov esi, dword [ebx + 4]
shl esi, 4
add esi, dword [eax + 0x10]
mov edi, dword [esi + 4]
test edi, edi
je 0x47c3c0
mov edx, dword [ebx + 8]
lea eax, [ebp - 0x18]
push eax
mov ecx, edi
call fcn.0046b53b
pop ecx
mov ecx, eax
mov dword [ebp - 0x150], ecx
test ecx, ecx
jne 0x47f634
mov ecx, dword [ebp - 0x144]
test byte [ecx + 0x98], 0x20
je 0x47c3ce
cmp dword [ebx + 8], eax
je 0x47c3ce
mov edx, dword [ebp - 0x140]
cmp byte [edx + 0x55], al
je 0x47c344
mov eax, dword [ebp - 0x154]
cmp dword [edx + 0xc0], eax
jle 0x47c3ce
mov eax, dword [ecx + 0x30]
test eax, eax
jne 0x47c360
mov eax, dword [edx + 0x1f8]
inc dword [edx + 0x1fc]
add eax, dword [edx + 0x1fc]
mov dword [ecx + 0x30], eax
mov ecx, dword [ebp - 0x140]
dec eax
push eax
xor edx, edx
call fcn.004b0e9c
mov dword [ebp - 0x150], eax
pop ecx
test eax, eax
jne 0x47c390
mov eax, dword [ebp - 0x144]
mov ecx, edi
mov edx, dword [eax + 0x30]
call fcn.0046c1f0
mov dword [ebp - 0x150], eax
mov edi, dword [ebp - 0x140]
mov edx, dword [ebp - 0x144]
mov eax, dword [edi + 0x200]
mov ecx, dword [edi + 0x204]
mov dword [edx + 0x48], eax
mov dword [edx + 0x4c], ecx
mov eax, dword [edi + 0x208]
mov ecx, dword [edi + 0x20c]
mov dword [edx + 0x50], eax
mov dword [edx + 0x54], ecx
mov ecx, dword [ebp - 0x150]
test ecx, ecx
jne 0x47f675
xor eax, eax
cmp word [ebx + 2], ax
je 0x47a06e
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebx + 0xc]
jne 0x47c3f1
mov eax, dword [esi + 0xc]
mov eax, dword [eax + 4]
cmp eax, dword [ebx + 0x10]
je 0x47a06e
mov edi, dword [ebp - 0x144]
mov esi, dword [ebp - 0x140]
push dword [edi + 0x7c]
push esi
call fcn.00459573
pop ecx
pop ecx
mov edx, 0x42e760
mov ecx, esi
call fcn.00459993
mov dword [edi + 0x7c], eax
mov eax, esi
mov edx, dword [ebx + 4]
mov ecx, edx
add ecx, ecx
mov eax, dword [eax + 0x10]
mov eax, dword [eax + ecx*8 + 0xc]
mov eax, dword [eax]
cmp eax, dword [ebp - 0x18]
je 0x47c435
mov ecx, esi
call fcn.0049072d
mov eax, dword [edi + 0x98]
mov edx, esi
push 0x11
and eax, 0xffffffed
or eax, dword [ebp - 0x154]
pop ecx
mov dword [ebp - 0x150], ecx
mov dword [edi + 0x98], eax
jmp 0x47a291
mov ecx, dword [ebp - 0x140]
lea eax, [ebp - 0xac]
mov edx, dword [ebx + 0xc]
push eax
mov eax, dword [ebx + 4]
mov ecx, dword [ecx + 0x10]
add eax, eax
mov ecx, dword [ecx + eax*8 + 4]
call fcn.0047183f
pop ecx
mov edx, ebx
mov ecx, edi
call fcn.00479b23
mov ecx, eax
mov eax, dword [ebp - 0xac]
jmp 0x479e87
mov eax, dword [ebp - 0x140]
mov esi, dword [ebx + 4]
push dword [ebx + 0xc]
mov edx, dword [ebx + 8]
shl esi, 4
add esi, dword [eax + 0x10]
mov ecx, dword [esi + 4]
call fcn.00471881
mov edx, dword [ebp - 0x154]
pop ecx
mov dword [ebp - 0x150], eax
cmp dword [ebx + 8], edx
jne 0x47c4ea
movzx eax, word [ebx + 2]
mov ecx, dword [ebx + 0xc]
sub ecx, eax
mov eax, dword [esi + 0xc]
mov dword [eax], ecx
mov eax, dword [ebp - 0x140]
mov ecx, eax
or dword [eax + 0x18], edx
mov edx, dword [ebx + 4]
call fcn.0049a03d
mov edx, dword [ebp - 0x154]
jmp 0x47c4fe
mov eax, dword [ebp - 0x168]
cmp dword [ebx + 8], eax
jne 0x47c4fe
mov ecx, dword [esi + 0xc]
mov al, byte [ebx + 0xc]
mov byte [ecx + 0x4c], al
cmp dword [ebx + 4], edx
jne 0x47c52d
mov eax, dword [ebp - 0x140]
mov ecx, dword [eax + 4]
jmp 0x47c522
mov eax, dword [ecx + 0x98]
and eax, 0xfffffffd
or eax, edx
mov dword [ecx + 0x98], eax
mov ecx, dword [ecx + 8]
test ecx, ecx
jne 0x47c50e
and dword [edi + 0x98], 0xfffffffc
mov ecx, dword [ebp - 0x150]
jmp 0x47aa1e
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x60]
mov esi, dword [eax + ecx*4]
test esi, esi
je 0x47c55a
mov eax, dword [esi + 0x38]
cmp eax, dword [ebx + 8]
jne 0x47c55a
mov ecx, dword [esi + 0x2c]
call fcn.0046936e
jmp 0x47c681
mov cl, byte [ebp - 0x161]
mov eax, dword [edi + 0x98]
and al, 3
cmp al, byte [ebp - 0x154]
je 0x47f65d
mov esi, dword [ebp - 0x140]
xor eax, eax
mov edx, dword [ebx + 8]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x18], eax
mov eax, dword [ebx + 0xc]
mov dword [ebp - 0x24], eax
shl eax, 4
add eax, dword [esi + 0x10]
mov dword [ebp - 0x15c], edx
mov esi, dword [eax + 4]
mov dword [ebp - 0xbc], esi
cmp cl, 0x71
jne 0x47c5cf
movzx edi, word [ebx + 2]
mov eax, dword [eax + 0xc]
push 8
pop ecx
and edi, ecx
mov al, byte [eax + 0x4c]
push 4
pop ecx
or edi, ecx
mov ecx, dword [ebp - 0x144]
cmp al, byte [ecx + 0x93]
jae 0x47c5d3
mov byte [ecx + 0x93], al
jmp 0x47c5d3
xor eax, eax
mov edi, eax
push 0x10
pop eax
test byte [ebx + 2], al
je 0x47c5f3
imul esi, edx, 0x28
add esi, dword [ebp - 0x148]
mov ecx, esi
call fcn.0047387d
mov eax, dword [esi]
mov dword [ebp - 0x15c], eax
mov al, byte [ebx + 1]
cmp al, 0xf8
jne 0x47c606
mov eax, dword [ebx + 0x10]
mov dword [ebp - 0x18], eax
movzx eax, word [eax + 8]
jmp 0x47c612
cmp al, 0xfd
jne 0x47c60f
mov eax, dword [ebx + 0x10]
jmp 0x47c612
mov eax, dword [ebp - 0x1c]
mov edx, dword [ebx + 4]
xor ecx, ecx
push ecx
mov ecx, dword [ebp - 0x144]
push eax
call fcn.0047984f
mov esi, eax
pop ecx
pop ecx
test esi, esi
je 0x47b5aa
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0xbc]
mov byte [esi + 1], al
mov eax, dword [ebp - 0x154]
push 4
mov byte [esi + 2], al
pop eax
push dword [esi + 0x2c]
or dword [esi + 8], eax
mov eax, dword [ebp - 0x15c]
mov edx, eax
push dword [ebp - 0x18]
mov dword [esi + 0x38], eax
push edi
call fcn.0046c34b
mov edi, dword [ebp - 0x144]
add esp, 0xc
mov dword [ebp - 0x150], eax
mov eax, dword [ebp - 0x18]
mov dword [esi + 0x30], eax
cmp byte [ebx + 1], 0xf8
setne al
mov byte [esi + 4], al
mov cl, byte [ebx + 2]
mov eax, dword [esi + 0x2c]
and cl, 3
mov byte [eax + 3], cl
jmp 0x47c52d
mov ecx, dword [ebx + 8]
mov eax, dword [edi + 0x60]
mov edx, dword [ebx + 4]
mov edi, dword [eax + ecx*4]
xor eax, eax
mov ecx, dword [ebp - 0x144]
push eax
movsx eax, word [edi + 0x3c]
push eax
call fcn.0047984f
mov esi, eax
pop ecx
pop ecx
test esi, esi
je 0x47b5aa
mov edx, dword [esi + 8]
mov eax, dword [ebp - 0x154]
or edx, eax
mov byte [esi + 2], al
mov dword [esi + 8], edx
mov eax, dword [edi + 0x30]
mov dword [esi + 0x30], eax
mov al, byte [edi + 4]
mov byte [esi + 4], al
mov eax, dword [edi + 0x38]
mov dword [esi + 0x38], eax
mov ecx, dword [edi + 8]
push 4
pop eax
xor ecx, edx
and ecx, eax
xor ecx, edx
mov dword [esi + 8], ecx
mov eax, dword [edi + 0x10]
push 8
mov dword [esi + 0x10], eax
pop eax
or ecx, eax
mov dword [esi + 8], ecx
or dword [edi + 8], eax
push dword [esi + 0x2c]
mov edx, dword [esi + 0x38]
push dword [esi + 0x30]
mov ecx, dword [esi + 0x10]
push 4
pop eax
push eax
call fcn.0046c34b
add esp, 0xc
mov dword [ebp - 0x150], eax
jmp 0x47a06e
mov eax, dword [ebx + 0xc]
xor ecx, ecx
test eax, eax
jle 0x47c73f
imul eax, eax, 0x28
mov dword [eax + esi + 0xc], ecx
imul eax, dword [ebx + 0xc], 0x28
mov dword [eax + esi + 8], 0x420b82
mov edx, dword [ebx + 4]
mov eax, dword [edi + 0x60]
mov esi, dword [eax + edx*4]
test esi, esi
je 0x47c78b
push 8
pop eax
test byte [esi + 8], al
jne 0x47c78b
movsx eax, word [esi + 0x3c]
cmp dword [ebx + 8], eax
jg 0x47c78b
mov edx, dword [esi + 0x38]
mov dword [esi + 0x18], ecx
mov dword [esi + 0x1c], ecx
mov dword [esi + 0x20], ecx
push ecx
mov ecx, dword [esi + 0x10]
call fcn.00471606
pop ecx
mov ecx, eax
mov dword [ebp - 0x150], ecx
mov dword [ebp - 0x1c], ecx
test ecx, ecx
jne 0x47a28b
jmp 0x47c8a5
push ecx
push dword [ebx + 8]
mov ecx, edi
call fcn.0047984f
mov esi, eax
pop ecx
pop ecx
test esi, esi
je 0x47b5b0
mov ecx, dword [esi + 8]
lea edi, [esi + 0x10]
or ecx, dword [ebp - 0x154]
xor edx, edx
push 0x41e
push 5
mov dword [esi + 8], ecx
movzx eax, word [ebx + 2]
pop ecx
or eax, ecx
push eax
mov eax, dword [ebp - 0x140]
push edi
push eax
mov ecx, dword [eax]
call fcn.0046a83d
mov ecx, eax
add esp, 0x10
mov dword [ebp - 0x150], ecx
test ecx, ecx
jne 0x47f675
mov edx, dword [ebp - 0x154]
mov ecx, dword [edi]
push eax
call fcn.0046b53b
mov edx, eax
mov dword [ebp - 0x150], edx
pop ecx
test edx, edx
jne 0x47c87d
mov eax, dword [ebx + 0x10]
mov ecx, dword [edi]
mov dword [ebp - 0x1c], eax
mov dword [esi + 0x30], eax
test eax, eax
je 0x47c851
movzx eax, word [ebx + 2]
lea edx, [esi + 0x38]
or eax, dword [ebp - 0x168]
push eax
call fcn.00471433
mov edx, eax
mov dword [ebp - 0x150], edx
pop ecx
test edx, edx
jne 0x47c84d
push dword [esi + 0x2c]
mov edx, dword [esi + 0x38]
push dword [ebp - 0x1c]
mov ecx, dword [edi]
push 4
pop eax
push eax
call fcn.0046c34b
mov edx, eax
add esp, 0xc
mov dword [ebp - 0x150], edx
xor eax, eax
jmp 0x47c87a
push dword [esi + 0x2c]
mov edx, dword [ebp - 0x154]
xor eax, eax
push eax
push 4
pop eax
push eax
mov dword [esi + 0x38], edx
call fcn.0046c34b
mov edx, eax
add esp, 0xc
mov eax, dword [ebp - 0x154]
mov dword [ebp - 0x150], edx
mov byte [esi + 4], al
push 8
pop eax
xor ecx, ecx
cmp word [ebx + 2], ax
push 4
pop eax
cmovne ecx, eax
mov eax, dword [esi + 8]
and eax, 0xfffffffb
or ecx, eax
mov dword [esi + 8], ecx
test edx, edx
jne 0x47f667
mov edi, dword [ebp - 0x144]
mov eax, dword [ebp - 0x154]
mov byte [esi + 2], al
jmp 0x479ff6
push dword [ebp - 0x154]
mov edx, dword [ebx + 4]
mov ecx, edi
push dword [ebx + 8]
call fcn.0047984f
pop ecx
pop ecx
test eax, eax
je 0x47b5b0
mov ecx, dword [ebx + 0x10]
mov dword [eax + 0x30], ecx
mov edx, dword [ebx + 0xc]
mov ecx, dword [ebp - 0x140]
push eax
call fcn.00480d0d
pop ecx
jmp 0x47a27b
mov eax, dword [edi + 0x60]
mov ecx, dword [ebx + 4]
mov edx, dword [eax + ecx*4]
mov edi, dword [edx + 0x18]
mov ecx, edi
mov esi, dword [edx + 0x1c]
mov eax, esi
add ecx, dword [ebp - 0x154]
mov dword [edx + 0x18], ecx
adc eax, 0
or edi, esi
mov dword [edx + 0x1c], eax
je 0x47f469
jmp 0x47a06e
mov edx, dword [ebx + 4]
mov ecx, edi
push 3
push dword [ebx + 0xc]
call fcn.0047984f
pop ecx
pop ecx
test eax, eax
je 0x47b5b0
mov edx, dword [ebp - 0x154]
mov byte [eax + 2], dl
mov ecx, dword [ebx + 8]
mov dword [eax + 0x24], ecx
mov byte [eax + 4], dl
mov dword [eax + 0x2c], 0x4d1110
jmp 0x479d7d
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x60]
mov edx, dword [eax + ecx*4]
test edx, edx
je 0x47c965
mov ecx, edi
call fcn.00475a64
mov ecx, dword [ebx + 4]
xor edx, edx
mov eax, dword [edi + 0x60]
mov dword [eax + ecx*4], edx
jmp 0x479d7d
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x60]
mov edi, dword [eax + ecx*4]
xor ecx, ecx
mov dword [ebp - 0x14], ecx
mov word [edi + 2], cx
mov dword [edi + 0x20], ecx
cmp byte [edi + 4], cl
je 0x47cad2
imul esi, dword [ebx + 0xc], 0x28
add esi, dword [ebp - 0x148]
movzx eax, word [esi + 0x10]
mov dword [ebp - 0x1c], eax
and al, 0x2e
cmp al, byte [ebp - 0x168]
jne 0x47c9b7
xor edx, edx
mov ecx, esi
call fcn.00479932
mov ecx, esi
call fcn.00473753
movzx ecx, word [esi + 0x10]
mov dword [ebp - 0xbc], edx
mov edx, dword [ebp - 0x1c]
mov dword [ebp - 0x18], eax
mov word [esi + 0x10], dx
test cl, 0x24
jne 0x47ca63
push 8
pop eax
test al, cl
jne 0x47ca1f
mov eax, dword [ebp - 0x154]
test al, cl
jne 0x47f469
push 0x17
pop ecx
cmp dword [ebp - 0x158], ecx
jae 0x47f469
mov ecx, dword [edi + 0x2c]
lea edx, [ebp - 0x2c]
call fcn.0046cb85
mov ecx, eax
mov dword [ebp - 0x150], ecx
test ecx, ecx
jne 0x47f675
jmp 0x47cbc5
push dword [ebp - 0xbc]
movsd xmm1, qword [esi]
push dword [ebp - 0x18]
call fcn.00476e2a
pop ecx
pop ecx
test eax, eax
jle 0x47ca4a
mov eax, dword [ebp - 0x158]
mov ecx, dword [ebp - 0x154]
test cl, al
jne 0x47ca63
dec eax
jmp 0x47ca5d
jns 0x47ca63
mov eax, dword [ebp - 0x158]
mov ecx, dword [ebp - 0x154]
test cl, al
je 0x47ca63
inc eax
mov dword [ebp - 0x158], eax
lea eax, [ebp - 0x2c]
xor edx, edx
push eax
push dword [ebp - 0xbc]
lea esi, [edi + 0x2c]
push dword [ebp - 0x18]
mov ecx, dword [esi]
call fcn.0046cb9f
mov ecx, eax
add esp, 0xc
mov eax, dword [ebp - 0x18]
mov dword [edi + 0x40], eax
mov eax, dword [ebp - 0xbc]
mov dword [ebp - 0x150], ecx
mov dword [edi + 0x44], eax
test ecx, ecx
jne 0x47f675
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x158]
push 0x17
pop ecx
cmp eax, ecx
mov ecx, dword [ebp - 0x2c]
jl 0x47cb7d
test ecx, ecx
js 0x47cb6d
jne 0x47cac8
cmp eax, 0x18
je 0x47cb6d
xor eax, eax
mov dword [ebp - 0x2c], eax
jmp 0x47cbd2
lea esi, [edi + 0x2c]
mov eax, dword [esi]
push 0
mov al, byte [eax + 3]
and al, 2
mov byte [ebp - 0x161], al
pop eax
setne al
mov dword [ebp - 0x14], eax
mov eax, dword [edi + 0x30]
mov dword [ebp - 0xe8], eax
mov ax, word [ebx + 0x10]
mov word [ebp - 0xd4], ax
lea eax, [edx - 1]
and al, byte [ebp - 0x154]
lea edx, [ebp - 0xe8]
neg al
mov byte [ebp - 0xce], cl
sbb al, al
and al, 0xfe
inc al
mov byte [ebp - 0xd2], al
imul eax, dword [ebx + 0xc], 0x28
add eax, dword [ebp - 0x148]
mov dword [ebp - 0xe4], eax
lea eax, [ebp - 0x2c]
mov ecx, dword [esi]
push eax
call fcn.0046cdfd
pop ecx
mov ecx, eax
mov dword [ebp - 0x150], ecx
test ecx, ecx
jne 0x47f675
cmp byte [ebp - 0x161], al
je 0x47ca9e
mov edx, dword [ebp - 0x14]
mov dword [ebp - 0x14], edx
cmp byte [ebp - 0xce], al
je 0x47cbc8
jmp 0x47caa1
xor eax, eax
xor edx, edx
mov dword [ebp - 0x2c], eax
mov ecx, dword [esi]
call fcn.0046d21f
jmp 0x47cb9f
test ecx, ecx
jg 0x47cb91
jne 0x47cb88
cmp eax, 0x15
je 0x47cb91
mov ecx, dword [esi]
call fcn.0046d0dd
jmp 0x47cbc2
xor eax, eax
xor edx, edx
mov dword [ebp - 0x2c], eax
mov ecx, dword [esi]
call fcn.0046d32c
mov ecx, eax
mov dword [ebp - 0x150], ecx
test ecx, ecx
je 0x47cbc5
cmp ecx, 0x65
jne 0x47f675
xor eax, eax
mov dword [ebp - 0x150], eax
mov eax, dword [ebp - 0x154]
mov dword [ebp - 0x2c], eax
mov edx, dword [ebp - 0x14]
cmp dword [ebp - 0x2c], 0
jne 0x47f469
mov esi, dword [ebp - 0x148]
test edx, edx
je 0x47ad96
add ebx, dword [ebp - 0x170]
jmp 0x47ad96
mov eax, dword [edi + 0x60]
mov ecx, dword [ebx + 0x18]
mov esi, dword [eax + ecx*4]
mov eax, dword [esi + 0x2c]
cmp byte [eax], 0
jne 0x479ff6
mov eax, dword [esi + 0x30]
xor ecx, ecx
mov edi, dword [ebx + 4]
mov dword [ebp - 0xe8], eax
mov ax, word [ebx + 0x24]
mov word [ebp - 0xd4], ax
imul eax, dword [ebx + 0x20], 0x28
mov byte [ebp - 0xd2], cl
mov dword [ebp - 0x60], ecx
add eax, dword [ebp - 0x148]
mov dword [ebp - 0xe4], eax
mov ecx, dword [ebp - 0x140]
lea eax, [ebp - 0x60]
push eax
lea eax, [ebp - 0xe8]
mov edx, esi
push eax
call fcn.004779ac
pop ecx
pop ecx
mov ecx, eax
mov dword [ebp - 0x150], ecx
test ecx, ecx
jne 0x47f675
mov eax, dword [ebp - 0x60]
xor edx, edx
test eax, eax
jle 0x47cc6d
cmp word [ebx + 2], dx
je 0x47cca6
test eax, eax
jns 0x47f469
test edi, edi
jle 0x47f292
mov ecx, dword [esi + 0x2c]
dec edi
mov dword [esi + 0x20], edx
xor edx, edx
call fcn.0046d21f
mov ecx, eax
mov dword [ebp - 0x150], ecx
test ecx, ecx
je 0x47cc32
cmp ecx, 0x65
jne 0x47f675
xor eax, eax
mov dword [ebp - 0x150], eax
add ebx, dword [ebp - 0x170]
jmp 0x47f469
mov eax, dword [edi + 0x60]
mov ecx, dword [ebx + 4]
mov ecx, dword [eax + ecx*4]
movzx eax, word [ecx + 0xc]
cmp eax, dword [ebx + 8]
jge 0x47ccd0
mov ax, word [ebx + 8]
mov word [ecx + 0xc], ax
jmp 0x479d7d
cmp eax, dword [ebx + 0xc]
jle 0x479d7d
mov ax, word [ebx + 0xc]
jmp 0x47ccc7
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x60]
mov eax, dword [eax + ecx*4]
test eax, eax
je case.0x479d0d.9
cmp byte [eax + 2], 0
je 0x479d7d
jmp case.0x479d0d.9
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x60]
mov eax, dword [eax + ecx*4]
movzx eax, word [eax + 0xc]
cmp eax, dword [ebx + 0x10]
jge 0x479d7d
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x60]
mov esi, dword [eax + ecx*4]
imul eax, dword [ebx + 0xc], 0x28
mov ecx, dword [ebp - 0x148]
add ecx, eax
movzx eax, word [ebx + 0x10]
mov dword [ebp - 0xe4], ecx
mov word [ebp - 0xd4], ax
test ax, ax
je 0x47cd6e
mov eax, dword [esi + 0x30]
lea edi, [esi + 0x24]
mov dword [ebp - 0xe8], eax
lea edx, [ebp - 0xe8]
xor eax, eax
mov byte [ebp - 0xd2], al
mov ecx, dword [esi + 0x2c]
push edi
call fcn.0046cdfd
pop ecx
mov ecx, eax
mov dword [ebp - 0x150], ecx
jmp 0x47cddf
mov eax, 0x400
test word [ecx + 0x10], ax
je 0x47cd86
call fcn.004734f9
test eax, eax
jne 0x47b5b0
mov ecx, dword [esi + 0x30]
call fcn.00476b55
mov edi, eax
test edi, edi
je 0x47b5aa
mov edx, dword [ebp - 0xe4]
mov ecx, dword [esi + 0x30]
push edi
push dword [edx + 8]
mov edx, dword [edx + 0xc]
call fcn.00476bab
xor eax, eax
mov edx, edi
mov byte [edi + 0x16], al
lea eax, [esi + 0x24]
mov ecx, dword [esi + 0x2c]
push eax
call fcn.0046cdfd
mov ecx, dword [ebp - 0x140]
add esp, 0xc
mov edx, edi
mov dword [ebp - 0x150], eax
call fcn.004594d9
mov ecx, dword [ebp - 0x150]
lea edi, [esi + 0x24]
test ecx, ecx
jne 0x47f675
mov ecx, dword [edi]
test ecx, ecx
setne al
xor edx, edx
mov byte [esi + 2], al
mov byte [esi + 3], dl
mov dword [esi + 0x20], edx
mov al, byte [ebx]
cmp al, 0x1d
jne 0x47ce06
test ecx, ecx
jmp 0x47c90f
test ecx, ecx
jne 0x47f469
cmp al, 0x1b
jne 0x47ce42
mov ecx, edx
movzx edx, word [ebp - 0xd4]
test edx, edx
je 0x47f292
mov eax, dword [ebp - 0xe4]
add eax, 0x10
test byte [eax], 1
jne 0x47f469
inc ecx
add eax, 0x28
cmp ecx, edx
jl 0x47ce2c
jmp 0x47a06e
cmp byte [ebx], 0x1a
jne 0x47f292
mov ax, word [ebx + 0x10]
mov word [esi + 0xc], ax
jmp 0x47a06e
imul esi, dword [ebx + 0xc], 0x28
add esi, dword [ebp - 0x148]
test byte [esi + 0x10], 0x24
jne 0x47cea4
push 0xa
pop ecx
push dword [ebp - 0x14c]
lea edi, [ebp - 0xa0]
mov dl, 0x43
rep movsd dword es:[edi], dword [esi]
lea ecx, [ebp - 0xa0]
call fcn.004799e1
pop ecx
push 4
pop eax
test byte [ebp - 0x90], al
je 0x47f469
mov edi, dword [ebp - 0xa0]
mov edx, dword [ebp - 0x9c]
jmp 0x47ceb5
mov esi, dword [ebp - 0x148]
imul eax, dword [ebx + 0xc], 0x28
mov edi, dword [eax + esi]
mov edx, dword [eax + esi + 4]
mov dword [ebp - 0x15c], edx
mov eax, dword [ebp - 0x144]
mov ecx, dword [ebx + 4]
mov eax, dword [eax + 0x60]
mov esi, dword [eax + ecx*4]
xor eax, eax
mov ecx, dword [esi + 0x2c]
mov dword [ebp - 0x50], eax
lea eax, [ebp - 0x50]
push eax
push edx
push edi
xor edx, edx
call fcn.0046cb9f
mov ecx, eax
mov dword [esi + 0x40], edi
mov eax, dword [ebp - 0x15c]
xor edx, edx
mov dword [esi + 0x44], eax
add esp, 0xc
mov word [esi + 2], dx
mov dword [esi + 0x20], edx
mov eax, dword [ebp - 0x50]
mov dword [esi + 0x24], eax
mov dword [ebp - 0x150], ecx
cmp dword [ebp - 0x50], edx
je 0x47cf25
cmp dword [ebx + 8], edx
jne 0x47f469
mov ecx, 0x17754
call fcn.004c5cb7
mov ecx, eax
mov dword [ebp - 0x150], ecx
mov edi, dword [ebp - 0x144]
jmp 0x47aa1e
mov edx, ebx
mov ecx, edi
call fcn.00479b23
mov edx, dword [ebx + 4]
mov ecx, dword [edi + 0x60]
push 0
mov ecx, dword [ecx + edx*4]
mov edx, dword [ecx + 0x18]
mov ecx, dword [ecx + 0x1c]
mov dword [eax + 4], ecx
mov dword [eax], edx
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x60]
mov eax, dword [eax + ecx*4]
mov ecx, dword [ebp - 0x154]
add dword [eax + 0x18], ecx
pop ecx
adc dword [eax + 0x1c], ecx
jmp 0x479d7d
xorps xmm0, xmm0
xor eax, eax
mov edx, ebx
movlpd qword [ebp - 0x28], xmm0
mov ecx, edi
mov dword [ebp - 0x14], eax
call fcn.00479b23
mov edx, dword [ebx + 4]
mov ecx, dword [edi + 0x60]
mov dword [ebp - 0x15c], eax
mov eax, dword [ebp - 0x168]
mov edi, dword [ecx + edx*4]
mov dword [ebp - 0x1c], edi
test byte [edi + 8], al
jne 0x47d022
mov ecx, dword [edi + 0x2c]
cmp byte [ecx], 0
jne 0x47cfe4
push 8
pop eax
test byte [ecx + 1], al
je 0x47cfe4
xor eax, eax
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x150], eax
mov ecx, dword [edi + 0x2c]
call fcn.0046c44d
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x24], edx
cmp edx, 0x7fffffff
jl 0x47d011
jg 0x47cfd9
cmp eax, 0xffffffff
jb 0x47d011
mov eax, dword [ebp - 0x168]
or dword [edi + 8], eax
jmp 0x47d022
lea edx, [ebp - 0x14]
call fcn.0046cb3b
mov ecx, eax
mov dword [ebp - 0x150], ecx
test ecx, ecx
jne 0x47f675
cmp dword [ebp - 0x14], eax
je 0x47cfbc
mov eax, dword [ebp - 0x154]
mov dword [ebp - 0x28], eax
xor eax, eax
mov dword [ebp - 0x24], eax
jmp 0x47d022
add eax, dword [ebp - 0x154]
push 0
pop ecx
adc edx, ecx
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x24], edx
mov ecx, dword [ebx + 0xc]
test ecx, ecx
je 0x47d0b6
mov eax, dword [ebp - 0x144]
mov eax, dword [eax + 0xd0]
test eax, eax
jne 0x47d09b
imul esi, ecx, 0x28
add esi, dword [ebp - 0x148]
mov ecx, esi
call fcn.0047387d
mov ecx, dword [esi]
mov edx, dword [esi + 4]
cmp ecx, 0xffffffff
jne 0x47d063
cmp edx, 0x7fffffff
je 0x47d11c
mov eax, dword [ebp - 0x168]
test byte [edi + 8], al
jne 0x47d11c
add ecx, dword [ebp - 0x154]
mov edi, dword [ebp - 0x24]
push 0
pop eax
adc edx, eax
cmp edi, edx
jg 0x47d0ab
jl 0x47d08d
mov eax, dword [ebp - 0x28]
cmp eax, ecx
jae 0x47d0ae
mov eax, ecx
mov edi, edx
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x24], edi
jmp 0x47d0ae
mov eax, ecx
mov ecx, dword [eax + 4]
test ecx, ecx
jne 0x47d099
imul esi, dword [ebx + 0xc], 0x28
add esi, dword [eax + 0xc]
jmp 0x47d046
mov eax, dword [ebp - 0x28]
mov dword [esi + 4], edi
mov edi, dword [ebp - 0x1c]
mov dword [esi], eax
mov eax, dword [ebp - 0x168]
test byte [edi + 8], al
je 0x47d12a
xor eax, eax
mov esi, eax
lea eax, [ebp - 0x28]
push eax
push 8
pop eax
push eax
call fcn.0045bccd
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x28]
and eax, 0x3fffffff
add ecx, dword [ebp - 0x154]
push 0
pop edx
adc eax, edx
mov dword [ebp - 0x28], ecx
lea edx, [ebp - 0x14]
mov dword [ebp - 0x24], eax
push edx
push eax
push ecx
mov ecx, dword [edi + 0x2c]
xor edx, edx
call fcn.0046cb9f
mov ecx, eax
add esp, 0x14
mov dword [ebp - 0x150], ecx
test ecx, ecx
jne 0x47f675
cmp dword [ebp - 0x14], eax
jne 0x47d12a
inc esi
cmp esi, 0x64
jl 0x47d0c5
push 0xd
pop ecx
mov dword [ebp - 0x150], ecx
jmp 0x47f675
xor eax, eax
mov byte [edi + 3], al
mov dword [edi + 0x20], eax
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x24]
mov edx, dword [ebp - 0x15c]
mov dword [edx], eax
mov dword [edx + 4], ecx
jmp 0x47a06e
imul edx, dword [ebx + 8], 0x28
mov eax, dword [edi + 0x60]
mov ecx, dword [ebx + 4]
add edx, esi
mov esi, dword [eax + ecx*4]
imul eax, dword [ebx + 0xc], 0x28
cmp byte [ebx + 1], 0xfb
mov ecx, dword [ebp - 0x148]
mov edi, dword [eax + ecx]
mov eax, dword [eax + ecx + 4]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0xe8], edi
mov dword [ebp - 0xe4], eax
jne 0x47d1a9
mov ecx, dword [ebp - 0x140]
cmp dword [ecx + 0xfc], 0
je 0x47d1a9
mov eax, dword [ebp - 0x140]
movsx ecx, byte [esi + 1]
add ecx, ecx
mov eax, dword [eax + 0x10]
mov eax, dword [eax + ecx*8]
mov ecx, dword [ebx + 0x10]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x1c]
jmp 0x47d1ae
xor ecx, ecx
mov dword [ebp - 0x24], ecx
mov dword [ebp - 0x15c], ecx
mov ecx, dword [ebp - 0x154]
test byte [ebx + 2], cl
je 0x47d1df
mov ecx, dword [ebp - 0x144]
add dword [ecx + 0x28], 1
adc dword [ecx + 0x2c], 0
test byte [ebx + 2], 0x20
je 0x47d1df
mov ecx, dword [ebp - 0x140]
mov dword [ecx + 0x28], edi
mov dword [ecx + 0x2c], eax
mov eax, dword [edx + 8]
movzx ecx, word [ebx + 2]
mov dword [ebp - 0xe0], eax
mov eax, dword [edx + 0xc]
push 0x10
mov dword [ebp - 0xd4], eax
pop eax
test al, cl
je 0x47d201
mov edi, dword [esi + 0x24]
jmp 0x47d205
xor eax, eax
mov edi, eax
mov eax, 0x400
test word [edx + 0x10], ax
push 0
pop eax
je 0x47d21f
mov eax, dword [edx]
mov dword [ebp - 0xd0], eax
xor eax, eax
jmp 0x47d225
mov dword [ebp - 0xd0], eax
and ecx, 0x8a
mov dword [ebp - 0xf0], eax
push edi
push ecx
mov ecx, dword [esi + 0x2c]
lea edx, [ebp - 0xf0]
call fcn.0047070a
pop ecx
pop ecx
mov ecx, eax
xor edx, edx
mov dword [ebp - 0x150], ecx
mov byte [esi + 3], dl
mov dword [esi + 0x20], edx
test ecx, ecx
jne 0x47f675
mov eax, dword [ebp - 0x15c]
test eax, eax
je 0x47f292
push dword [ebp - 0xe4]
push dword [ebp - 0xe8]
push dword [eax]
push dword [ebp - 0x24]
push 4
pop eax
test byte [ebx + 2], al
push 0x12
pop eax
push 0x17
pop ecx
cmovne eax, ecx
push eax
mov eax, dword [ebp - 0x140]
push dword [eax + 0xf8]
call dword [eax + 0xfc]
add esp, 0x18
jmp 0x47a06e
mov ecx, dword [edi + 0x60]
mov eax, dword [ebx + 4]
mov esi, dword [ecx + eax*4]
mov eax, dword [ebx + 8]
mov edx, dword [ecx + eax*4]
mov eax, dword [ebx + 0xc]
test eax, eax
je 0x47d2d8
mov ecx, dword [ebp - 0x148]
mov edi, dword [ebp - 0x148]
imul eax, eax, 0x28
mov ecx, dword [eax + ecx]
mov eax, dword [eax + edi + 4]
mov edi, dword [ebp - 0x144]
jmp 0x47d2e6
xorps xmm0, xmm0
movlpd qword [ebp - 0x20], xmm0
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x20]
mov edx, dword [edx + 0x2c]
push eax
push ecx
mov ecx, dword [esi + 0x2c]
call fcn.00470b55
pop ecx
jmp 0x47aa15
cmp byte [ebx + 1], 0xfb
mov eax, dword [ebx + 8]
mov ecx, dword [ebx + 4]
mov dword [ebp - 0x1c], eax
mov eax, dword [edi + 0x60]
mov esi, dword [eax + ecx*4]
jne 0x47d354
mov eax, dword [ebp - 0x140]
xor ecx, ecx
cmp dword [eax + 0xfc], ecx
je 0x47d354
movsx ecx, byte [esi + 1]
mov eax, dword [eax + 0x10]
add ecx, ecx
mov edi, dword [ebx + 0x10]
mov eax, dword [eax + ecx*8]
mov dword [ebp - 0x15c], eax
mov eax, dword [ebp - 0x168]
test byte [ebx + 2], al
je 0x47d35e
cmp byte [esi + 4], 0
je 0x47d35e
mov ecx, dword [esi + 0x2c]
call fcn.0046c44d
mov dword [esi + 0x40], eax
mov dword [esi + 0x44], edx
jmp 0x47d35e
xor eax, eax
mov dword [ebp - 0x15c], eax
mov edi, eax
mov dl, byte [ebx + 2]
mov ecx, dword [esi + 0x2c]
call fcn.00470e7a
mov ecx, eax
xor edx, edx
mov dword [ebp - 0x150], ecx
mov dword [esi + 0x20], edx
mov dword [esi + 0x24], edx
test ecx, ecx
jne 0x47f675
mov ecx, dword [ebp - 0x154]
test byte [ebp - 0x1c], cl
je 0x47f292
mov eax, dword [ebp - 0x144]
add dword [eax + 0x28], ecx
adc dword [eax + 0x2c], edx
mov edx, dword [ebp - 0x140]
mov eax, dword [edx + 0xfc]
test eax, eax
je 0x47f292
test edi, edi
je 0x47f292
test byte [edi + 0x1c], 0x80
jne 0x47f292
push dword [esi + 0x44]
push dword [esi + 0x40]
push dword [edi]
push dword [ebp - 0x15c]
push 9
push dword [edx + 0xf8]
call eax
jmp 0x47d29c
mov edx, dword [ebp - 0x140]
mov eax, dword [edi + 0x28]
mov ecx, dword [edi + 0x2c]
add dword [edx + 0x70], eax
mov dword [edx + 0x68], eax
adc dword [edx + 0x74], ecx
xor eax, eax
mov dword [edx + 0x6c], ecx
mov dword [edi + 0x28], eax
mov dword [edi + 0x2c], eax
jmp 0x479d7d
mov eax, dword [edi + 0x60]
mov ecx, dword [ebx + 4]
imul edx, dword [ebx + 0xc], 0x28
mov ecx, dword [eax + ecx*4]
xor eax, eax
mov dword [ebp - 0x5c], eax
lea eax, [ebp - 0x5c]
push eax
push dword [ebx + 0x10]
add edx, esi
call fcn.00482630
pop ecx
pop ecx
mov ecx, eax
mov dword [ebp - 0x150], ecx
test ecx, ecx
jne 0x47a28b
cmp dword [ebp - 0x5c], eax
jmp 0x479d77
imul edx, dword [ebx + 8], 0x28
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x60]
add edx, esi
mov ecx, dword [eax + ecx*4]
call fcn.004825da
mov ecx, eax
mov dword [ebp - 0x150], ecx
test ecx, ecx
jne 0x47a28b
mov ecx, dword [ebx + 0xc]
mov eax, dword [edi + 0x60]
mov eax, dword [eax + ecx*4]
xor ecx, ecx
mov dword [eax + 0x20], ecx
jmp 0x479d7d
mov edx, ebx
mov ecx, edi
call fcn.00479b23
mov ecx, dword [edi + 0x60]
mov esi, eax
mov edx, dword [ebx + 4]
mov ecx, dword [ecx + edx*4]
mov edi, dword [ecx + 0x2c]
mov ecx, edi
call fcn.0046c417
mov eax, dword [ebp - 0x140]
mov edx, dword [edi + 0x2c]
cmp edx, dword [eax + 0x78]
ja 0x47f680
push esi
mov ecx, edi
call fcn.00473fb2
pop ecx
mov ecx, eax
mov dword [ebp - 0x150], ecx
test ecx, ecx
jne 0x47f675
cmp dword [ebx + 0xc], eax
jne 0x47f292
mov eax, 0x4000
test word [esi + 0x10], ax
je 0x47f292
mov ecx, esi
call fcn.004734b3
mov edi, dword [ebp - 0x144]
test eax, eax
jne 0x47b5b0
jmp 0x479ff6
mov edx, ebx
mov ecx, edi
call fcn.00479b23
mov edx, dword [ebx + 4]
mov edi, eax
mov eax, dword [ebp - 0x144]
mov ecx, dword [eax + 0x60]
mov esi, dword [ecx + edx*4]
cmp byte [esi + 2], 0
je 0x47d51b
mov eax, dword [ebp - 0x154]
jmp 0x47b60a
cmp byte [esi + 3], 0
je 0x47d529
mov eax, dword [esi + 0x40]
mov edx, dword [esi + 0x44]
jmp 0x47d591
mov eax, dword [ebp - 0x168]
cmp byte [esi], al
jne 0x47d56d
mov ecx, dword [esi + 0x2c]
lea edx, [ebp - 0x40]
push edx
push ecx
mov esi, dword [ecx]
mov eax, dword [esi]
call dword [eax + 0x30]
pop ecx
pop ecx
mov ecx, dword [ebp - 0x144]
mov edx, esi
mov dword [ebp - 0x150], eax
call fcn.00477b50
mov ecx, dword [ebp - 0x150]
test ecx, ecx
jne 0x47f675
mov edx, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x40]
jmp 0x47d597
mov ecx, esi
call fcn.0047690d
mov ecx, eax
mov dword [ebp - 0x150], ecx
test ecx, ecx
jne 0x47f675
cmp byte [esi + 2], al
jne 0x47d510
mov ecx, dword [esi + 0x2c]
call fcn.0046c44d
mov dword [ebp - 0x3c], edx
mov dword [ebp - 0x40], eax
mov dword [edi], eax
mov dword [edi + 4], edx
jmp 0x47a06e
mov edx, dword [ebx + 4]
mov eax, dword [edi + 0x60]
mov esi, dword [eax + edx*4]
test esi, esi
jne 0x47d5e5
push 3
push dword [ebp - 0x154]
mov ecx, edi
call fcn.0047984f
mov esi, eax
pop ecx
pop ecx
test esi, esi
je 0x47b5b0
xor eax, eax
mov dword [esi + 0x24], eax
mov eax, dword [ebp - 0x154]
mov byte [esi + 4], al
push 8
pop eax
or dword [esi + 8], eax
call fcn.0046949c
mov dword [esi + 0x2c], eax
mov eax, dword [ebp - 0x154]
mov byte [esi + 2], al
xor eax, eax
mov dword [esi + 0x20], eax
cmp byte [esi], al
jne 0x47f292
mov ecx, dword [esi + 0x2c]
call fcn.0046936e
jmp 0x479ff6
mov ecx, dword [ebx + 4]
xor edx, edx
cmp byte [ebp - 0x161], 0x89
mov eax, dword [edi + 0x60]
mov esi, dword [eax + ecx*4]
mov ecx, dword [esi + 0x2c]
mov dword [ebp - 0x4c], edx
jne 0x47d66b
or dword [esi + 0x24], 0xffffffff
cmp byte [ecx], dl
je 0x47f292
lea edx, [ebp - 0x4c]
call fcn.0046cb3b
mov ecx, eax
xor edx, edx
mov eax, dword [ebp - 0x4c]
mov dword [ebp - 0x150], ecx
mov byte [esi + 2], al
mov byte [esi + 3], dl
mov dword [esi + 0x20], edx
test ecx, ecx
jne 0x47a28b
cmp dword [ebx + 8], edx
jle 0x47f292
cmp dword [ebp - 0x4c], ecx
jne 0x47f469
jmp 0x479ff6
cmp byte [ecx], dl
jne 0x47d62e
push 8
pop eax
test byte [ecx + 1], al
je 0x47d62e
mov eax, edx
mov ecx, edx
mov dword [ebp - 0x4c], eax
jmp 0x47d63d
mov ecx, dword [ebx + 4]
lea edx, [ebp - 0x54]
mov eax, dword [edi + 0x60]
mov eax, dword [eax + ecx*4]
mov esi, dword [eax + 0x2c]
mov ecx, esi
call fcn.0046cb0f
mov ecx, eax
mov dword [ebp - 0x150], ecx
test ecx, ecx
jne 0x47a28b
cmp dword [ebp - 0x54], eax
jne 0x47f469
mov ecx, esi
call fcn.0046d0e5
xor ecx, ecx
cmp edx, ecx
jl 0x47d6dc
jg 0x47d6c2
cmp eax, ecx
jb 0x47d6dc
push edx
push eax
call fcn.0045d991
cwde
pop ecx
pop ecx
cmp eax, dword [ebx + 0xc]
jge 0x47d6dc
mov eax, dword [ebp - 0x154]
mov dword [ebp - 0x54], eax
jmp 0x47d6df
mov eax, dword [ebp - 0x54]
test eax, eax
jmp 0x47d660
inc dword [edi + 0xac]
mov eax, dword [edi + 0x60]
lea edx, [ebp - 0x48]
mov ecx, dword [ebx + 4]
mov esi, dword [eax + ecx*4]
mov eax, dword [ebp - 0x154]
mov dword [ebp - 0x48], eax
cmp byte [esi], al
jne 0x47d710
mov ecx, esi
call fcn.004824d5
xor edx, edx
jmp 0x47d720
mov ecx, dword [esi + 0x2c]
call fcn.0046cb0f
xor edx, edx
mov byte [esi + 3], dl
mov dword [esi + 0x20], edx
mov ecx, eax
mov dword [ebp - 0x150], ecx
test ecx, ecx
jne 0x47a28b
mov al, byte [ebp - 0x48]
mov byte [esi + 2], al
cmp dword [ebx + 8], edx
jle 0x47f292
cmp dword [ebp - 0x48], ecx
jmp 0x47d660
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x60]
mov esi, dword [eax + ecx*4]
mov edx, esi
mov ecx, dword [ebp - 0x140]
call fcn.00482525
jmp 0x47d789
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x60]
mov edx, dword [ebx + 0xc]
mov esi, dword [eax + ecx*4]
mov ecx, dword [esi + 0x2c]
call fcn.0046d32c
jmp 0x47d789
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x60]
mov edx, dword [ebx + 0xc]
mov esi, dword [eax + ecx*4]
mov ecx, dword [esi + 0x2c]
call fcn.0046d21f
mov ecx, eax
mov dword [ebp - 0x150], ecx
xor edx, edx
mov dword [esi + 0x20], edx
test ecx, ecx
jne 0x47d7ad
mov byte [esi + 2], dl
movzx eax, word [ebx + 2]
inc dword [edi + eax*4 + 0xa4]
jmp 0x47ef72
cmp ecx, 0x65
jne 0x47a28b
mov eax, dword [ebp - 0x154]
mov dword [ebp - 0x150], edx
mov byte [esi + 2], al
jmp 0x47df8c
mov ecx, dword [ebx + 4]
imul esi, dword [ebx + 8], 0x28
mov eax, dword [edi + 0x60]
mov edi, dword [eax + ecx*4]
add esi, dword [ebp - 0x148]
mov ecx, dword [ebp - 0x154]
test byte [ebx + 2], cl
je 0x47d7f7
mov eax, dword [ebp - 0x144]
push 0
add dword [eax + 0x28], ecx
pop ecx
adc dword [eax + 0x2c], ecx
mov eax, 0x400
test word [esi + 0x10], ax
je 0x47d819
mov ecx, esi
call fcn.004734f9
mov ecx, eax
mov dword [ebp - 0x150], ecx
test ecx, ecx
jne 0x47f675
mov eax, dword [esi + 0xc]
cdq
mov dword [ebp - 0x98], eax
mov dword [ebp - 0x94], edx
mov eax, dword [esi + 8]
mov esi, dword [ebp - 0x148]
mov dword [ebp - 0xa0], eax
imul eax, dword [ebx + 0xc], 0x28
push 0x10
pop ecx
add eax, esi
mov dword [ebp - 0x8c], eax
mov ax, word [ebx + 0x10]
mov word [ebp - 0x88], ax
movzx eax, word [ebx + 2]
test cl, al
je 0x47d85f
mov ecx, dword [edi + 0x24]
jmp 0x47d861
xor ecx, ecx
push ecx
mov ecx, dword [edi + 0x2c]
lea edx, [ebp - 0xa0]
and eax, 0x8a
push eax
call fcn.0047070a
pop ecx
pop ecx
mov ecx, eax
xor eax, eax
mov dword [edi + 0x20], eax
mov edi, dword [ebp - 0x144]
jmp 0x47a27d
imul esi, dword [ebx + 8], 0x28
mov eax, dword [edi + 0x60]
mov ecx, dword [ebx + 4]
add esi, dword [ebp - 0x148]
mov edi, dword [eax + ecx*4]
mov eax, 0x400
test word [esi + 0x10], ax
je 0x47d8bf
mov ecx, esi
call fcn.004734f9
mov ecx, eax
mov dword [ebp - 0x150], ecx
test ecx, ecx
jne 0x47f675
mov edx, esi
mov ecx, edi
call fcn.0048192b
jmp 0x47cf1d
mov eax, dword [edi + 0x60]
lea edx, [ebp - 0xe8]
mov ecx, dword [ebx + 4]
mov esi, dword [eax + ecx*4]
mov eax, dword [esi + 0x30]
mov edi, dword [esi + 0x2c]
mov ecx, edi
mov dword [ebp - 0xe8], eax
mov ax, word [ebx + 0xc]
mov word [ebp - 0xd4], ax
xor eax, eax
mov byte [ebp - 0xd2], al
imul eax, dword [ebx + 8], 0x28
add eax, dword [ebp - 0x148]
mov dword [ebp - 0xe4], eax
lea eax, [ebp - 0xa4]
push eax
call fcn.0046cdfd
pop ecx
mov ecx, eax
mov dword [ebp - 0x150], ecx
test ecx, ecx
jne 0x47f675
cmp dword [ebp - 0xa4], eax
jne 0x47d950
push 4
pop eax
mov dl, al
mov ecx, edi
call fcn.00470e7a
mov ecx, eax
mov dword [ebp - 0x150], ecx
test ecx, ecx
jne 0x47f675
jmp 0x47d96b
xor edx, edx
cmp word [ebx + 2], dx
je 0x47d96d
mov ecx, dword [ebp - 0x140]
call fcn.00490c36
test eax, eax
je 0x47f69b
xor edx, edx
mov dword [esi + 0x20], edx
mov dword [esi + 0x24], edx
jmp 0x47a06e
mov eax, dword [edi + 0x60]
mov ecx, dword [ebx + 4]
mov esi, dword [eax + ecx*4]
mov eax, dword [esi + 0x2c]
cmp byte [eax], 0
je 0x47d9a2
mov ecx, esi
call fcn.004768d3
mov ecx, eax
mov dword [ebp - 0x150], ecx
test ecx, ecx
jne 0x47a99f
jmp 0x47d9aa
xor eax, eax
mov dword [ebp - 0x150], eax
cmp byte [esi + 2], 0
jne 0x47da2f
mov ecx, dword [ebp - 0x140]
lea eax, [ebp - 0x70]
xorps xmm0, xmm0
movlpd qword [ebp - 0x70], xmm0
mov edx, dword [esi + 0x2c]
push eax
call fcn.004778ac
pop ecx
mov ecx, eax
mov dword [ebp - 0x150], ecx
test ecx, ecx
jne 0x47a28b
cmp byte [ebx], 0x8d
jne 0x47da16
mov ecx, dword [ebx + 0xc]
mov eax, dword [edi + 0x60]
mov edx, dword [eax + ecx*4]
xor eax, eax
mov byte [edx + 2], al
mov eax, dword [ebp - 0x70]
mov ecx, dword [ebp - 0x6c]
mov dword [edx + 0x40], eax
mov eax, dword [ebp - 0x154]
mov byte [edx + 3], al
xor eax, eax
mov dword [edx + 0x44], ecx
mov dword [edx + 0x20], eax
mov eax, dword [ebx + 0x10]
mov dword [edx + 0x10], eax
mov dword [edx + 0x28], esi
jmp 0x479ff6
mov edx, ebx
mov ecx, edi
call fcn.00479b23
mov ecx, dword [ebp - 0x70]
mov edx, dword [ebp - 0x6c]
mov dword [eax], ecx
mov dword [eax + 4], edx
jmp 0x479ff6
imul ecx, dword [ebx + 8], 0x28
jmp 0x47b29d
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x60]
mov ecx, dword [eax + ecx*4]
cmp byte [ecx + 3], 0
je 0x479d7d
call fcn.00476893
jmp 0x47a27b
mov eax, dword [edi + 0x60]
mov ecx, dword [ebx + 4]
cmp byte [ebp - 0x161], 0x2a
mov ecx, dword [eax + ecx*4]
mov eax, dword [ecx + 0x30]
mov dword [ebp - 0xe8], eax
mov ax, word [ebx + 0x10]
mov word [ebp - 0xd4], ax
sbb al, al
mov byte [ebp - 0xd2], al
imul eax, dword [ebx + 0xc], 0x28
add eax, esi
mov dword [ebp - 0xe4], eax
mov esi, dword [ecx + 0x2c]
mov ecx, esi
call fcn.0046c417
mov edx, dword [esi + 0x2c]
test edx, edx
je 0x47f6b7
cmp edx, 0x7fffffff
ja 0x47f6b7
xor eax, eax
mov ecx, esi
mov word [ebp - 0x90], ax
mov eax, dword [ebp - 0x140]
mov dword [ebp - 0x8c], eax
xor eax, eax
mov dword [ebp - 0x88], eax
lea eax, [ebp - 0xa0]
push eax
call fcn.00473fb2
pop ecx
mov ecx, eax
mov dword [ebp - 0x150], ecx
test ecx, ecx
jne 0x47a28b
mov edx, dword [ebp - 0x98]
mov ecx, dword [ebp - 0x94]
push eax
lea eax, [ebp - 0xe8]
push eax
call fcn.004770ed
pop ecx
pop ecx
lea ecx, [ebp - 0xa0]
mov esi, eax
call fcn.004736ed
mov dl, byte [ebx]
lea ecx, [esi + 1]
neg esi
and dl, byte [ebp - 0x154]
cmovne esi, ecx
test esi, esi
jg 0x47f469
jmp 0x479ff6
mov edx, ebx
mov ecx, edi
call fcn.00479b23
mov ecx, dword [ebp - 0x140]
mov esi, eax
mov eax, dword [ebp - 0x154]
mov edx, dword [ebp - 0x140]
mov word [esi + 0x10], ax
mov ecx, dword [ecx + 0xcc]
inc ecx
cmp dword [edx + 0xc0], ecx
jg 0x47f6d9
mov eax, dword [ebx + 0xc]
xor ecx, ecx
mov dword [ebp - 0x44], ecx
lea ecx, [ebp - 0x44]
push ecx
mov ecx, edx
mov dword [ebp - 0x15c], eax
mov edx, dword [ebx + 4]
add eax, eax
mov ecx, dword [ecx + 0x10]
mov ecx, dword [ecx + eax*8 + 4]
call fcn.00471813
pop ecx
mov ecx, eax
mov dword [ebp - 0x150], ecx
push 4
pop eax
mov word [esi + 0x10], ax
mov eax, dword [ebp - 0x44]
cdq
mov dword [esi], eax
mov dword [esi + 4], edx
test ecx, ecx
jne 0x47a28b
cmp dword [ebp - 0x44], ecx
je 0x47f292
push dword [ebx + 4]
mov edx, dword [ebp - 0x15c]
push dword [ebp - 0x44]
mov ecx, dword [ebp - 0x140]
call fcn.00493155
mov al, byte [ebp - 0x15c]
pop ecx
inc al
pop ecx
mov byte [ebp - 0x17d], al
jmp 0x479ff6
mov ecx, dword [ebp - 0x140]
lea eax, [ebp - 0x20]
mov edx, dword [ebx + 4]
xorps xmm0, xmm0
push eax
mov eax, dword [ebx + 8]
mov ecx, dword [ecx + 0x10]
add eax, eax
movlpd qword [ebp - 0x20], xmm0
mov ecx, dword [ecx + eax*8 + 4]
call fcn.00471606
pop ecx
mov ecx, eax
xor eax, eax
mov dword [ebp - 0x150], ecx
cmp dword [ebx + 0xc], eax
je 0x47a283
mov edx, dword [ebp - 0x20]
add dword [edi + 0x28], edx
mov eax, dword [ebp - 0x1c]
adc dword [edi + 0x2c], eax
mov eax, dword [ebx + 0xc]
test eax, eax
jle 0x47a283
imul ecx, eax, 0x28
add dword [ecx + esi], edx
mov eax, dword [ebp - 0x1c]
adc dword [ecx + esi + 4], eax
mov ecx, dword [ebp - 0x150]
jmp 0x47a283
mov eax, dword [edi + 0x60]
mov ecx, dword [ebx + 4]
mov ecx, dword [eax + ecx*4]
mov eax, dword [ebp - 0x154]
cmp byte [ecx], al
jne 0x47dc6d
mov edx, dword [ecx + 0x2c]
mov ecx, dword [ebp - 0x140]
call fcn.00481095
jmp 0x479d7d
mov ecx, dword [ecx + 0x2c]
xor eax, eax
push eax
mov edx, dword [ecx + 0x40]
mov ecx, dword [ecx + 8]
call fcn.00471606
jmp 0x47c8e5
mov edx, ebx
mov ecx, edi
call fcn.00479b23
mov edx, dword [ebx + 4]
mov esi, dword [ebx + 0xc]
add edx, edx
mov dword [ebp - 0x1c], eax
xor eax, eax
mov dword [ebp - 0x58], eax
mov eax, dword [ebp - 0x140]
mov ecx, dword [eax + 0x10]
mov edi, dword [ecx + edx*8 + 4]
mov ecx, edi
call fcn.00468ffc
push esi
lea edx, [ebp - 0x58]
mov ecx, edi
call fcn.00471214
pop ecx
mov ecx, edi
mov dword [ebp - 0x150], eax
call fcn.00469075
mov ecx, dword [ebp - 0x150]
mov edi, dword [ebp - 0x144]
test ecx, ecx
jne 0x47a28b
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x58]
mov dword [ecx], eax
xor eax, eax
mov dword [ecx + 4], eax
jmp 0x479ff6
mov ecx, dword [ebp - 0x140]
xor eax, eax
push eax
push eax
push eax
inc byte [ecx + 0x60]
push dword [ebx + 0x10]
push ecx
call fcn.0049e2ac
mov edx, dword [ebp - 0x140]
add esp, 0x14
dec byte [edx + 0x60]
mov ecx, eax
mov dword [ebp - 0x150], ecx
test ecx, ecx
jne 0x47a291
jmp 0x479d7d
cmp dword [ebx + 0x10], 0
mov esi, dword [ebx + 4]
jne 0x47dd86
mov eax, dword [ebp - 0x140]
mov ecx, esi
add ecx, ecx
mov eax, dword [eax + 0x10]
push dword [eax + ecx*8 + 0xc]
call fcn.0049616f
pop ecx
mov ecx, dword [ebp - 0x140]
mov edx, esi
and dword [ecx + 0x18], 0xffffffef
movzx eax, word [ebx + 2]
push eax
lea eax, [edi + 0x7c]
push eax
call fcn.004a278b
mov edx, dword [ebp - 0x154]
pop ecx
pop ecx
mov ecx, eax
mov eax, dword [ebp - 0x140]
mov dword [ebp - 0x150], ecx
or dword [eax + 0x18], edx
and dword [edi + 0x98], 0xfffffffc
jmp 0x47de6b
mov edx, dword [ebp - 0x140]
lea eax, [edi + 0x7c]
push dword [ebx + 0x10]
mov dword [ebp - 0xdc], esi
add esi, esi
mov dword [ebp - 0xe0], eax
xor eax, eax
mov ecx, dword [edx + 0x10]
mov dword [ebp - 0xe4], edx
mov dword [ebp - 0xd4], eax
push 0x42e790
mov eax, dword [ecx + esi*8 + 4]
mov eax, dword [eax + 4]
mov eax, dword [eax + 0x30]
mov dword [ebp - 0xcc], eax
push dword [ecx + esi*8]
push 0x42e7a0
push edx
call fcn.0045b770
mov esi, eax
add esp, 0x14
test esi, esi
je 0x47f6f3
mov eax, dword [ebp - 0x140]
mov ecx, dword [ebp - 0x154]
mov byte [eax + 0xb1], cl
xor ecx, ecx
push ecx
mov dword [ebp - 0xd8], ecx
mov dword [ebp - 0xd0], ecx
lea ecx, [ebp - 0xe4]
push ecx
push fcn.004a2551
push esi
push eax
call fcn.0049e2ac
add esp, 0x14
mov dword [ebp - 0x150], eax
test eax, eax
jne 0x47de4a
mov eax, dword [ebp - 0xd8]
mov dword [ebp - 0x150], eax
test eax, eax
jne 0x47de4a
cmp dword [ebp - 0xd0], eax
jne 0x47de4a
mov ecx, 0x17d50
call fcn.004c5cb7
mov dword [ebp - 0x150], eax
mov ecx, dword [ebp - 0x140]
mov edx, esi
call fcn.004594d9
mov ecx, dword [ebp - 0x140]
xor eax, eax
mov byte [ecx + 0xb1], al
mov ecx, dword [ebp - 0x150]
test ecx, ecx
jne 0x47f6fd
jmp 0x479ff6
mov edx, dword [ebx + 4]
mov ecx, dword [ebp - 0x140]
call fcn.0048ef9d
jmp 0x47a27b
push dword [ebx + 0x10]
mov edx, dword [ebx + 4]
mov ecx, dword [ebp - 0x140]
call fcn.00490ac4
jmp 0x47a233
push dword [ebx + 0x10]
mov edx, dword [ebx + 4]
mov ecx, dword [ebp - 0x140]
call fcn.00490609
jmp 0x47a233
push dword [ebx + 0x10]
mov edx, dword [ebx + 4]
mov ecx, dword [ebp - 0x140]
call fcn.004ac903
jmp 0x47a233
imul edi, dword [ebx + 0xc], 0x28
lea eax, [ebp - 0xc4]
mov ecx, dword [ebx + 0x10]
push eax
lea eax, [ebp - 0xa8]
push eax
add edi, esi
imul esi, dword [ebx + 4], 0x28
mov eax, dword [edi]
add esi, dword [ebp - 0x148]
inc eax
push eax
push dword [ebx + 8]
lea eax, [ecx + 4]
mov ecx, dword [ebp - 0x140]
push eax
movzx eax, word [ebx + 2]
add eax, eax
mov edx, dword [ecx + 0x10]
mov edx, dword [edx + eax*8 + 4]
call fcn.004722a0
mov ecx, eax
add esp, 0x14
mov eax, 0x9000
mov dword [ebp - 0x150], ecx
test word [esi + 0x10], ax
je 0x47df36
mov ecx, esi
call fcn.0047367a
mov ecx, dword [ebp - 0x150]
jmp 0x47df40
mov eax, dword [ebp - 0x154]
mov word [esi + 0x10], ax
mov eax, dword [ebp - 0xa8]
test eax, eax
je 0x47df78
test ecx, ecx
jne 0x47f71c
dec eax
mov ecx, esi
cdq
sub dword [edi], eax
push fcn.0045946b
push dword [ebp - 0x154]
sbb dword [edi + 4], edx
mov edx, dword [ebp - 0xc4]
push 0xffffffffffffffff
push 0xffffffffffffffff
call fcn.00473d40
add esp, 0x10
movzx edx, byte [ebp - 0x14c]
mov ecx, esi
call fcn.0047333c
mov edi, dword [ebp - 0x144]
mov esi, dword [ebp - 0x148]
mov edx, dword [ebp - 0x140]
xor eax, eax
cmp dword [edx + 0x128], eax
jne 0x47f951
mov eax, dword [ebp - 0x198]
cmp eax, dword [ebp - 0x184]
jb 0x47ad96
mov ecx, dword [ebp - 0x178]
ja 0x47dfcc
cmp dword [ebp - 0x194], ecx
jb 0x47ad96
mov eax, dword [edx + 0x174]
test eax, eax
je 0x47ad96
add ecx, dword [edx + 0x17c]
push 0
mov dword [ebp - 0x178], ecx
pop ecx
push dword [edx + 0x178]
adc dword [ebp - 0x184], ecx
call eax
mov edx, dword [ebp - 0x140]
pop ecx
test eax, eax
jne 0x47c28c
mov eax, dword [ebp - 0x198]
mov ecx, dword [ebp - 0x178]
cmp eax, dword [ebp - 0x184]
ja 0x47dfcc
jb 0x479d7d
cmp dword [ebp - 0x194], ecx
jae 0x47dfcc
jmp 0x479d7d
imul esi, dword [ebx + 4], 0x28
imul edi, dword [ebx + 8], 0x28
push 0x10
pop eax
add esi, dword [ebp - 0x148]
add edi, dword [ebp - 0x148]
test byte [esi + 0x10], al
jne 0x47e058
mov ecx, esi
call fcn.00473ba7
test eax, eax
jne 0x47b5aa
push dword [edi + 4]
mov ecx, dword [esi + 8]
push dword [edi]
call fcn.004627c4
pop ecx
jmp 0x47b563
imul esi, dword [ebx + 4], 0x28
push 0x10
pop eax
add esi, dword [ebp - 0x148]
test byte [esi + 0x10], al
je 0x47e0b3
mov ecx, dword [esi + 8]
lea edx, [ebp - 0xb8]
call fcn.00462a1f
test eax, eax
je 0x47e0b3
imul ecx, dword [ebx + 0xc], 0x28
push dword [ebp - 0xb4]
mov esi, dword [ebp - 0x148]
push dword [ebp - 0xb8]
add ecx, esi
call fcn.00473b33
pop ecx
pop ecx
jmp 0x47df92
mov eax, 0x9000
test word [esi + 0x10], ax
je 0x47e0ca
mov ecx, esi
call fcn.0047367a
jmp 0x47ef72
mov eax, dword [ebp - 0x154]
mov word [esi + 0x10], ax
jmp 0x47ef72
imul esi, dword [ebx + 4], 0x28
imul edi, dword [ebx + 0xc], 0x28
mov eax, dword [ebx + 0x10]
push 0x10
pop ecx
add esi, dword [ebp - 0x148]
add edi, dword [ebp - 0x148]
mov dword [ebp - 0x15c], eax
test byte [esi + 0x10], cl
jne 0x47e113
mov ecx, esi
call fcn.00473ba7
test eax, eax
jne 0x47b5aa
mov eax, dword [ebp - 0x15c]
test eax, eax
je 0x47e138
push dword [edi + 4]
mov ecx, dword [esi + 8]
mov edx, eax
push dword [edi]
call fcn.00462a6d
pop ecx
pop ecx
test eax, eax
jne 0x47f469
mov eax, dword [ebp - 0x15c]
test eax, eax
js 0x47a06e
jmp 0x47e058
imul edi, dword [ebx + 0xc], 0x28
xor edx, edx
mov esi, dword [ebx + 0x10]
mov dword [ebp - 0x15c], esi
add edi, dword [ebp - 0x148]
cmp word [ebx + 2], dx
je 0x47e17f
mov eax, dword [ebp - 0x144]
mov ecx, dword [esi + 0x14]
mov eax, dword [eax + 0xd0]
jmp 0x47e17b
cmp dword [eax + 0x18], ecx
je 0x47a06e
mov eax, dword [eax + 4]
test eax, eax
jne 0x47e16f
mov eax, dword [ebp - 0x144]
mov ecx, dword [ebp - 0x140]
mov eax, dword [eax + 0xd8]
cmp eax, dword [ecx + 0xa0]
jge 0x47f72d
push 0x10
pop eax
test byte [edi + 0x10], al
jne 0x47e366
mov edx, dword [esi + 0xc]
mov eax, dword [esi + 8]
add eax, edx
test edx, edx
lea ecx, [eax + 1]
cmovne ecx, eax
mov eax, dword [esi + 4]
mov dword [ebp - 0x24], ecx
add eax, 7
imul ecx, ecx, 0xa
add ecx, edx
mov eax, eax
test eax, eax
jns 0x47e1d0
add eax, 7
sar eax, 3
lea eax, [eax + ecx*4]
mov ecx, dword [ebp - 0x140]
add eax, 0x58
mov dword [ebp - 0x1c], eax
cdq
push edx
push eax
call fcn.0045975d
mov esi, eax
pop ecx
pop ecx
test esi, esi
je 0x47b5aa
mov ecx, edi
call fcn.004736d4
mov ecx, dword [ebp - 0x24]
mov eax, 0x1010
sub ebx, dword [ebp - 0x13c]
mov word [edi + 0x10], ax
mov eax, dword [ebp - 0x1c]
mov dword [edi + 0xc], eax
mov eax, dword [ebp - 0x144]
mov dword [edi + 8], esi
mov dword [edi + 0x24], 0x47538f
mov edi, dword [ebp - 0x15c]
mov dword [esi], eax
mov dword [esi + 0x3c], ecx
imul ecx, ecx, 0x28
mov eax, dword [edi + 0xc]
mov dword [esi + 0x40], eax
mov eax, ebx
cdq
idiv dword [ebp - 0x170]
mov ebx, dword [ebp - 0x144]
add ecx, 0x58
mov dword [esi + 0x30], eax
add ecx, esi
mov eax, dword [ebx + 0x58]
mov dword [esi + 0xc], eax
mov eax, dword [ebx + 0x14]
mov dword [esi + 0x38], eax
mov eax, dword [ebx + 0x60]
mov dword [esi + 0x10], eax
mov eax, dword [ebx + 0x18]
mov dword [esi + 0x2c], eax
mov eax, dword [ebx + 0x68]
mov dword [esi + 8], eax
mov eax, dword [ebx + 0x6c]
mov dword [esi + 0x34], eax
mov eax, dword [edi + 0x14]
mov dword [esi + 0x18], eax
lea eax, [esi + 0x58]
cmp eax, ecx
je 0x47e29d
mov edx, dword [ebp - 0x140]
xor ebx, ebx
mov dword [eax + 0x14], edx
mov word [eax + 0x10], bx
add eax, 0x28
cmp eax, ecx
jne 0x47e287
mov ebx, dword [ebp - 0x144]
xor edx, edx
mov eax, dword [ebp - 0x154]
add dword [ebx + 0xd8], eax
mov eax, dword [ebx + 0xd0]
mov ecx, dword [ebp - 0x140]
mov dword [esi + 4], eax
mov eax, dword [ebp - 0x140]
mov ecx, dword [ecx + 0x2c]
mov eax, dword [eax + 0x28]
mov dword [esi + 0x20], eax
mov dword [esi + 0x24], ecx
mov eax, dword [ebx + 0x28]
mov ecx, dword [ebx + 0x2c]
mov dword [esi + 0x48], eax
mov dword [esi + 0x4c], ecx
mov eax, dword [ebx]
mov ecx, dword [eax + 0x68]
mov eax, dword [eax + 0x6c]
mov dword [esi + 0x54], eax
mov dword [esi + 0x50], ecx
mov eax, dword [ebx + 0xe4]
mov dword [esi + 0x28], eax
mov dword [ebx + 0xe4], edx
mov dword [ebx + 0x28], edx
mov dword [ebx + 0x2c], edx
lea edx, [esi + 0x58]
mov dword [ebx + 0x58], edx
mov dword [ebx + 0xd0], esi
mov ecx, dword [esi + 0x3c]
mov dword [ebx + 0x14], ecx
movzx eax, word [esi + 0x40]
imul ecx, ecx, 0x28
mov dword [ebx + 0x18], eax
mov dword [ebp - 0x148], edx
add ecx, edx
mov dword [ebx + 0x60], ecx
mov eax, dword [edi + 0xc]
lea ecx, [ecx + eax*4]
mov dword [esi + 0x14], ecx
mov eax, dword [edi + 4]
add eax, 7
cdq
and edx, 7
add eax, edx
sar eax, 3
push eax
xor eax, eax
push eax
push ecx
call sub.VCRUNTIME140.dll_memset
mov ecx, dword [edi]
add esp, 0xc
mov dword [ebx + 0x68], ecx
mov eax, dword [edi + 4]
mov edi, dword [ebp - 0x144]
mov dword [ebp - 0x13c], ecx
lea ebx, [ecx - 0x14]
mov dword [edi + 0x6c], eax
jmp 0x47df8c
mov esi, dword [edi + 8]
mov edi, dword [ebp - 0x15c]
mov ebx, dword [ebp - 0x144]
jmp 0x47e29f
mov edx, ebx
mov ecx, edi
call fcn.00479b23
mov esi, dword [edi + 0xd0]
mov ecx, 0x4000
push ecx
imul edx, dword [esi + 0x30], 0x14
mov ecx, dword [esi + 8]
mov ecx, dword [edx + ecx + 4]
add ecx, dword [ebx + 4]
imul edx, ecx, 0x28
mov ecx, eax
add edx, dword [esi + 0xc]
call fcn.00473c5c
jmp 0x47aec0
mov eax, dword [ebp - 0x140]
xor edx, edx
mov eax, dword [eax + 0x20]
and eax, 0x80000
or eax, edx
mov eax, dword [ebx + 8]
je 0x47e3de
mov ecx, dword [ebp - 0x140]
cdq
add dword [ecx + 0x208], eax
adc dword [ecx + 0x20c], edx
jmp 0x479d7d
cmp dword [ebx + 4], edx
cdq
je 0x47e3fb
mov ecx, dword [ebp - 0x140]
add dword [ecx + 0x200], eax
adc dword [ecx + 0x204], edx
jmp 0x479d7d
add dword [edi + 0x40], eax
adc dword [edi + 0x44], edx
jmp 0x47a0e4
xor eax, eax
cmp dword [ebx + 4], eax
je 0x47e43e
mov eax, dword [ebp - 0x140]
mov ecx, dword [ebp - 0x140]
mov eax, dword [eax + 0x200]
or eax, dword [ecx + 0x204]
jne 0x479d7d
mov eax, ecx
mov eax, dword [eax + 0x208]
or eax, dword [ecx + 0x20c]
jmp 0x47afe3
mov eax, dword [edi + 0x40]
or eax, dword [edi + 0x44]
jne 0x47a0e4
mov eax, dword [ebp - 0x140]
mov ecx, eax
jmp 0x47e42d
mov eax, dword [edi + 0xd0]
test eax, eax
jne 0x47e4a0
imul edi, dword [ebx + 4], 0x28
add edi, esi
mov ecx, edi
call fcn.0047387d
imul esi, dword [ebx + 8], 0x28
add esi, dword [ebp - 0x148]
mov ecx, esi
call fcn.0047387d
mov ecx, dword [esi + 4]
mov eax, dword [esi]
cmp dword [edi + 4], ecx
jg 0x47f292
jl 0x47e494
cmp dword [edi], eax
jae 0x47f292
mov dword [edi], eax
mov dword [edi + 4], ecx
jmp 0x47a06e
mov eax, ecx
mov ecx, dword [eax + 4]
test ecx, ecx
jne 0x47e49e
imul edi, dword [ebx + 4], 0x28
add edi, dword [eax + 0xc]
jmp 0x47e464
imul ecx, dword [ebx + 4], 0x28
xor edx, edx
add ecx, esi
mov edi, dword [ecx + 4]
mov esi, dword [ecx]
cmp edi, edx
jl 0x47f47d
jg 0x47e4cf
cmp esi, edx
jbe 0x47f47d
mov eax, dword [ebx + 0xc]
cdq
sub esi, eax
mov dword [ecx], esi
sbb edi, edx
mov dword [ecx + 4], edi
jmp 0x47f469
imul esi, dword [ebx + 4], 0x28
mov edx, ebx
imul edi, dword [ebx + 0xc], 0x28
mov ecx, dword [ebp - 0x144]
add esi, dword [ebp - 0x148]
add edi, dword [ebp - 0x148]
call fcn.00479b23
mov ecx, dword [esi + 4]
mov edx, dword [esi]
xor esi, esi
mov dword [ebp - 0x15c], eax
mov dword [ebp - 0x78], edx
mov dword [ebp - 0x74], ecx
cmp ecx, esi
jl 0x47e561
jg 0x47e521
xor ecx, ecx
cmp edx, ecx
jbe 0x47e561
mov ecx, dword [edi + 4]
xor edx, edx
mov eax, dword [edi]
cmp ecx, edx
jl 0x47e532
jg 0x47e540
cmp eax, edx
ja 0x47e540
xorps xmm0, xmm0
movlpd qword [ebp - 0x20], xmm0
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x20]
push ecx
push eax
lea ecx, [ebp - 0x78]
call fcn.0045d742
pop ecx
pop ecx
test eax, eax
jne 0x47e55b
mov eax, dword [ebp - 0x78]
mov ecx, dword [ebp - 0x74]
jmp 0x47d138
mov eax, dword [ebp - 0x15c]
or dword [eax], 0xffffffff
or dword [eax + 4], 0xffffffff
jmp 0x47a06e
imul ecx, dword [ebx + 4], 0x28
add ecx, esi
mov edx, dword [ecx]
mov eax, edx
mov esi, dword [ecx + 4]
or eax, esi
je 0x479ff6
xor eax, eax
cmp esi, eax
jl 0x47f469
jg 0x47e596
cmp edx, eax
jbe 0x47f469
sub edx, 1
mov dword [ecx], edx
sbb esi, eax
mov dword [ecx + 4], esi
jmp 0x47f469
imul edx, dword [ebx + 4], 0x28
add edx, esi
mov ecx, dword [edx + 4]
mov eax, dword [edx]
cmp ecx, 0x80000000
jl 0x47e5c9
jg 0x47e5be
test eax, eax
je 0x47e5c9
sub eax, 1
mov dword [edx], eax
sbb ecx, 0
mov dword [edx + 4], ecx
or eax, ecx
jmp 0x47afe3
movzx eax, word [ebx + 2]
xor ecx, ecx
mov dword [ebp - 0x15c], eax
push ecx
mov ecx, dword [ebp - 0x140]
lea eax, [eax*4 + 0x44]
push eax
call fcn.004597ba
mov esi, eax
pop ecx
pop ecx
test esi, esi
je 0x47b5b0
mov eax, dword [ebp - 0x15c]
xor edx, edx
add eax, 7
mov dword [esi + 8], edx
lea ecx, [esi + eax*4]
mov eax, dword [ebp - 0x154]
mov dword [esi], ecx
mov word [ecx + 0x10], ax
mov eax, dword [ebp - 0x140]
mov dword [ecx + 0x14], eax
mov dword [ecx + 0x18], edx
mov eax, dword [ebx + 0x10]
mov dword [esi + 4], eax
mov eax, ebx
sub eax, dword [ebp - 0x13c]
cdq
idiv dword [ebp - 0x170]
mov dword [esi + 0xc], edi
mov dword [esi + 0x10], eax
xor eax, eax
mov byte [esi + 0x19], al
mov dword [esi + 0x14], eax
mov al, byte [ebp - 0x14c]
mov byte [esi + 0x18], al
mov eax, dword [ebp - 0x15c]
mov byte [esi + 0x1a], al
mov word [ebx], 0xf1a3
mov dword [ebx + 0x10], esi
imul edx, dword [ebx + 0xc], 0x28
mov esi, dword [ebx + 0x10]
add edx, dword [ebp - 0x148]
mov dword [ebp - 0x1c], edx
cmp dword [esi + 8], edx
je 0x47e6ac
movzx ecx, byte [esi + 0x1a]
sub ecx, 1
mov dword [esi + 8], edx
js 0x47e6ac
lea edi, [ecx + 7]
push 4
lea edi, [esi + edi*4]
pop edx
mov eax, dword [ebx + 8]
add eax, ecx
imul eax, eax, 0x28
add eax, dword [ebp - 0x148]
mov dword [edi], eax
sub edi, edx
sub ecx, 1
jns 0x47e68c
mov edx, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x144]
inc dword [edx + 0xc]
lea eax, [esi + 0x1c]
cmp dword [ebx + 4], 0
movzx edx, byte [esi + 0x1a]
mov ecx, dword [esi + 4]
push eax
push edx
push esi
je 0x47e6c7
call dword [ecx + 0x1c]
jmp 0x47e6ca
call dword [ecx + 0x10]
mov eax, dword [esi + 0x14]
add esp, 0xc
test eax, eax
je 0x47f292
jle 0x47e6ff
mov dl, byte [ebp - 0x154]
mov ecx, dword [esi]
call fcn.0047408a
push eax
push 0x42dc64
push edi
call fcn.00474562
mov eax, dword [esi + 0x14]
add esp, 0xc
mov dword [ebp - 0x150], eax
cmp byte [esi + 0x19], 0
je 0x47e74f
mov eax, dword [ebx - 0x10]
test eax, eax
je 0x47e732
imul eax, eax, 0x28
mov ecx, 0x9000
add eax, dword [ebp - 0x148]
test word [eax + 0x10], cx
je 0x47e739
xor ecx, ecx
push ecx
push dword [ebp - 0x154]
mov ecx, eax
call fcn.00473b11
pop ecx
pop ecx
xor edx, edx
mov byte [esi + 0x19], dl
jmp 0x47e751
mov ecx, dword [ebp - 0x154]
xor edx, edx
push 4
mov dword [eax], ecx
pop ecx
mov dword [eax + 4], edx
mov word [eax + 0x10], cx
jmp 0x47e734
xor edx, edx
mov ecx, dword [esi]
mov eax, 0x9000
test word [ecx + 0x10], ax
jne 0x47e763
cmp dword [ecx + 0x18], edx
je 0x47e76a
call fcn.004736a6
xor edx, edx
mov eax, dword [esi]
mov ecx, dword [ebp - 0x154]
mov word [eax + 0x10], cx
mov dword [esi + 0x14], edx
jmp 0x47c52d
imul esi, dword [ebx + 4], 0x28
mov ecx, dword [ebp - 0x148]
mov eax, dword [ebx + 0xc]
mov edx, dword [ebx + 0x10]
add esi, ecx
test eax, eax
je 0x47e7ae
push edx
imul edx, eax, 0x28
add edx, ecx
mov ecx, esi
call fcn.0047361d
imul esi, dword [ebx + 0xc], 0x28
pop ecx
add esi, dword [ebp - 0x148]
jmp 0x47e7b5
mov ecx, esi
call fcn.004735a4
mov edi, eax
mov ecx, esi
mov dword [ebp - 0x150], edi
test edi, edi
jne 0x47f757
movzx edx, byte [ebp - 0x14c]
call fcn.0047333c
jmp 0x47a06e
mov edx, dword [ebx + 4]
xor eax, eax
mov ecx, dword [ebp - 0x140]
or dword [ebp - 8], 0xffffffff
or dword [ebp - 0xc], 0xffffffff
mov dword [ebp - 0x10], eax
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0xc]
push eax
push dword [ebx + 8]
call fcn.004c4d00
mov ecx, eax
add esp, 0xc
mov dword [ebp - 0x150], ecx
test ecx, ecx
je 0x47e82b
push 5
pop eax
cmp ecx, eax
jne 0x47a28b
mov ecx, dword [ebp - 0x154]
xor eax, eax
mov dword [ebp - 0x150], eax
mov dword [ebp - 0x10], ecx
jmp 0x47e82d
xor eax, eax
imul esi, dword [ebx + 0xc], 0x28
mov edi, eax
push 4
pop ebx
mov ecx, 0x9000
add esi, dword [ebp - 0x148]
mov eax, dword [ebp + edi*4 - 0x10]
cdq
test word [esi + 0x10], cx
je 0x47e85e
push edx
push eax
mov ecx, esi
call fcn.00473b11
pop ecx
pop ecx
mov ecx, 0x9000
jmp 0x47e867
mov dword [esi], eax
mov dword [esi + 4], edx
mov word [esi + 0x10], bx
inc edi
add esi, 0x28
cmp edi, 3
jl 0x47e841
mov ebx, dword [ebp - 0x14]
jmp 0x47a06e
mov edx, ebx
mov ecx, edi
call fcn.00479b23
mov edx, dword [ebx + 4]
mov dword [ebp - 0x15c], eax
add edx, edx
mov eax, dword [ebp - 0x140]
cmp dword [ebx + 0xc], 0xffffffff
mov ecx, dword [eax + 0x10]
mov eax, dword [ecx + edx*8 + 4]
mov dword [ebp - 0x1c], eax
mov ecx, dword [eax + 4]
mov edi, dword [ecx]
movzx edx, byte [edi + 5]
mov esi, edx
mov dword [ebp - 0xbc], edx
cmovne esi, dword [ebx + 0xc]
cmp byte [edi + 0x11], 3
jae 0x47e8d0
mov eax, dword [edi + 0x44]
xor ecx, ecx
cmp dword [eax], ecx
je 0x47e8d2
cmp dword [edi + 0x54], ecx
jg 0x47e8d0
jl 0x47e8d2
cmp dword [edi + 0x50], ecx
jbe 0x47e8d2
mov esi, edx
cmp byte [edi + 0xf], 0
jne 0x47e8e8
cmp dword [edi], 0x402cd0
je 0x47e8e8
mov ecx, dword [edi + 0xb8]
jmp 0x47e8ed
mov ecx, 0x424594
push 5
pop eax
cmp esi, eax
jne 0x47e924
test ecx, ecx
je 0x47e97d
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x47e8ff
sub ecx, edx
test ecx, 0x3fffffff
je 0x47e977
mov ecx, edi
call fcn.004668da
mov edx, dword [ebp - 0xbc]
test eax, eax
je 0x47e97d
push 5
pop eax
cmp esi, edx
je 0x47e97f
cmp edx, eax
je 0x47e930
cmp esi, eax
jne 0x47e97f
mov eax, dword [ebp - 0x140]
cmp byte [eax + 0x55], 0
je 0x47f779
mov ecx, dword [ebp - 0x154]
cmp dword [eax + 0xc0], ecx
jg 0x47f779
push 5
pop ecx
cmp edx, ecx
jne 0x47e9b2
mov edx, eax
mov ecx, edi
call fcn.004669b8
mov dword [ebp - 0x150], eax
test eax, eax
jne 0x47e989
mov edx, esi
mov ecx, edi
call fcn.0046679e
jmp 0x47e9cf
mov edx, dword [ebp - 0xbc]
mov esi, edx
mov eax, dword [ebp - 0x150]
test eax, eax
je 0x47e98f
mov esi, dword [ebp - 0xbc]
mov edx, esi
mov ecx, edi
call fcn.0046679e
mov esi, dword [ebp - 0x15c]
mov ecx, 0x2202
mov word [esi + 0x10], cx
cmp eax, 6
jne 0x47e9ea
xor eax, eax
mov ecx, eax
jmp 0x47e9f3
push 4
pop eax
cmp edx, eax
jne 0x47e9c6
mov edx, dword [ebp - 0x168]
mov ecx, edi
call fcn.0046679e
cmp dword [ebp - 0x150], 0
jne 0x47e989
mov ecx, dword [ebp - 0x1c]
xor edx, edx
push 5
pop eax
cmp esi, eax
sete dl
inc edx
call fcn.0047278e
mov dword [ebp - 0x150], eax
jmp 0x47e985
mov ecx, dword [eax*4 + 0x424bf8]
xor eax, eax
mov dword [esi + 8], ecx
test ecx, ecx
jne 0x47e9fe
mov ecx, eax
jmp 0x47ea10
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x47ea01
sub ecx, edx
and ecx, 0x3fffffff
mov eax, dword [ebp - 0x154]
movzx edx, byte [ebp - 0x14c]
mov dword [esi + 0xc], ecx
mov ecx, esi
mov byte [esi + 0x12], al
call fcn.0047333c
mov ecx, dword [ebp - 0x150]
jmp 0x47cf25
mov eax, dword [ebx + 8]
test eax, eax
je 0x47ea43
imul eax, eax, 0x28
add eax, esi
jmp 0x47ea45
xor eax, eax
mov edx, dword [ebp - 0x140]
lea ecx, [edi + 0x7c]
push eax
push dword [ebx + 4]
call fcn.004afb83
pop ecx
jmp 0x47c8e5
mov eax, dword [ebp - 0x140]
mov ecx, dword [ebx + 4]
add ecx, ecx
mov eax, dword [eax + 0x10]
mov ecx, dword [eax + ecx*8 + 4]
call fcn.0046bcc9
mov ecx, eax
mov dword [ebp - 0x150], ecx
test ecx, ecx
je 0x47ad96
cmp ecx, 0x65
jne 0x47a28b
xor eax, eax
mov dword [ebp - 0x150], eax
jmp 0x47f469
xor eax, eax
cmp dword [ebx + 4], eax
jne 0x47ead9
mov edx, dword [ebp - 0x140]
mov eax, dword [ebx + 8]
mov edx, dword [edx + 4]
test edx, edx
je 0x47a0e4
lea esi, [eax + 1]
mov eax, dword [edx + 0x98]
mov ecx, esi
xor ecx, eax
and ecx, 3
xor ecx, eax
mov dword [edx + 0x98], ecx
mov edx, dword [edx + 8]
test edx, edx
jne 0x47eab8
jmp 0x479ff6
mov ecx, dword [ebx + 8]
mov eax, dword [edi + 0x98]
inc ecx
xor ecx, eax
and ecx, 3
xor ecx, eax
mov dword [edi + 0x98], ecx
jmp 0x479d7d
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x60]
mov eax, dword [eax + ecx*4]
mov eax, dword [eax + 0x2c]
or byte [eax + 1], 0x40
jmp 0x479d7d
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x60]
mov eax, dword [eax + ecx*4]
mov eax, dword [eax + 0x2c]
and byte [eax + 1], 0xbf
jmp 0x479d7d
mov al, byte [ebx + 0xc]
mov byte [ebp - 0x19c], al
test al, al
jne 0x47eb44
mov eax, dword [ebp - 0x140]
push 4
pop edx
mov eax, dword [eax + 0x24]
and eax, edx
xor edx, edx
cmp eax, edx
jne 0x47a0e4
mov ecx, dword [ebp - 0x140]
mov eax, dword [ebx + 4]
push dword [ebp - 0x19c]
mov edx, dword [ebx + 8]
add eax, eax
mov ecx, dword [ecx + 0x10]
mov ecx, dword [ecx + eax*8 + 4]
call fcn.004726a3
pop ecx
mov ecx, eax
mov dword [ebp - 0x150], ecx
test ecx, ecx
je 0x479d7d
cmp cl, 6
jne 0x47a28b
push dword [ebx + 0x10]
push 0x42e838
jmp 0x47f76e
mov esi, dword [ebx + 0x10]
mov edx, esi
mov ecx, dword [ebp - 0x140]
call fcn.004b0dcc
mov ecx, eax
mov dword [ebp - 0x150], ecx
test esi, esi
je 0x47aa1e
mov edx, dword [esi + 8]
mov ecx, edi
call fcn.00477b50
jmp 0x47c52d
imul edx, dword [ebx + 8], 0x28
lea edi, [ebp - 0xa0]
push 0xa
xor eax, eax
pop ecx
rep stosd dword es:[edi], eax
mov eax, dword [ebp - 0x140]
lea ecx, [ebp - 0xa0]
add edx, esi
mov dword [ebp - 0x8c], eax
call fcn.00473cad
mov dl, byte [ebp - 0x154]
lea ecx, [ebp - 0xa0]
mov dword [ebp - 0x150], eax
call fcn.0047408a
mov edi, dword [ebp - 0x144]
test eax, eax
je 0x47ec20
mov edx, dword [ebx + 4]
lea ecx, [edi + 0x7c]
push ecx
mov ecx, dword [ebp - 0x140]
push eax
call fcn.004b09f9
pop ecx
pop ecx
mov dword [ebp - 0x150], eax
mov eax, 0x9000
test dword [ebp - 0x90], eax
jne 0x47ec3a
cmp dword [ebp - 0x88], 0
je 0x47dc3c
lea ecx, [ebp - 0xa0]
call fcn.004736a6
jmp 0x47dc3c
mov ecx, dword [ebp - 0x140]
inc dword [ecx + 0xcc]
push dword [ebx + 0x10]
mov edx, dword [ebx + 4]
call fcn.004b0ccc
mov edx, dword [ebp - 0x140]
pop ecx
dec dword [edx + 0xcc]
jmp 0x47dd12
xor eax, eax
mov dword [ebp - 0xbc], eax
mov eax, dword [ebx + 0x10]
mov esi, dword [eax + 8]
test esi, esi
je 0x47f7b4
mov edi, dword [esi]
test edi, edi
je 0x47f7ae
lea eax, [ebp - 0xbc]
push eax
push esi
call dword [edi + 0x18]
pop ecx
pop ecx
mov ecx, dword [ebp - 0x144]
mov edx, esi
mov dword [ebp - 0x150], eax
call fcn.00477b50
mov ecx, dword [ebp - 0x150]
test ecx, ecx
jne 0x47f675
mov eax, dword [ebp - 0xbc]
push dword [ebp - 0x168]
mov ecx, dword [ebp - 0x144]
mov dword [eax], esi
xor eax, eax
mov edx, dword [ebx + 4]
push eax
call fcn.0047984f
pop ecx
pop ecx
test eax, eax
je 0x47f79f
mov ecx, dword [ebp - 0xbc]
mov dword [eax + 0x2c], ecx
inc dword [esi + 4]
jmp 0x47a06e
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x60]
mov esi, dword [eax + ecx*4]
call fcn.004c32c2
test eax, eax
jne 0x47b5b0
push eax
push 8
pop eax
push eax
call fcn.00459372
mov edi, eax
pop ecx
pop ecx
test edi, edi
je 0x47b5aa
mov ecx, dword [esi + 0x2c]
mov edx, ebx
mov dword [edi], ecx
imul ecx, dword [ebx + 0xc], 0x28
add ecx, dword [ebp - 0x148]
mov dword [edi + 4], ecx
mov ecx, dword [ebp - 0x144]
call fcn.00479b23
mov esi, eax
mov eax, dword [ebp - 0x154]
mov ecx, esi
mov word [esi + 0x10], ax
call fcn.004736a6
mov eax, 0x1a01
mov dword [esi], 0x42e858
mov dword [esi + 8], edi
mov word [esi + 0x10], ax
mov byte [esi + 0x13], 0x70
mov dword [esi + 0x24], 0x47873e
jmp 0x47a06e
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x60]
imul edx, dword [ebx + 0xc], 0x28
mov edi, dword [edi + 0x5c]
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0x18], eax
add edx, esi
mov esi, dword [eax + 0x2c]
mov ecx, dword [edx + 0x28]
mov eax, dword [esi]
mov dword [ebp - 0x24], eax
mov eax, dword [eax]
mov dword [ebp - 0x15c], eax
mov eax, dword [edx]
mov dword [ebp - 0x1c], eax
xor eax, eax
test ecx, ecx
jle 0x47edbc
add edx, 0x50
mov dword [edi + eax*4], edx
inc eax
add edx, 0x28
cmp eax, ecx
jl 0x47edb1
push edi
mov edi, dword [ebp - 0x15c]
push ecx
push dword [ebx + 0x10]
push dword [ebp - 0x1c]
push esi
call dword [edi + 0x20]
mov edx, dword [ebp - 0x24]
add esp, 0x14
mov ecx, dword [ebp - 0x144]
mov dword [ebp - 0x150], eax
call fcn.00477b50
mov ecx, dword [ebp - 0x150]
test ecx, ecx
jne 0x47f675
push esi
call dword [edi + 0x28]
pop ecx
mov ecx, dword [ebp - 0x18]
xor edx, edx
mov byte [ecx + 2], dl
test eax, eax
je 0x47a06e
jmp 0x47f469
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x60]
imul esi, dword [ebx + 0xc], 0x28
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0x1c], eax
add esi, dword [ebp - 0x148]
cmp byte [eax + 2], 0
je 0x47ee43
mov eax, 0x9000
test word [esi + 0x10], ax
jne 0x47aee0
mov eax, dword [ebp - 0x154]
jmp 0x479ff2
mov eax, dword [eax + 0x2c]
lea edi, [ebp - 0x110]
push 8
mov eax, dword [eax]
mov dword [ebp - 0x24], eax
mov eax, dword [eax]
mov dword [ebp - 0x15c], eax
pop eax
mov ecx, eax
xor eax, eax
rep stosd dword es:[edi], eax
mov al, byte [ebp - 0x14c]
mov ecx, dword [ebp - 0x154]
mov dword [ebp - 0x110], esi
mov byte [ebp - 0xf8], al
test byte [ebx + 2], cl
je 0x47ee91
mov ecx, esi
call fcn.00473ac7
xor eax, eax
mov dword [esi], eax
mov eax, 0x401
jmp 0x47eea3
mov ax, word [esi + 0x10]
mov edx, 0xf241
and ax, dx
or ax, cx
movzx eax, ax
mov word [esi + 0x10], ax
lea eax, [ebp - 0x110]
push dword [ebx + 8]
push eax
mov eax, dword [ebp - 0x1c]
push dword [eax + 0x2c]
mov eax, dword [ebp - 0x15c]
call dword [eax + 0x2c]
mov edi, dword [ebp - 0x144]
add esp, 0xc
mov edx, dword [ebp - 0x24]
mov ecx, edi
mov dword [ebp - 0x150], eax
call fcn.00477b50
cmp dword [ebp - 0xfc], 0
jle 0x47ef04
push esi
call fcn.00477eec
pop ecx
push eax
push 0x42dc64
push edi
call fcn.00474562
mov eax, dword [ebp - 0xfc]
add esp, 0xc
mov dword [ebp - 0x150], eax
movzx edx, byte [ebp - 0x14c]
mov ecx, esi
call fcn.0047333c
jmp 0x47c52d
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x60]
mov edi, dword [eax + ecx*4]
cmp byte [edi + 2], 0
jne 0x47ad96
mov eax, dword [edi + 0x2c]
push eax
mov esi, dword [eax]
mov ecx, dword [esi]
mov dword [ebp - 0x1c], ecx
call dword [ecx + 0x24]
pop ecx
mov ecx, dword [ebp - 0x144]
mov edx, esi
mov dword [ebp - 0x150], eax
call fcn.00477b50
mov ecx, dword [ebp - 0x150]
test ecx, ecx
jne 0x47f675
mov eax, dword [ebp - 0x1c]
push dword [edi + 0x2c]
call dword [eax + 0x28]
pop ecx
test eax, eax
jne 0x47df86
mov edi, dword [ebp - 0x144]
mov esi, dword [ebp - 0x148]
imul eax, dword [ebx + 8], 0x14
mov ecx, dword [ebp - 0x13c]
lea ebx, [ecx - 0x14]
add ebx, eax
jmp 0x47df92
mov ecx, dword [ebp - 0x140]
mov edx, 0x4000000
mov eax, dword [ecx + 0x20]
or dword [ecx + 0x20], edx
and eax, edx
mov edx, dword [ebp - 0x154]
mov dword [ebp - 0x1c], eax
mov eax, dword [ecx + 0x24]
mov dword [ecx + 0x24], eax
imul esi, dword [ebx + 4], 0x28
mov eax, dword [ebx + 0x10]
add esi, dword [ebp - 0x148]
mov edi, dword [eax + 8]
mov ecx, esi
call fcn.0047333c
mov ecx, eax
mov dword [ebp - 0x150], ecx
test ecx, ecx
jne 0x47f675
push dword [esi + 8]
mov eax, dword [edi]
push edi
call dword [eax + 0x4c]
cmp dword [ebp - 0x1c], 0
pop ecx
pop ecx
mov dword [ebp - 0x150], eax
jne 0x47efff
mov ecx, dword [ebp - 0x140]
mov eax, dword [ecx + 0x24]
and dword [ecx + 0x20], 0xfbffffff
mov dword [ecx + 0x24], eax
mov edx, edi
mov edi, dword [ebp - 0x144]
mov ecx, edi
call fcn.00477b50
jmp 0x47c526
mov ecx, dword [ebp - 0x140]
xorps xmm0, xmm0
movlpd qword [ebp - 0x28], xmm0
cmp byte [ecx + 0x57], 0
jne 0x47b5b6
mov eax, dword [ebx + 0x10]
mov esi, dword [eax + 8]
mov dword [ebp - 0x1c], esi
test esi, esi
je 0x47f7b4
mov edi, dword [esi]
test edi, edi
je 0x47f7ae
mov edx, dword [ebx + 8]
xor ecx, ecx
cmp dword [edi + 0x34], ecx
je 0x47a06e
mov eax, dword [ebp - 0x140]
mov al, byte [eax + 0x5c]
mov byte [ebp - 0x161], al
mov eax, dword [ebp - 0x144]
mov eax, dword [eax + 0x5c]
mov dword [ebp - 0x15c], eax
imul eax, dword [ebx + 0xc], 0x28
add eax, dword [ebp - 0x148]
test edx, edx
jle 0x47f094
mov esi, dword [ebp - 0x15c]
mov dword [esi + ecx*4], eax
add eax, 0x28
inc ecx
cmp ecx, edx
jl 0x47f086
mov esi, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x140]
mov al, byte [ebx + 2]
mov byte [ecx + 0x5c], al
lea eax, [ebp - 0x28]
push eax
push dword [ebp - 0x15c]
push edx
push esi
call dword [edi + 0x34]
mov ecx, dword [ebp - 0x140]
add esp, 0x10
mov edi, dword [ebp - 0x144]
mov edx, esi
mov dword [ebp - 0x150], eax
mov al, byte [ebp - 0x161]
mov byte [ecx + 0x5c], al
mov ecx, edi
call fcn.00477b50
mov ecx, dword [ebp - 0x150]
test ecx, ecx
jne 0x47f101
xor edx, edx
cmp dword [ebx + 4], edx
mov edx, dword [ebp - 0x140]
je 0x47f132
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x28]
mov dword [edx + 0x2c], ecx
mov ecx, dword [ebp - 0x150]
mov dword [edx + 0x28], eax
jmp 0x47f132
cmp cl, 0x13
jne 0x47f12c
mov eax, dword [ebx + 0x10]
cmp byte [eax + 0x10], 0
je 0x47f12c
movzx ecx, word [ebx + 2]
push 4
pop eax
cmp cx, ax
jne 0x47f7bb
xor eax, eax
mov dword [ebp - 0x150], eax
jmp 0x479ff6
mov edx, dword [ebp - 0x140]
mov eax, dword [ebp - 0x154]
add dword [edi + 0x28], eax
push 0
pop eax
adc dword [edi + 0x2c], eax
test ecx, ecx
jne 0x47a291
jmp 0x479ff6
mov edx, ebx
mov ecx, edi
call fcn.00479b23
mov ecx, dword [ebp - 0x140]
mov edx, dword [ebx + 4]
add edx, edx
mov ecx, dword [ecx + 0x10]
mov ecx, dword [ecx + edx*8 + 4]
mov ecx, dword [ecx + 4]
mov ecx, dword [ecx + 0x30]
mov dword [eax], ecx
xor ecx, ecx
jmp 0x479ea5
mov edx, ebx
mov ecx, edi
call fcn.00479b23
mov edx, dword [ebx + 4]
mov edi, eax
mov eax, dword [ebp - 0x140]
add edx, edx
mov ecx, dword [eax + 0x10]
mov esi, dword [ecx + edx*8 + 4]
xor ecx, ecx
mov eax, ecx
cmp dword [ebx + 0xc], ecx
je 0x47f1ac
mov ecx, esi
call fcn.0046a699
cmp eax, dword [ebx + 0xc]
cmovb eax, dword [ebx + 0xc]
mov edx, eax
mov ecx, esi
call fcn.0046b141
mov dword [edi], eax
xor eax, eax
mov dword [edi + 4], eax
jmp 0x47a06e
imul edi, dword [ebx + 0xc], 0x28
mov esi, dword [ebx + 0x10]
add edi, dword [ebp - 0x148]
cmp dword [esi], edi
je 0x47f209
mov eax, dword [ebp - 0x144]
mov byte [esi + 0x18], ch
movzx ecx, byte [esi + 0x1a]
sub ecx, 1
mov dword [esi + 0xc], eax
mov dword [esi], edi
js 0x47f209
lea edx, [ecx + 7]
lea edx, [esi + edx*4]
mov eax, dword [ebx + 8]
add eax, ecx
imul eax, eax, 0x28
push 4
add eax, dword [ebp - 0x148]
mov dword [edx], eax
pop eax
sub edx, eax
sub ecx, 1
jns 0x47f1ef
mov ax, word [edi + 0x10]
mov ecx, 0xf241
and ax, cx
or ax, word [ebp - 0x154]
mov word [edi + 0x10], ax
lea eax, [esi + 0x1c]
mov ecx, dword [esi + 4]
push eax
movzx eax, byte [esi + 0x1a]
push eax
push esi
call dword [ecx + 0x10]
mov eax, dword [esi + 0x14]
add esp, 0xc
test eax, eax
je 0x47f292
jle 0x47f269
mov dl, byte [ebp - 0x154]
mov ecx, edi
call fcn.0047408a
mov edi, dword [ebp - 0x144]
push eax
push 0x42dc64
push edi
call fcn.00474562
mov eax, dword [esi + 0x14]
add esp, 0xc
mov dword [ebp - 0x150], eax
jmp 0x47f26f
mov edi, dword [ebp - 0x144]
push dword [ebx + 4]
mov ecx, dword [ebp - 0x140]
lea edx, [edi + 0xe4]
push dword [esi + 0x10]
call fcn.00476741
pop ecx
xor eax, eax
pop ecx
mov dword [esi + 0x14], eax
jmp 0x47c52d
mov esi, dword [ebp - 0x148]
jmp 0x47ad96
imul eax, dword [ebx + 4], 0x28
mov edx, 0xf7ff
and word [eax + esi + 0x10], dx
jmp 0x47a0e4
imul edi, dword [ebx + 4], 0x28
mov edx, ebx
mov ecx, esi
add edi, esi
call fcn.00479b48
mov esi, eax
mov ecx, edx
mov eax, dword [edi + 0xc]
cdq
push edx
push eax
push ecx
push esi
call fcn.004cc460
mov esi, eax
and eax, 7
shrd esi, edx, 3
mov edx, dword [edi + 8]
movsx ecx, byte [esi + edx]
bts ecx, eax
mov byte [esi + edx], cl
jmp 0x47a06e
imul ebx, dword [ebx + 4], 0x28
mov ecx, esi
mov edx, dword [ebp - 0x14]
add ebx, esi
call fcn.00479b48
mov esi, eax
mov ecx, edx
mov eax, dword [ebx + 0xc]
cdq
push edx
push eax
push ecx
push esi
call fcn.004cc460
mov ecx, dword [ebx + 8]
mov edi, eax
mov eax, dword [ebp - 0x154]
mov esi, edi
mov ebx, dword [ebp - 0x14]
and edi, 7
shrd esi, edx, 3
movsx edx, byte [esi + ecx]
mov ecx, edi
shl eax, cl
test eax, edx
jne 0x47f340
mov eax, dword [ebp - 0x144]
inc dword [eax + 0xc4]
jmp 0x47f469
mov edi, dword [ebp - 0x144]
inc dword [edi + 0xc0]
jmp 0x479ff6
mov eax, dword [ebp - 0x140]
mov cl, byte [eax + 0x5e]
test cl, 0x41
je 0x47f41a
cmp byte [edi + 0x93], 0xfe
je 0x47f41a
mov eax, dword [ebx + 0x10]
test eax, eax
jne 0x47f385
mov eax, dword [edi + 0xc8]
test eax, eax
je 0x47f41a
test cl, 0x40
je 0x47f3b3
mov edx, eax
mov ecx, edi
call fcn.00479563
mov esi, eax
mov eax, dword [ebp - 0x140]
push esi
push dword [eax + 0xdc]
call dword [eax + 0xd8]
push esi
call fcn.0045946b
add esp, 0xc
jmp 0x47f401
mov ecx, dword [ebp - 0x140]
mov edx, dword [ebp - 0x154]
push eax
cmp dword [ecx + 0xc8], edx
jle 0x47f409
push 0x42e864
push ecx
call fcn.0045b770
add esp, 0xc
mov esi, eax
mov eax, dword [ebp - 0x140]
push esi
push edi
push dword [eax + 0xdc]
push dword [ebp - 0x154]
call dword [eax + 0xd8]
push esi
push dword [ebp - 0x140]
call fcn.00459573
add esp, 0x18
mov esi, dword [ebp - 0x148]
jmp 0x47f41a
push edi
push dword [ecx + 0xdc]
push edx
call dword [ecx + 0xd8]
add esp, 0x10
mov eax, dword [ebx + 4]
cmp eax, dword [0x401314]
jl 0x47f45f
cmp byte [ebx], 0xb5
je 0x479d7d
mov eax, dword [ebp - 0x154]
mov edx, eax
cmp dword [edi + 0x6c], eax
jle 0x47f45d
mov esi, dword [ebp - 0x170]
xor ebx, ebx
mov eax, esi
mov ecx, dword [edi + 0x68]
cmp byte [eax + ecx], 0xf
jne 0x47f452
mov dword [eax + ecx + 4], ebx
inc edx
add eax, esi
cmp edx, dword [edi + 0x6c]
jl 0x47f445
mov ebx, dword [ebp - 0x14]
xor eax, eax
inc eax
mov dword [ebx + 4], eax
inc dword [edi + 0xbc]
imul eax, dword [ebx + 8], 0x14
mov ecx, dword [ebp - 0x13c]
lea ebx, [ecx - 0x14]
add ebx, eax
jmp 0x47a06e
mov edi, dword [ebp - 0x144]
jmp 0x479dea
mov ecx, dword [ebx + 4]
mov dword [edi + 0x24], ecx
mov al, byte [ebx + 8]
mov byte [edi + 0x92], al
test ecx, ecx
je 0x47f517
movzx eax, word [ebx + 2]
test ax, ax
je 0x47f4dd
push dword [eax*4 + 0x424410]
push 0x42e5b8
push edi
call fcn.00474562
add esp, 0xc
cmp dword [ebx + 0x10], 0
je 0x47f4ee
push dword [ebx + 0x10]
push dword [edi + 0x7c]
push 0x42e5d0
push dword [ebp - 0x140]
call fcn.0045b770
add esp, 0x10
mov dword [edi + 0x7c], eax
jmp 0x47f4ee
push dword [ebx + 0x10]
push 0x42dc64
push edi
call fcn.00474562
add esp, 0xc
mov eax, ebx
sub eax, dword [ebp - 0x13c]
cdq
idiv dword [ebp - 0x170]
push dword [edi + 0x7c]
push dword [edi + 0xc8]
push eax
push 0x42e5d8
push dword [ebx + 4]
call fcn.0045b970
add esp, 0x14
mov ecx, edi
call fcn.004762f0
mov edx, dword [ebp - 0x140]
push 5
pop ecx
mov dword [ebp - 0x150], eax
cmp eax, ecx
jne 0x47f539
mov dword [edi + 0x24], ecx
jmp 0x47c22a
xor ecx, ecx
cmp dword [edi + 0x24], ecx
push 0x65
pop eax
cmovne eax, dword [ebp - 0x154]
mov dword [ebp - 0x150], eax
jmp 0x47c22a
mov ecx, 0x16e90
call fcn.004c5cb7
mov edi, dword [ebp - 0x144]
mov ecx, eax
mov edx, dword [ebp - 0x140]
mov dword [ebp - 0x150], ecx
jmp 0x47a297
mov eax, dword [ebp - 0x14]
and edx, 0x3f
mov ecx, dword [ebp - 0x1c]
add eax, eax
mov edi, dword [ebp - 0x144]
push dword [ecx + eax*8]
mov eax, dword [ebp - 0x15c]
push dword [eax]
movzx eax, byte [edx + 0x428b20]
push dword [esi*4 + 0x40214c]
push dword [eax*4 + 0x427830]
push 0x42e5f0
push edi
call fcn.00474562
add esp, 0x18
mov ecx, 0xc13
jmp 0x47a99f
push 0x42e61c
mov edi, dword [ebp - 0x144]
push edi
call fcn.00474562
pop ecx
pop ecx
push 5
pop eax
mov ecx, eax
jmp 0x47a99f
push 0x42e668
jmp 0x47f5c4
mov eax, ebx
sub eax, dword [ebp - 0x13c]
cdq
idiv dword [ebp - 0x170]
mov dword [edi + 0x20], eax
xor eax, eax
mov edx, dword [ebp - 0x140]
mov dword [ebp - 0x150], ecx
mov byte [edx + 0x55], al
jmp 0x47f531
and edx, esi
xor eax, eax
mov esi, dword [ebp - 0x13c]
or edx, eax
mov edx, dword [ebp - 0x140]
je 0x47f626
push 8
pop eax
mov ecx, eax
jmp 0x47f629
push 0xb
pop ecx
mov dword [ebp - 0x150], ecx
jmp 0x47a297
mov edi, dword [ebp - 0x144]
cmp cl, 5
jne 0x47a28b
mov eax, ebx
mov dword [edi + 0x24], ecx
sub eax, dword [ebp - 0x13c]
cdq
idiv dword [ebp - 0x170]
mov dword [edi + 0x20], eax
jmp 0x47c224
mov ecx, 0x204
jmp 0x47a99f
mov ecx, dword [esi + 0x10]
call fcn.0046af2e
mov ecx, dword [ebp - 0x150]
mov edi, dword [ebp - 0x144]
jmp 0x47a28b
mov edi, dword [ebp - 0x144]
push 0x42e528
push edi
call fcn.00474562
pop ecx
pop ecx
push 0x12
pop ecx
jmp 0x47a99f
push 0x42e77c
mov edx, 0x17b87
mov ecx, 0x30b
call fcn.004c5c95
pop ecx
mov ecx, eax
jmp 0x47d11f
push 0x4335c4
push 0x17c54
push 0x43327c
push 0x433260
push 0xb
call fcn.0045b970
add esp, 0x14
push 0xb
jmp 0x47f695
mov eax, dword [ebp - 0x168]
push 6
pop ecx
mov dword [ebp - 0x150], ecx
mov byte [edi + 0x92], al
jmp 0x47a291
mov dword [ebp - 0x150], 7
mov ecx, dword [ebp - 0x140]
call fcn.00490791
mov ecx, dword [ebp - 0x150]
cmp ecx, 7
je 0x47b5b0
jmp 0x47a28b
push dword [ebp - 0xc4]
call fcn.0045946b
pop ecx
jmp 0x47f66f
mov eax, dword [ebp - 0x154]
mov edi, dword [ebp - 0x144]
push 0x42e7cc
push edi
mov dword [ebp - 0x150], eax
call fcn.00474562
pop ecx
pop ecx
mov ecx, dword [ebp - 0x150]
jmp 0x47a28b
mov dl, byte [ebp - 0x154]
call fcn.0047408a
push eax
push 0x42dc64
mov edi, dword [ebp - 0x144]
push edi
call fcn.00474562
add esp, 0xc
jmp 0x47f74c
mov eax, dword [ebp - 0x154]
mov ecx, 0x42e7fc
push 5
pop edx
mov dword [ebp - 0x150], eax
cmp esi, edx
mov eax, 0x42e7f4
cmovne eax, ecx
push eax
push 0x42e804
jmp 0x47f768
push dword [ebp - 0xbc]
call dword [edi + 0x1c]
pop ecx
jmp 0x47b5aa
mov edi, dword [ebp - 0x144]
push 6
jmp 0x47f695
push 5
pop edx
cmp cx, dx
movzx eax, cl
cmove eax, dword [ebp - 0x168]
mov byte [edi + 0x92], al
jmp 0x47f74c
mov eax, dword [edi + 0x1c]
add eax, dword [ebp - 0x168]
or eax, dword [ebp - 0x154]
mov ecx, dword [ebp - 0x140]
mov dword [edi + 0x1c], eax
imul eax, dword [ebx + 4], 0x28
add eax, esi
mov dword [edi + 0x78], eax
cmp byte [ecx + 0x57], 0
jne 0x47b5b6
push 4
pop edx
test byte [ecx + 0x5e], dl
je 0x47f81d
xor eax, eax
push eax
push edi
push dword [ecx + 0xdc]
push edx
call dword [ecx + 0xd8]
add esp, 0x10
mov eax, ebx
mov dword [ebp - 0x150], 0x64
sub eax, dword [ebp - 0x13c]
cdq
idiv dword [ebp - 0x170]
inc eax
mov dword [edi + 0x20], eax
jmp 0x47c224
mov ecx, dword [ebp - 0x140]
mov edx, dword [ebx + 4]
mov edi, dword [ebx + 8]
mov dword [ebp - 0xc4], edx
lea esi, [ecx + 0x55]
movzx eax, byte [esi]
cmp edx, eax
je 0x47f912
test edi, edi
je 0x47f87b
mov edx, 0x204
call fcn.004c41e9
mov al, byte [ebp - 0x154]
mov edi, dword [ebp - 0x144]
jmp 0x47f8ba
test edx, edx
je 0x47f893
xor eax, eax
cmp dword [ecx + 0xc4], eax
jle 0x47f893
push 0x42e6a0
jmp 0x47f5c4
mov edi, dword [ebp - 0x144]
mov ecx, edi
mov edx, dword [ebp - 0x154]
call fcn.00476282
mov dword [ebp - 0x150], eax
test eax, eax
jne 0x47c224
mov al, byte [ebp - 0xc4]
mov ecx, edi
mov byte [esi], al
call fcn.004762f0
push 5
pop ecx
cmp eax, ecx
jne 0x47f8ed
mov eax, ebx
sub eax, dword [ebp - 0x13c]
cdq
idiv dword [ebp - 0x170]
mov dword [edi + 0x20], eax
mov al, byte [ebp - 0x154]
sub al, byte [ebp - 0xc4]
jmp 0x47f5f7
mov ecx, dword [ebp - 0x140]
call fcn.004c3d41
xor ecx, ecx
cmp dword [edi + 0x24], ecx
push 0x65
pop eax
cmovne eax, dword [ebp - 0x154]
mov dword [ebp - 0x150], eax
jmp 0x47c224
test edi, edi
mov eax, 0x42e734
mov edi, dword [ebp - 0x144]
mov ecx, 0x42e708
cmove ecx, eax
test edx, edx
mov eax, 0x42e6d8
cmovne eax, ecx
push eax
push edi
call fcn.00474562
pop ecx
pop ecx
jmp 0x47bf22
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x198], eax
mov eax, dword [ebp - 0x40]
mov dword [ebp - 0x194], eax
push 9
jmp 0x47f695
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x198], eax
mov eax, dword [ebp - 0x40]
mov dword [ebp - 0x194], eax
jmp 0x47b5b0
cmp ecx, 0x210a
jne 0x47f99e
push 0x4335c4
push 0x184e6
push 0x43327c
push 0x433260
push 0xb
call fcn.0045b970
add esp, 0x14
push 0xb
pop ecx
mov dword [ebp - 0x150], ecx
xor eax, eax
cmp dword [edi + 0x7c], eax
jne 0x47f9c1
cmp ecx, 0xc0a
je 0x47f9c1
call fcn.004c42f3
push eax
push 0x42dc64
push edi
call fcn.00474562
add esp, 0xc
mov eax, dword [ebp - 0x150]
mov dword [edi + 0x24], eax
cmp eax, 0xc0a
je 0x47f9f4
movzx eax, al
cmp eax, 0xe
je 0x47f9de
cmp eax, 0xa
jne 0x47f9f4
mov eax, dword [ebp - 0x140]
mov ecx, dword [eax]
call fcn.00458aaa
mov ecx, dword [ebp - 0x140]
mov dword [ecx + 0x4c], eax
mov eax, ebx
sub eax, esi
mov esi, dword [ebp - 0x150]
cdq
idiv dword [ebp - 0x170]
push dword [edi + 0x7c]
push dword [edi + 0xc8]
push eax
push 0x42e86c
push esi
call fcn.0045b970
mov ecx, dword [ebp - 0x168]
add esp, 0x14
cmp byte [edi + 0x95], cl
jne 0x47fa38
mov ecx, edi
call fcn.004762f0
mov ecx, dword [ebp - 0x168]
cmp esi, 0xc0a
jne 0x47fa7f
mov ecx, dword [ebp - 0x140]
call fcn.00459aa2
mov edx, dword [ebp - 0x140]
mov al, byte [ebp - 0x17d]
mov esi, dword [ebp - 0x154]
test al, al
je 0x47c230
mov ecx, dword [ebp - 0x140]
movzx edx, al
dec edx
call fcn.0049072d
mov edx, dword [ebp - 0x140]
jmp 0x47c230
cmp esi, 0xb
jne 0x47fa4b
mov edx, dword [ebp - 0x140]
cmp byte [edx + 0x55], 0
jne 0x47fa51
mov eax, dword [edx + 0x20]
or dword [edx + 0x24], ecx
mov dword [edx + 0x20], eax
jmp 0x47fa51
mov ecx, dword [ebp - 0x194]
xor eax, eax
add dword [edi + 0xb4], ecx
cmp dword [edi + 0xa0], eax
je 0x47fab8
mov ecx, edi
call fcn.004752a0
mov ecx, dword [ebp - 4]
mov eax, esi
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.004caec8
leave
ret