Function at 0x42e6d0
Capabilities:
Encrypt data using speck

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x274
mov eax, dword [0x549944]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
mov edi, ecx
mov dword [ebp - 0x204], 0
mov dword [ebp - 0x1f0], edi
mov byte [ebp - 0x245], 0
mov dword [ebp - 0x24c], 0
mov esi, dword [edi]
mov ebx, dword [edi + 0x58]
mov dword [ebp - 0x200], ebx
mov dword [ebp - 0x1ec], ebx
mov al, byte [esi + 0x46]
mov byte [ebp - 0x224], al
mov byte [ebp - 0x254], al
mov eax, dword [edi + 0x5c]
mov dword [ebp - 0x1f4], esi
mov dword [ebp - 0x1f8], 0
mov dword [ebp - 0x208], eax
call fcn.004271b0
cmp dword [edi + 0x28], 7
je 0x430b4b
mov dword [edi + 0x38], 0
mov dword [edi + 0x3c], 0
mov dword [edi + 0x68], 0
cmp dword [esi + 0x100], 0
mov dword [esi + 0x18c], 0
jne 0x434ee8
cmp dword [esi + 0x138], 0
je 0x42e79a
mov ecx, dword [esi + 0x140]
xor edx, edx
mov eax, dword [edi + 0xb0]
div ecx
sub ecx, edx
jmp 0x42e79d
or ecx, 0xffffffff
mov eax, dword [edi + 0x24]
xorps xmm0, xmm0
mov dword [ebp - 0x1fc], ecx
mov dword [ebp - 0x250], 0xff61
mov dword [ebp - 0x258], 0x17
lea eax, [eax + eax*4]
movsd qword [ebp - 0x270], xmm0
lea edx, [ebx + eax*4]
xor eax, eax
mov dword [ebp - 0x1ec], edx
inc eax
mov dl, byte [edx]
movzx ebx, dl
mov dword [ebp - 0x1f8], eax
mov byte [ebp - 0x211], dl
cmp ebx, 0xa4
ja case.0x42e7f1.83
jmp dword [ebx*4 + 0x434f64]
mov edx, dword [ebp - 0x1ec]
mov ecx, edx
mov ebx, dword [ebp - 0x208]
sub ecx, dword [ebp - 0x200]
mov eax, dword [edx + 4]
lea esi, [eax + eax*4]
mov eax, 4
mov word [ebx + esi*8 + 8], ax
mov eax, 0x66666667
imul ecx
mov ecx, dword [ebp - 0x200]
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cdq
mov dword [ebx + esi*8 + 4], edx
mov edx, dword [ebp - 0x1ec]
mov dword [ebx + esi*8], eax
mov esi, dword [ebp - 0x1f4]
mov eax, dword [edx + 8]
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea edx, [ecx + eax*4]
mov ecx, dword [ebp - 0x1fc]
mov eax, dword [ebp - 0x1f8]
add edx, 0x14
jmp 0x42e7cd
mov edx, dword [ebp - 0x1ec]
mov ebx, dword [ebp - 0x208]
mov eax, dword [edx + 4]
mov edx, dword [ebp - 0x200]
lea ecx, [eax + eax*4]
mov eax, dword [ebx + ecx*8]
lea eax, [eax + eax*4]
lea edx, [edx + eax*4]
mov eax, 0x80
mov word [ebx + ecx*8 + 8], ax
mov ecx, dword [ebp - 0x1fc]
mov eax, dword [ebp - 0x1f8]
add edx, 0x14
jmp 0x42e7cd
mov edx, dword [ebp - 0x1ec]
mov ebx, dword [ebp - 0x208]
mov eax, dword [edx + 4]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0xc]
dec eax
cdq
mov dword [ebx + ecx*8 + 4], edx
mov edx, dword [ebp - 0x1ec]
mov dword [ebx + ecx*8], eax
mov eax, 4
mov word [ebx + ecx*8 + 8], ax
cmp dword [edx + 8], 0
jne 0x433784
mov ecx, dword [ebp - 0x1fc]
mov eax, dword [ebp - 0x1f8]
add edx, 0x14
jmp 0x42e7cd
mov edx, dword [ebp - 0x1ec]
mov ebx, dword [ebp - 0x208]
mov eax, dword [edx + 4]
mov edx, dword [ebp - 0x200]
lea ecx, [eax + eax*4]
mov eax, dword [ebx + ecx*8]
lea eax, [eax + eax*4]
mov eax, dword [edx + eax*4 + 8]
lea eax, [eax + eax*4]
lea edx, [edx + eax*4]
add edx, 0xffffffec
jmp 0x42e888
mov edx, dword [ebp - 0x1ec]
mov ebx, dword [ebp - 0x208]
mov eax, dword [edx + 4]
sub edx, dword [ebp - 0x200]
lea esi, [eax + eax*4]
mov eax, 4
mov ecx, dword [ebx + esi*8]
mov word [ebx + esi*8 + 8], ax
mov eax, 0x66666667
imul edx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cdq
mov dword [ebx + esi*8], eax
lea eax, [ecx + ecx*4]
mov ecx, dword [ebp - 0x200]
mov dword [ebx + esi*8 + 4], edx
lea edx, [ecx + eax*4]
mov esi, dword [ebp - 0x1f4]
mov ecx, dword [ebp - 0x1fc]
mov eax, dword [ebp - 0x1f8]
add edx, 0x14
jmp 0x42e7cd
mov edx, dword [ebp - 0x1ec]
mov ecx, dword [ebp - 0x208]
mov eax, dword [edx + 0xc]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 8], 1
je 0x42e892
jmp 0x42e9ab
mov edx, dword [ebp - 0x1ec]
mov ecx, edx
mov eax, 0x66666667
sub ecx, dword [ebp - 0x200]
imul ecx
sar edx, 3
mov esi, edx
shr esi, 0x1f
add esi, edx
mov edx, dword [ebp - 0x1ec]
mov ecx, dword [edx + 4]
test ecx, ecx
jne 0x4349dd
mov edx, dword [edi + 0xc4]
test edx, edx
je 0x4349d7
mov eax, dword [edx + 4]
mov ecx, edx
mov esi, dword [ebp - 0x1f4]
dec dword [edi + 0xcc]
mov dword [edi + 0xc4], eax
mov eax, dword [edi + 0x2c]
add dword [esi + 0x60], eax
mov dword [esi + 0x5c], eax
call fcn.00427b70
mov ebx, dword [edi + 0x58]
mov ecx, eax
mov eax, dword [ebp - 0x1ec]
mov dword [ebp - 0x200], ebx
cmp dword [eax + 8], 4
jne 0x42ea27
lea eax, [ecx + ecx*4]
mov ecx, dword [ebx + eax*4 + 8]
dec ecx
mov eax, dword [edi + 0x5c]
mov dword [ebp - 0x208], eax
lea eax, [ecx + ecx*4]
mov ecx, dword [ebp - 0x1fc]
lea edx, [ebx + eax*4]
mov eax, dword [ebp - 0x1f8]
add edx, 0x14
jmp 0x42e7cd
mov edx, dword [ebp - 0x1ec]
mov eax, dword [edx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x5c]
lea ecx, [eax + ecx*8]
mov eax, 0x2460
test word [ecx + 8], ax
je 0x42ea97
call fcn.0042e670
mov ecx, eax
mov eax, dword [ebp - 0x1ec]
mov eax, dword [eax + 4]
cdq
mov dword [ecx], eax
mov eax, dword [ebp - 0x1f8]
mov dword [ecx + 4], edx
mov edx, dword [ebp - 0x1ec]
mov ecx, dword [ebp - 0x1fc]
add edx, 0x14
jmp 0x42e7cd
mov eax, 4
mov word [ecx + 8], ax
mov eax, dword [ebp - 0x1ec]
mov eax, dword [eax + 4]
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov edx, dword [ebp - 0x1ec]
mov ecx, dword [ebp - 0x1fc]
mov eax, dword [ebp - 0x1f8]
add edx, 0x14
jmp 0x42e7cd
mov edx, dword [ebp - 0x1ec]
mov eax, dword [edx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x5c]
lea edx, [eax + ecx*8]
mov eax, 0x2460
test word [edx + 8], ax
je 0x42eaf1
mov ecx, edx
call fcn.0042e670
mov edx, eax
jmp 0x42eafa
mov eax, 4
mov word [edx + 8], ax
mov eax, dword [ebp - 0x1ec]
mov eax, dword [eax + 0x10]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [edx], ecx
mov ecx, dword [ebp - 0x1fc]
mov dword [edx + 4], eax
mov edx, dword [ebp - 0x1ec]
mov eax, dword [ebp - 0x1f8]
add edx, 0x14
jmp 0x42e7cd
mov edx, dword [ebp - 0x1ec]
mov eax, dword [edx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x5c]
lea ecx, [eax + ecx*8]
mov eax, 0x2460
test word [ecx + 8], ax
je 0x42eb4b
call fcn.0042e670
mov ecx, eax
mov edx, dword [ebp - 0x1ec]
mov eax, 8
mov word [ecx + 8], ax
mov eax, dword [ebp - 0x1ec]
mov eax, dword [eax + 0x10]
movsd xmm0, qword [eax]
mov eax, dword [ebp - 0x1f8]
movsd qword [ecx], xmm0
mov ecx, dword [ebp - 0x1fc]
add edx, 0x14
jmp 0x42e7cd
mov ebx, dword [ebp - 0x1ec]
mov eax, dword [ebx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x5c]
lea esi, [eax + ecx*8]
mov eax, 0x2460
test word [esi + 8], ax
je 0x42eba7
mov ecx, esi
call fcn.0042e670
mov esi, eax
jmp 0x42ebb0
mov eax, 4
mov word [esi + 8], ax
mov edx, dword [ebx + 0x10]
mov byte [ebx], 0x45
test edx, edx
jne 0x42ebbe
xor ecx, ecx
jmp 0x42ebd8
mov ecx, edx
lea edi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x42ebc3
sub ecx, edi
mov edi, dword [ebp - 0x1f0]
and ecx, 0x3fffffff
mov dword [ebx + 4], ecx
mov bl, byte [ebp - 0x224]
cmp bl, 1
je 0x42ec62
push 0
push 1
push 0xffffffffffffffff
mov ecx, esi
call fcn.00425590
add esp, 0xc
mov dword [ebp - 0x204], eax
test byte [esi + 8], 2
je 0x42ec18
cmp byte [esi + 0xa], bl
je 0x42ec18
mov dl, bl
mov ecx, esi
call fcn.00407a30
test eax, eax
jne 0x434f21
mov ecx, dword [ebp - 0x1ec]
mov eax, 0x800
or word [esi + 8], ax
mov dword [esi + 0x18], 0
cmp byte [ecx + 1], 0xf9
jne 0x42ec4c
mov edx, dword [ecx + 0x10]
test edx, edx
je 0x42ec4c
mov ecx, dword [ebp - 0x1f4]
call fcn.00405100
mov ecx, dword [ebp - 0x1ec]
mov byte [ecx + 1], 0xf9
mov eax, dword [esi + 0x10]
mov dword [ecx + 0x10], eax
mov eax, dword [ebp - 0x1ec]
mov ecx, dword [esi + 0xc]
mov dword [eax + 4], ecx
mov esi, dword [ebp - 0x1f4]
cmp ecx, dword [esi + 0x64]
jg 0x434c8d
mov ebx, dword [ebp - 0x1ec]
mov eax, dword [ebx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x5c]
lea ecx, [eax + ecx*8]
mov eax, 0x2460
test word [ecx + 8], ax
je 0x42ec95
call fcn.0042e670
mov ecx, eax
mov eax, 0xa02
mov word [ecx + 8], ax
mov eax, dword [ebx + 0x10]
mov dword [ecx + 0x10], eax
mov eax, dword [ebx + 4]
mov dword [ecx + 0xc], eax
mov al, byte [ebp - 0x224]
mov byte [ecx + 0xa], al
mov eax, dword [ebp - 0x1ec]
mov eax, dword [eax + 0xc]
test eax, eax
jle 0x42eaaf
mov ebx, dword [ebp - 0x208]
lea esi, [eax + eax*4]
mov eax, dword [ebp - 0x1ec]
movzx eax, word [eax + 2]
cdq
cmp dword [ebx + esi*8], eax
jne 0x42ee51
cmp dword [ebx + esi*8 + 4], edx
mov edx, dword [ebp - 0x1ec]
mov esi, dword [ebp - 0x1f4]
jne 0x42e892
mov eax, 0xa10
mov word [ecx + 8], ax
mov ecx, dword [ebp - 0x1fc]
mov eax, dword [ebp - 0x1f8]
add edx, 0x14
jmp 0x42e7cd
mov ebx, dword [ebp - 0x1ec]
mov eax, dword [ebx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x5c]
lea edx, [eax + ecx*8]
mov eax, 0x2460
test word [edx + 8], ax
je 0x42ed3c
mov ecx, edx
call fcn.0042e670
mov edx, eax
jmp 0x42ed45
mov eax, 4
mov word [edx + 8], ax
cmp dword [ebx + 4], 0
lea esi, [edx + 8]
mov edi, dword [ebx + 0xc]
mov eax, 1
mov ecx, dword [ebx + 8]
mov ebx, 0x101
cmovne eax, ebx
mov dword [edx + 0xc], 0
sub edi, ecx
movzx ebx, ax
mov word [esi], bx
test edi, edi
jle 0x42ed9c
mov eax, 0x2460
test word [esi + 0x28], ax
lea esi, [esi + 0x28]
je 0x42ed8d
lea ecx, [esi - 8]
call fcn.00424dd0
mov eax, 0x2460
dec edi
mov word [esi], bx
mov dword [esi + 4], 0
test edi, edi
jg 0x42ed77
mov edx, dword [ebp - 0x1ec]
mov esi, dword [ebp - 0x1f4]
mov edi, dword [ebp - 0x1f0]
mov ecx, dword [ebp - 0x1fc]
mov eax, dword [ebp - 0x1f8]
add edx, 0x14
jmp 0x42e7cd
mov edx, dword [ebp - 0x1ec]
mov ebx, dword [ebp - 0x208]
mov eax, dword [edx + 4]
lea ecx, [eax + eax*4]
mov ax, word [ebx + ecx*8 + 8]
and ax, word [ebp - 0x250]
or ax, 1
mov word [ebx + ecx*8 + 8], ax
mov ecx, dword [ebp - 0x1fc]
mov eax, dword [ebp - 0x1f8]
add edx, 0x14
jmp 0x42e7cd
mov edx, dword [ebp - 0x1ec]
mov eax, dword [edx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x5c]
lea esi, [eax + ecx*8]
mov eax, 0x2460
test word [esi + 8], ax
je 0x42ee25
mov ecx, esi
call fcn.0042e670
mov esi, eax
jmp 0x42ee2e
mov eax, 4
mov word [esi + 8], ax
mov eax, dword [ebp - 0x1ec]
mov ecx, esi
push 0
push 0
push dword [eax + 4]
mov edx, dword [eax + 0x10]
call fcn.00425590
mov al, byte [ebp - 0x224]
add esp, 0xc
mov byte [esi + 0xa], al
mov edx, dword [ebp - 0x1ec]
mov esi, dword [ebp - 0x1f4]
mov ecx, dword [ebp - 0x1fc]
mov eax, dword [ebp - 0x1f8]
add edx, 0x14
jmp 0x42e7cd
mov edx, dword [ebp - 0x1ec]
mov eax, dword [edx + 4]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x74]
lea esi, [eax + ecx*8]
lea ecx, [esi - 0x28]
call fcn.00425470
test eax, eax
jne 0x434c8d
mov eax, dword [ebp - 0x1ec]
lea edx, [esi - 0x28]
mov ecx, dword [ebp - 0x208]
push 0x800
mov eax, dword [eax + 8]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
call fcn.004254d0
mov edx, dword [ebp - 0x1ec]
add esp, 4
mov esi, dword [ebp - 0x1f4]
mov ecx, dword [ebp - 0x1fc]
mov eax, dword [ebp - 0x1f8]
add edx, 0x14
jmp 0x42e7cd
mov edx, dword [ebp - 0x1ec]
mov ecx, dword [ebp - 0x208]
mov eax, dword [edx + 4]
mov ebx, dword [edx + 0xc]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov eax, dword [edx + 8]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
nop dword [eax]
mov eax, 0x2460
test word [esi + 8], ax
jne 0x42ef11
cmp dword [esi + 0x18], 0
je 0x42ef18
mov ecx, esi
call fcn.00424e50
movups xmm0, xmmword [edi]
mov eax, 1
movups xmmword [esi], xmm0
movups xmm0, xmmword [edi + 0x10]
movups xmmword [esi + 0x10], xmm0
movq xmm0, qword [edi + 0x20]
movq qword [esi + 0x20], xmm0
mov word [edi + 8], ax
mov eax, 0x1000
mov dword [edi + 0x18], 0
test word [esi + 8], ax
je 0x42ef5a
mov ecx, esi
call fcn.00424b10
test eax, eax
jne 0x430b39
add edi, 0x28
add esi, 0x28
sub ebx, 1
jne 0x42ef00
mov edx, dword [ebp - 0x1ec]
mov esi, dword [ebp - 0x1f4]
mov edi, dword [ebp - 0x1f0]
mov ecx, dword [ebp - 0x1fc]
mov eax, dword [ebp - 0x1f8]
add edx, 0x14
jmp 0x42e7cd
mov edx, dword [ebp - 0x1ec]
mov ecx, dword [ebp - 0x208]
mov eax, dword [edx + 4]
mov ebx, dword [edx + 0xc]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov eax, dword [edx + 8]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
nop dword [eax]
push 0x1000
mov edx, edi
mov ecx, esi
call fcn.004254d0
mov eax, 0x1000
add esp, 4
test word [esi + 8], ax
je 0x42efdb
mov ecx, esi
call fcn.00424b10
test eax, eax
jne 0x430b39
mov eax, ebx
dec ebx
test eax, eax
je 0x42ed9c
add esi, 0x28
add edi, 0x28
jmp 0x42efb0
mov edx, dword [ebp - 0x1ec]
mov ebx, dword [ebp - 0x208]
push 0x1000
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea edx, [ebx + eax*8]
mov eax, dword [ebp - 0x1ec]
mov eax, dword [eax + 8]
lea eax, [eax + eax*4]
lea ecx, [ebx + eax*8]
call fcn.004254d0
mov edx, dword [ebp - 0x1ec]
add esp, 4
mov ecx, dword [ebp - 0x1fc]
mov eax, dword [ebp - 0x1f8]
add edx, 0x14
jmp 0x42e7cd
mov edx, dword [ebp - 0x1ec]
mov ebx, dword [ebp - 0x208]
mov eax, dword [edx + 8]
lea eax, [eax + eax*4]
lea ecx, [ebx + eax*8]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
mov edx, dword [ebx + eax*8]
mov eax, dword [ebx + eax*8 + 4]
mov ebx, 0x2460
test word [ecx + 8], bx
je 0x42f08a
push eax
push edx
call fcn.00425330
mov edx, dword [ebp - 0x1ec]
add esp, 8
mov ecx, dword [ebp - 0x1fc]
mov eax, dword [ebp - 0x1f8]
add edx, 0x14
jmp 0x42e7cd
mov dword [ecx + 4], eax
mov eax, 4
mov dword [ecx], edx
mov edx, dword [ebp - 0x1ec]
mov word [ecx + 8], ax
mov ecx, dword [ebp - 0x1fc]
mov eax, dword [ebp - 0x1f8]
add edx, 0x14
jmp 0x42e7cd
mov edx, dword [ebp - 0x1ec]
mov ecx, dword [ebp - 0x208]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea ebx, [ecx + eax*8]
mov eax, dword [edx + 8]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov eax, edx
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
movzx ecx, word [ebx + 8]
mov al, byte [edi + 8]
or al, cl
test al, 1
je 0x42f14f
mov eax, 0x2460
test word [esi + 8], ax
je 0x42f120
mov ecx, esi
call fcn.00424dd0
mov edx, dword [ebp - 0x1ec]
mov esi, dword [ebp - 0x1f4]
mov edi, dword [ebp - 0x1f0]
mov ecx, dword [ebp - 0x1fc]
mov eax, dword [ebp - 0x1f8]
add edx, 0x14
jmp 0x42e7cd
mov edx, dword [ebp - 0x1ec]
mov eax, 1
mov edi, dword [ebp - 0x1f0]
mov ecx, dword [ebp - 0x1fc]
mov word [esi + 8], ax
mov esi, dword [ebp - 0x1f4]
mov eax, dword [ebp - 0x1f8]
add edx, 0x14
jmp 0x42e7cd
test ecx, 0x4000
je 0x42f166
mov ecx, ebx
call fcn.00424b90
test eax, eax
jne 0x430b39
mov eax, 0x4000
test word [edi + 8], ax
je 0x42f180
mov ecx, edi
call fcn.00424b90
test eax, eax
jne 0x430b39
test byte [ebx + 8], 0x12
jne 0x42f1a0
mov dl, byte [ebp - 0x224]
mov ecx, ebx
push 0
call fcn.00424be0
add esp, 4
test eax, eax
jne 0x430b39
test byte [edi + 8], 0x12
jne 0x42f1c0
mov dl, byte [ebp - 0x224]
mov ecx, edi
push 0
call fcn.00424be0
add esp, 4
test eax, eax
jne 0x430b39
mov eax, dword [ebp - 0x1f4]
mov ecx, dword [ebx + 0xc]
add ecx, dword [edi + 0xc]
mov dword [ebp - 0x21c], ecx
cmp ecx, dword [eax + 0x64]
jg 0x434c87
xor eax, eax
lea edx, [ecx + 2]
cmp esi, edi
mov ecx, esi
sete al
push eax
call fcn.00424970
add esp, 4
test eax, eax
jne 0x430b39
mov ax, word [esi + 8]
mov ecx, 0x3e00
and ax, cx
or ax, 2
mov word [esi + 8], ax
cmp esi, edi
je 0x42f221
push dword [edi + 0xc]
push dword [edi + 0x10]
push dword [esi + 0x10]
call fcn.004e8950
add esp, 0xc
push dword [ebx + 0xc]
mov eax, dword [esi + 0x10]
push dword [ebx + 0x10]
add eax, dword [edi + 0xc]
push eax
call fcn.004e8950
mov eax, dword [esi + 0x10]
add esp, 0xc
mov ecx, dword [ebp - 0x21c]
mov edx, dword [ebp - 0x1ec]
mov edi, dword [ebp - 0x1f0]
mov byte [ecx + eax], 0
mov eax, dword [esi + 0x10]
mov byte [eax + ecx + 1], 0
mov eax, 0x200
or word [esi + 8], ax
mov al, byte [ebp - 0x224]
mov dword [esi + 0xc], ecx
mov ecx, dword [ebp - 0x1fc]
mov byte [esi + 0xa], al
mov esi, dword [ebp - 0x1f4]
mov eax, dword [ebp - 0x1f8]
add edx, 0x14
jmp 0x42e7cd
mov ebx, dword [ebp - 0x1ec]
mov esi, dword [ebp - 0x208]
mov eax, dword [ebx + 4]
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
mov ecx, eax
mov dword [ebp - 0x210], eax
call fcn.0042e650
movzx eax, ax
mov dword [ebp - 0x234], eax
mov eax, dword [ebx + 8]
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
mov ecx, eax
mov dword [ebp - 0x22c], eax
call fcn.0042e650
mov edx, dword [ebp - 0x210]
movzx eax, ax
mov dword [ebp - 0x20c], eax
mov eax, dword [ebx + 0xc]
lea eax, [eax + eax*4]
lea ebx, [esi + eax*8]
mov esi, dword [ebp - 0x22c]
mov dword [ebp - 0x218], ebx
mov ax, word [esi + 8]
or ax, word [edx + 8]
movzx ecx, ax
mov al, byte [ebp - 0x20c]
and al, byte [ebp - 0x234]
test al, 4
je 0x42f4fb
mov eax, edx
mov byte [ebp - 0x211], 1
mov edx, dword [eax]
mov esi, dword [eax + 4]
mov eax, dword [ebp - 0x22c]
mov ebx, dword [eax]
mov edi, dword [eax + 4]
mov eax, dword [ebp - 0x1ec]
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x24], edi
movzx eax, byte [eax]
add eax, 0xffffffa8
cmp eax, 3
ja case.default.0x42f33e
jmp dword [eax*4 + 0x4351f8]
test esi, esi
jl 0x42f3d2
jg 0x42f353
test edx, edx
jb 0x42f3d2
test edi, edi
jl 0x42f41c
jg 0x42f365
test ebx, ebx
je 0x42f41c
or ecx, 0xffffffff
mov eax, 0x7fffffff
sub ecx, ebx
sbb eax, edi
cmp eax, esi
jg 0x42f41c
jl 0x42f383
cmp ecx, edx
jae 0x42f41c
mov esi, dword [ebp - 0x22c]
mov edx, dword [ebp - 0x210]
mov ebx, dword [ebp - 0x218]
mov ecx, edx
call fcn.00424fe0
mov ecx, esi
movsd qword [ebp - 0x220], xmm0
call fcn.00424fe0
mov eax, dword [ebp - 0x1ec]
movaps xmm1, xmm0
movsd qword [ebp - 0x240], xmm1
movzx eax, byte [eax]
add eax, 0xffffffa8
cmp eax, 3
ja case.default.0x42f3cb
jmp dword [eax*4 + 0x435208]
test edi, edi
jg 0x42f41c
jl 0x42f3dc
test ebx, ebx
jae 0x42f41c
mov eax, 1
mov ecx, 0x80000000
sub eax, ebx
mov dword [ebp - 0x21c], eax
mov eax, edx
sbb ecx, edi
add eax, 1
mov dword [ebp - 0x23c], eax
mov eax, esi
adc eax, 0
cmp ecx, eax
jg 0x42f383
jl 0x42f41c
mov eax, dword [ebp - 0x21c]
cmp eax, dword [ebp - 0x23c]
ja 0x42f383
add ebx, edx
mov dword [ebp - 0x28], ebx
adc edi, esi
mov dword [ebp - 0x24], edi
jmp 0x42f4b0
push esi
push edx
lea ecx, [ebp - 0x28]
call fcn.00409360
add esp, 8
test eax, eax
jne 0x42f383
jmp 0x42f4b0
push esi
push edx
lea ecx, [ebp - 0x28]
call fcn.004093b0
add esp, 8
test eax, eax
jne 0x42f383
jmp 0x42f4b0
mov eax, edx
or eax, esi
je 0x42f638
mov eax, edx
and eax, esi
cmp eax, 0xffffffff
jne 0x42f47c
test ebx, ebx
jne 0x42f47c
cmp edi, 0x80000000
je 0x42f383
push esi
push edx
push edi
push ebx
call fcn.0050e8e0
jmp 0x42f4aa
mov eax, edx
or eax, esi
je 0x42f638
mov eax, edx
and eax, esi
cmp eax, 0xffffffff
jne 0x42f4a1
mov edx, 1
xor esi, esi
push esi
push edx
push edi
push ebx
call fcn.0050ea70
mov dword [ebp - 0x24], edx
mov dword [ebp - 0x28], eax
mov edx, dword [ebp - 0x218]
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x24]
mov esi, dword [ebp - 0x1f4]
mov edi, dword [ebp - 0x1f0]
mov dword [edx], eax
mov ax, word [edx + 8]
mov dword [edx + 4], ecx
mov ecx, 0x3e00
and ax, cx
mov ecx, dword [ebp - 0x1fc]
or ax, 4
mov word [edx + 8], ax
mov edx, dword [ebp - 0x1ec]
mov eax, dword [ebp - 0x1f8]
add edx, 0x14
jmp 0x42e7cd
test cl, 1
jne 0x42f638
mov byte [ebp - 0x211], 0
jmp 0x42f395
addsd xmm1, qword [ebp - 0x220]
jmp 0x42f5a4
subsd xmm1, qword [ebp - 0x220]
jmp 0x42f5a4
mulsd xmm1, qword [ebp - 0x220]
jmp 0x42f5a4
movsd xmm0, qword [ebp - 0x220]
ucomisd xmm0, qword [ebp - 0x270]
lahf
test ah, 0x44
jnp 0x42f638
divsd xmm1, xmm0
jmp 0x42f5a4
movsd xmm0, qword [ebp - 0x220]
call fcn.004e61d0
movsd xmm0, qword [ebp - 0x240]
mov esi, eax
mov edi, edx
call fcn.004e61d0
mov ecx, eax
mov dword [ebp - 0x24], edx
mov eax, esi
mov dword [ebp - 0x28], ecx
or eax, edi
je 0x42f638
mov eax, esi
and eax, edi
cmp eax, 0xffffffff
jne 0x42f591
mov esi, 1
xor edi, edi
push edi
push esi
push edx
push ecx
call fcn.0050ea70
mov ecx, eax
call fcn.004e62e0
movaps xmm1, xmm0
movsd qword [ebp - 0x220], xmm1
movsd xmm0, qword [ebp - 0x220]
movsd qword [ebp - 0x240], xmm0
movsd xmm0, qword [ebp - 0x220]
ucomisd xmm0, qword [ebp - 0x240]
lahf
test ah, 0x44
jp 0x42f638
mov ax, word [ebx + 8]
mov ecx, 0x3e00
and ax, cx
movsd qword [ebx], xmm1
or ax, 8
mov word [ebx + 8], ax
mov eax, dword [ebp - 0x20c]
or al, byte [ebp - 0x234]
test al, 8
jne 0x42ed9c
cmp byte [ebp - 0x211], 0
jne 0x42ed9c
mov ecx, ebx
call fcn.00425010
mov edx, dword [ebp - 0x1ec]
mov esi, dword [ebp - 0x1f4]
mov edi, dword [ebp - 0x1f0]
mov ecx, dword [ebp - 0x1fc]
mov eax, dword [ebp - 0x1f8]
add edx, 0x14
jmp 0x42e7cd
mov edx, dword [ebp - 0x218]
mov eax, 0x2460
test word [edx + 8], ax
je 0x42f650
mov ecx, edx
jmp 0x42f0f5
mov eax, 1
mov word [edx + 8], ax
jmp 0x42ed9c
mov edx, dword [ebp - 0x1ec]
mov eax, dword [edx + 4]
test eax, eax
je 0x42e898
mov ecx, dword [ebp - 0x208]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov ecx, 0x2460
test word [eax + 8], cx
je 0x42f6ae
push 0
push 0
mov ecx, eax
call fcn.00425330
mov edx, dword [ebp - 0x1ec]
add esp, 8
mov ecx, dword [ebp - 0x1fc]
mov eax, dword [ebp - 0x1f8]
add edx, 0x14
jmp 0x42e7cd
mov ecx, 4
mov dword [eax], 0
mov word [eax + 8], cx
mov ecx, dword [ebp - 0x1fc]
mov dword [eax + 4], 0
mov eax, dword [ebp - 0x1f8]
add edx, 0x14
jmp 0x42e7cd
mov edx, dword [ebp - 0x1ec]
mov ebx, dword [ebp - 0x208]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea edi, [ebx + eax*8]
mov eax, dword [edx + 8]
lea eax, [eax + eax*4]
lea ecx, [ebx + eax*8]
mov eax, dword [edx + 0xc]
lea eax, [eax + eax*4]
lea edx, [ebx + eax*8]
mov al, byte [ecx + 8]
or al, byte [edi + 8]
mov dword [ebp - 0x21c], edx
test al, 1
je 0x42f76a
mov eax, 0x2460
test word [edx + 8], ax
je 0x42f741
mov ecx, edx
call fcn.00424dd0
mov edx, dword [ebp - 0x1ec]
mov edi, dword [ebp - 0x1f0]
mov ecx, dword [ebp - 0x1fc]
mov eax, dword [ebp - 0x1f8]
add edx, 0x14
jmp 0x42e7cd
mov edi, dword [ebp - 0x1f0]
mov eax, 1
mov ecx, dword [ebp - 0x1fc]
mov word [edx + 8], ax
mov edx, dword [ebp - 0x1ec]
mov eax, dword [ebp - 0x1f8]
add edx, 0x14
jmp 0x42e7cd
call fcn.00424f60
mov ebx, eax
mov esi, edx
mov ecx, edi
mov dword [ebp - 0x268], ebx
mov dword [ebp - 0x264], esi
call fcn.00424f60
mov edi, eax
mov eax, dword [ebp - 0x1ec]
mov cl, byte [eax]
cmp cl, 0x54
jne 0x42f79b
and ebx, edi
and esi, edx
jmp 0x42f807
cmp cl, 0x55
jne 0x42f7a6
or ebx, edi
or esi, edx
jmp 0x42f807
mov eax, edi
or eax, edx
je 0x42f807
test edx, edx
jg 0x42f7da
jl 0x42f7b6
test edi, edi
jae 0x42f7cf
mov al, 0xad
sub al, cl
mov cl, al
cmp edx, 0xffffffff
jl 0x42f7da
jg 0x42f7c8
cmp edi, 0xffffffc0
jbe 0x42f7da
neg edi
adc edx, 0
neg edx
test edx, edx
jl 0x42f82b
jg 0x42f7da
cmp edi, 0x40
jb 0x42f82b
test esi, esi
jg 0x42f7f0
jl 0x42f7e4
test ebx, ebx
jae 0x42f7f0
cmp cl, 0x56
je 0x42f7f0
or ebx, 0xffffffff
or esi, ebx
jmp 0x42f807
xorps xmm0, xmm0
movlpd qword [ebp - 0x240], xmm0
mov esi, dword [ebp - 0x23c]
mov ebx, dword [ebp - 0x240]
mov ecx, dword [ebp - 0x21c]
mov edx, 0x3e00
mov ax, word [ecx + 8]
and ax, dx
mov dword [ecx], ebx
or ax, 4
mov dword [ecx + 4], esi
mov word [ecx + 8], ax
jmp 0x42ed9c
movq xmm1, qword [ebp - 0x268]
movd xmm0, edi
cmp cl, 0x56
jne 0x42f84a
psllq xmm1, xmm0
movq qword [ebp - 0x240], xmm1
jmp 0x42f7fb
psrlq xmm1, xmm0
movq qword [ebp - 0x240], xmm1
test esi, esi
jg 0x42f7fb
jl 0x42f860
test ebx, ebx
jae 0x42f7fb
mov ecx, 0x40
or eax, 0xffffffff
sub ecx, edi
or edx, 0xffffffff
call fcn.004e5a10
mov ebx, dword [ebp - 0x240]
mov esi, dword [ebp - 0x23c]
or ebx, eax
or esi, edx
jmp 0x42f807
mov edx, dword [ebp - 0x1ec]
mov ecx, dword [ebp - 0x208]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov ecx, esi
call fcn.00424f60
mov dword [esi], eax
mov ecx, 0x3e00
mov ax, word [esi + 8]
and ax, cx
mov dword [esi + 4], edx
mov ecx, dword [ebp - 0x1fc]
or ax, 4
mov word [esi + 8], ax
mov eax, dword [ebp - 0x1ec]
mov eax, dword [eax + 8]
cdq
add dword [esi], eax
mov eax, dword [ebp - 0x1f8]
adc dword [esi + 4], edx
mov edx, dword [ebp - 0x1ec]
mov esi, dword [ebp - 0x1f4]
add edx, 0x14
jmp 0x42e7cd
mov edx, dword [ebp - 0x1ec]
mov ecx, dword [ebp - 0x208]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
movzx eax, word [esi + 8]
mov ecx, eax
test al, 4
jne 0x42f93d
push dword [ebp - 0x224]
mov dl, 0x43
mov ecx, esi
call fcn.0042e480
movzx eax, word [esi + 8]
add esp, 4
mov edx, dword [ebp - 0x1ec]
mov ecx, eax
test al, 4
jne 0x42f93d
cmp dword [edx + 8], 0
jne 0x433784
mov edx, 0x14
jmp 0x43210b
mov eax, dword [ebp - 0x1f8]
and ecx, 0x3e00
or ecx, 4
mov word [esi + 8], cx
mov esi, dword [ebp - 0x1f4]
mov ecx, dword [ebp - 0x1fc]
add edx, 0x14
jmp 0x42e7cd
mov edx, dword [ebp - 0x1ec]
mov ecx, dword [ebp - 0x208]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 8], 4
lea esi, [ecx + eax*8]
je 0x42e96c
mov ecx, esi
call fcn.00424fe0
mov ax, word [esi + 8]
mov ecx, 0x3e00
mov edx, dword [ebp - 0x1ec]
and ax, cx
mov ecx, dword [ebp - 0x1fc]
or ax, 8
mov word [esi + 8], ax
mov eax, dword [ebp - 0x1f8]
movsd qword [esi], xmm0
mov esi, dword [ebp - 0x1f4]
add edx, 0x14
jmp 0x42e7cd
mov edx, dword [ebp - 0x1ec]
mov ecx, dword [ebp - 0x208]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov eax, 0x4000
mov ecx, esi
test word [esi + 8], ax
je 0x42fa37
call fcn.00424b90
push dword [ebp - 0x224]
mov dword [ebp - 0x204], eax
mov ecx, esi
mov eax, dword [ebp - 0x1ec]
mov dl, byte [eax + 8]
call fcn.00425190
add esp, 4
mov edx, dword [ebp - 0x204]
test edx, edx
jne 0x43210b
mov edx, dword [ebp - 0x1ec]
mov esi, dword [ebp - 0x1f4]
mov ecx, dword [ebp - 0x1fc]
mov eax, dword [ebp - 0x1f8]
add edx, 0x14
jmp 0x42e7cd
push dword [ebp - 0x254]
mov dl, byte [edx + 8]
mov dword [ebp - 0x204], 0
call fcn.00425190
mov edx, dword [ebp - 0x1ec]
add esp, 4
mov esi, dword [ebp - 0x1f4]
mov ecx, dword [ebp - 0x1fc]
mov eax, dword [ebp - 0x1f8]
add edx, 0x14
jmp 0x42e7cd
mov edx, dword [ebp - 0x1ec]
mov ebx, dword [ebp - 0x208]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea ecx, [ebx + eax*8]
mov eax, dword [edx + 0xc]
mov dword [ebp - 0x234], ecx
lea eax, [eax + eax*4]
movzx esi, word [ebx + eax*8 + 8]
lea edx, [ebx + eax*8]
movzx eax, word [ecx + 8]
mov di, si
mov cx, ax
mov dword [ebp - 0x22c], edx
movzx edx, di
mov word [ebp - 0x212], cx
movzx ebx, cx
mov ecx, esi
mov dword [ebp - 0x21c], edx
mov edx, ecx
or edx, eax
mov dword [ebp - 0x210], eax
mov dword [ebp - 0x218], ecx
test dl, 1
je 0x42fbb3
mov esi, dword [ebp - 0x1ec]
add esi, 2
mov dword [ebp - 0x20c], esi
movzx eax, word [esi]
test al, al
jns 0x42fb4a
mov al, cl
and al, byte [ebp - 0x210]
test al, 1
je 0x42fb40
test ecx, 0x100
jne 0x42fb40
mov eax, dword [ebp - 0x1ec]
xor ecx, ecx
mov dword [ebp - 0x20c], esi
mov word [ebp - 0x212], bx
movzx edx, byte [eax]
mov eax, ebx
mov dword [ebp - 0x210], eax
mov eax, dword [ebp - 0x21c]
movzx eax, ax
mov dword [ebp - 0x218], eax
mov di, ax
mov al, byte [edx + 0x53de30]
jmp 0x42fdac
mov ecx, 1
jmp 0x42fd45
test al, 0x20
je 0x42fb85
mov eax, dword [ebp - 0x1ec]
mov edx, 0x3e00
mov ebx, dword [ebp - 0x208]
mov dword [ebp - 0x24c], 1
mov eax, dword [eax + 8]
lea ecx, [eax + eax*4]
mov ax, word [ebx + ecx*8 + 8]
and ax, dx
or ax, 1
mov word [ebx + ecx*8 + 8], ax
jmp 0x42ed9c
mov edx, dword [ebp - 0x1ec]
mov edi, dword [ebp - 0x1f0]
test al, 0x10
jne 0x433784
mov esi, dword [ebp - 0x1f4]
mov ecx, dword [ebp - 0x1fc]
mov eax, dword [ebp - 0x1f8]
add edx, 0x14
jmp 0x42e7cd
mov ebx, dword [ebp - 0x1ec]
lea eax, [ebx + 2]
mov dword [ebp - 0x20c], eax
mov al, byte [eax]
and al, 0x47
cmp al, 0x43
jb 0x42fca2
mov ecx, esi
mov esi, dword [ebp - 0x234]
test dl, 2
je 0x42fc2f
mov al, byte [ebp - 0x210]
and al, 0xe
cmp al, 2
jne 0x42fc05
xor edx, edx
mov ecx, esi
call fcn.0042e3a0
mov ebx, dword [ebp - 0x22c]
movzx eax, word [ebx + 8]
mov dword [ebp - 0x218], eax
mov di, ax
jmp 0x42fc0b
mov ebx, dword [ebp - 0x22c]
mov al, byte [ebp - 0x218]
and al, 0xe
movzx ecx, di
cmp al, 2
jne 0x42fc37
xor edx, edx
mov ecx, ebx
call fcn.0042e3a0
mov edx, dword [ebp - 0x22c]
movzx ecx, word [edx + 8]
jmp 0x42fc3d
mov edx, dword [ebp - 0x22c]
jmp 0x42fc43
mov edx, dword [ebp - 0x22c]
mov ebx, dword [ebp - 0x1ec]
mov al, byte [esi + 8]
and al, cl
test al, 4
je 0x42fd2a
mov ecx, dword [ebp - 0x234]
mov esi, dword [edx]
mov edx, dword [edx + 4]
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
cmp edx, ecx
jl 0x42fc81
jg 0x42fc6a
cmp esi, eax
jbe 0x42fc77
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x42fda6
cmp edx, ecx
jg 0x42fc92
jl 0x42fc81
cmp esi, eax
jae 0x42fc92
movzx edx, byte [ebx]
or ecx, 0xffffffff
mov al, byte [edx + 0x540624]
jmp 0x42fdac
movzx edx, byte [ebx]
xor ecx, ecx
mov al, byte [edx + 0x53de30]
jmp 0x42fdac
cmp al, 0x42
jne 0x42fd2a
mov al, byte [ebp - 0x210]
test al, 2
jne 0x42fcf0
test al, 0xc
je 0x42fcf0
mov esi, dword [ebp - 0x234]
mov ecx, esi
mov dl, byte [ebp - 0x224]
push 1
call fcn.00424be0
mov cx, word [ebp - 0x212]
mov edx, 0x3e00
mov ax, word [esi + 8]
add esp, 4
xor ax, cx
and ax, dx
xor cx, ax
mov word [ebp - 0x212], cx
mov al, byte [ebp - 0x218]
test al, 2
jne 0x42fd2a
mov esi, dword [ebp - 0x22c]
test al, 0xc
je 0x42fd30
mov dl, byte [ebp - 0x224]
mov ecx, esi
push 1
call fcn.00424be0
mov ax, word [esi + 8]
mov ecx, 0x3e00
xor ax, di
add esp, 4
and ax, cx
xor di, ax
jmp 0x42fd30
mov esi, dword [ebp - 0x22c]
push dword [ebx + 0x10]
mov edx, dword [ebp - 0x234]
mov ecx, esi
call fcn.00429a60
add esp, 4
mov ecx, eax
mov edx, dword [ebp - 0x1ec]
mov esi, ecx
movzx eax, word [ebp - 0x212]
movzx ebx, di
movzx edx, byte [edx]
test ecx, ecx
jns 0x42fd66
mov al, byte [edx + 0x540624]
jmp 0x42fdac
mov ecx, dword [ebp - 0x20c]
mov dword [ebp - 0x210], eax
mov eax, ebx
mov dword [ebp - 0x218], eax
mov ax, word [ebp - 0x210]
mov dword [ebp - 0x20c], ecx
mov ecx, esi
mov word [ebp - 0x212], ax
test esi, esi
jne 0x42fd9f
mov al, byte [edx + 0x53de30]
mov di, bx
jmp 0x42fdac
mov di, word [ebp - 0x218]
mov al, byte [edx + 0x53d1c4]
mov esi, dword [ebp - 0x234]
movzx edx, al
mov ax, word [ebp - 0x212]
mov word [esi + 8], ax
mov eax, dword [ebp - 0x22c]
mov word [eax + 8], di
mov eax, dword [ebp - 0x20c]
movzx ebx, word [eax]
test bl, 0x20
je 0x42fe30
mov eax, dword [ebp - 0x1ec]
mov dword [ebp - 0x24c], ecx
mov eax, dword [eax + 8]
lea esi, [eax + eax*4]
test bl, 8
je 0x42fe05
mov edi, dword [ebp - 0x1ec]
xor eax, eax
cmp byte [edi], 0x35
sete al
cmp eax, edx
je 0x42ed9c
mov ebx, dword [ebp - 0x208]
mov eax, 0x3e00
mov cx, word [ebx + esi*8 + 8]
and cx, ax
mov eax, edx
cdq
or cx, 4
mov word [ebx + esi*8 + 8], cx
mov dword [ebx + esi*8], eax
mov dword [ebx + esi*8 + 4], edx
jmp 0x42ed9c
mov edi, dword [ebp - 0x1f0]
test edx, edx
mov edx, dword [ebp - 0x1ec]
jne 0x433784
mov esi, dword [ebp - 0x1f4]
mov ecx, dword [ebp - 0x1fc]
mov eax, dword [ebp - 0x1f8]
add edx, 0x14
jmp 0x42e7cd
cmp dword [ebp - 0x24c], 0
mov edx, dword [ebp - 0x1ec]
jne 0x433784
add edx, 0x14
jmp 0x42e7cd
mov edx, dword [ebp - 0x1ec]
test byte [edx + 2], 1
jne 0x42fe89
xor ebx, ebx
jmp 0x42fe8f
mov ebx, dword [edx - 4]
add ebx, 4
mov esi, dword [ebp - 0x1ec]
mov eax, dword [edx + 0xc]
mov edx, dword [edx + 0x10]
mov dword [ebp - 0x244], eax
mov ecx, dword [esi + 4]
mov dword [ebp - 0x23c], ecx
mov ecx, dword [esi + 8]
xor esi, esi
mov dword [ebp - 0x20c], edx
mov dword [ebp - 0x21c], ecx
test eax, eax
jle 0x42ee51
lea edi, [edx + 0x14]
test ebx, ebx
je 0x42fecf
mov ecx, dword [ebx + esi*4]
jmp 0x42fed1
mov ecx, esi
mov eax, dword [edx + 0x10]
mov edx, dword [ebp - 0x208]
push dword [edi]
mov al, byte [esi + eax]
mov byte [ebp - 0x211], al
mov eax, dword [ebp - 0x21c]
add eax, ecx
lea eax, [eax + eax*4]
lea edx, [edx + eax*8]
mov eax, dword [ebp - 0x23c]
add eax, ecx
mov ecx, dword [ebp - 0x208]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
call fcn.00429a60
mov ecx, eax
add esp, 4
mov dword [ebp - 0x24c], ecx
test ecx, ecx
jne 0x42ff32
mov edx, dword [ebp - 0x20c]
inc esi
add edi, 4
cmp esi, dword [ebp - 0x244]
jl 0x42fec6
jmp 0x42ed9c
cmp byte [ebp - 0x211], 0
mov edx, dword [ebp - 0x1ec]
mov esi, dword [ebp - 0x1f4]
mov edi, dword [ebp - 0x1f0]
mov eax, dword [ebp - 0x1f8]
je 0x42ff5b
neg ecx
mov dword [ebp - 0x24c], ecx
mov ecx, dword [ebp - 0x1fc]
add edx, 0x14
jmp 0x42e7cd
mov ecx, dword [ebp - 0x24c]
mov edx, dword [ebp - 0x1ec]
test ecx, ecx
jns 0x42ff9f
mov eax, dword [edx + 4]
mov ecx, dword [ebp - 0x200]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*4]
mov ecx, dword [ebp - 0x1fc]
lea edx, [eax - 0x14]
mov eax, dword [ebp - 0x1f8]
add edx, 0x14
jmp 0x42e7cd
jne 0x42ffc7
mov eax, dword [edx + 8]
mov ecx, dword [ebp - 0x200]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*4]
mov ecx, dword [ebp - 0x1fc]
lea edx, [eax - 0x14]
mov eax, dword [ebp - 0x1f8]
add edx, 0x14
jmp 0x42e7cd
mov eax, dword [edx + 0xc]
mov ecx, dword [ebp - 0x200]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*4]
mov ecx, dword [ebp - 0x1fc]
lea edx, [eax - 0x14]
mov eax, dword [ebp - 0x1f8]
add edx, 0x14
jmp 0x42e7cd
mov ebx, dword [ebp - 0x1ec]
mov ecx, dword [ebp - 0x208]
mov eax, dword [ebx + 4]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 8], 1
lea ecx, [ecx + eax*8]
je 0x430010
mov esi, 6
jmp 0x430022
call fcn.00424f60
or eax, edx
je 0x430020
mov esi, 3
jmp 0x430022
xor esi, esi
mov eax, dword [ebx + 8]
mov ecx, dword [ebp - 0x208]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 8], 1
lea ecx, [ecx + eax*8]
je 0x430044
mov ecx, 0x5401a2
mov eax, 0x53d266
jmp 0x430063
call fcn.00424f60
or eax, edx
je 0x430059
mov ecx, 0x5401a1
mov eax, 0x53d265
jmp 0x430063
mov ecx, 0x5401a0
mov eax, 0x53d264
cmp byte [ebx], 0x2c
mov ebx, dword [ebp - 0x208]
cmovne eax, ecx
mov ecx, 0x3e00
mov dl, byte [eax + esi]
mov eax, dword [ebp - 0x1ec]
mov eax, dword [eax + 0xc]
lea esi, [eax + eax*4]
mov ax, word [ebx + esi*8 + 8]
and ax, cx
movzx ecx, ax
cmp dl, 2
jne 0x4300be
mov edx, dword [ebp - 0x1ec]
or ecx, 1
movzx eax, cx
mov ecx, dword [ebp - 0x1fc]
mov word [ebx + esi*8 + 8], ax
mov esi, dword [ebp - 0x1f4]
mov eax, dword [ebp - 0x1f8]
add edx, 0x14
jmp 0x42e7cd
movzx eax, dl
or ecx, 4
cdq
mov dword [ebx + esi*8], eax
movzx eax, cx
mov ecx, dword [ebp - 0x1fc]
mov dword [ebx + esi*8 + 4], edx
mov edx, dword [ebp - 0x1ec]
mov word [ebx + esi*8 + 8], ax
mov esi, dword [ebp - 0x1f4]
mov eax, dword [ebp - 0x1f8]
add edx, 0x14
jmp 0x42e7cd
mov edx, dword [ebp - 0x1ec]
mov ebx, dword [ebp - 0x208]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea edi, [ebx + eax*8]
mov eax, edx
mov eax, dword [eax + 8]
lea eax, [eax + eax*4]
lea esi, [ebx + eax*8]
mov eax, 0x2460
test word [esi + 8], ax
je 0x430128
mov ecx, esi
call fcn.00424dd0
jmp 0x430131
mov eax, 1
mov word [esi + 8], ax
test byte [edi + 8], 1
jne 0x42ed9c
mov eax, 4
mov ecx, edi
mov word [esi + 8], ax
call fcn.00424f60
or eax, edx
jne 0x430160
mov eax, 1
xor ecx, ecx
mov dword [esi], eax
mov dword [esi + 4], ecx
jmp 0x42ed9c
xorps xmm0, xmm0
movlpd qword [ebp - 0x220], xmm0
mov ecx, dword [ebp - 0x21c]
mov eax, dword [ebp - 0x220]
mov dword [esi], eax
mov dword [esi + 4], ecx
jmp 0x42ed9c
mov edx, dword [ebp - 0x1ec]
mov ebx, dword [ebp - 0x208]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea edi, [ebx + eax*8]
mov eax, edx
mov eax, dword [eax + 8]
lea eax, [eax + eax*4]
lea esi, [ebx + eax*8]
mov eax, 0x2460
test word [esi + 8], ax
je 0x4301b5
mov ecx, esi
call fcn.00424dd0
jmp 0x4301be
mov eax, 1
mov word [esi + 8], ax
test byte [edi + 8], 1
jne 0x42ed9c
mov eax, 4
mov ecx, edi
mov word [esi + 8], ax
call fcn.00424f60
not eax
not edx
mov dword [esi], eax
mov dword [esi + 4], edx
jmp 0x42ed9c
mov edi, dword [edi + 0xc4]
test edi, edi
je 0x430263
mov edx, dword [ebp - 0x1f0]
mov eax, 0x66666667
mov ecx, dword [ebp - 0x1ec]
mov edi, dword [edi + 0x18]
sub ecx, dword [edx + 0x58]
imul ecx
mov eax, 1
sar edx, 3
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov esi, ecx
and ecx, 7
shr esi, 3
shl eax, cl
movzx edx, byte [esi + edi]
test edx, eax
jne 0x433778
bts edx, ecx
mov byte [esi + edi], dl
mov edi, dword [ebp - 0x1f0]
mov edx, dword [ebp - 0x1ec]
mov esi, dword [ebp - 0x1f4]
mov ecx, dword [edi + 0x58]
mov eax, dword [ecx + 4]
mov ecx, dword [ebp - 0x1fc]
mov dword [edx + 4], eax
mov eax, dword [ebp - 0x1f8]
add edx, 0x14
jmp 0x42e7cd
mov edi, dword [ebp - 0x1f0]
mov edx, dword [ebp - 0x1ec]
mov ecx, dword [edi + 0x58]
mov eax, dword [ecx + 4]
cmp eax, dword [edx + 4]
je 0x433784
mov ecx, dword [ebp - 0x1fc]
mov dword [edx + 4], eax
mov eax, dword [ebp - 0x1f8]
add edx, 0x14
jmp 0x42e7cd
mov edx, dword [ebp - 0x1ec]
mov ecx, dword [ebp - 0x208]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 8], 1
lea ecx, [ecx + eax*8]
je 0x4302b8
mov ecx, edx
mov ecx, dword [ecx + 0xc]
jmp 0x4302e0
call fcn.00424fe0
ucomisd xmm0, qword [ebp - 0x270]
mov edx, dword [ebp - 0x1ec]
lahf
xor ecx, ecx
test ah, 0x44
mov eax, 1
cmovp ecx, eax
cmp byte [edx], 0x16
jne 0x4302e0
xor ecx, eax
test ecx, ecx
jne 0x433784
mov ecx, dword [ebp - 0x1fc]
mov eax, dword [ebp - 0x1f8]
add edx, 0x14
jmp 0x42e7cd
mov edx, dword [ebp - 0x1ec]
mov ecx, dword [ebp - 0x208]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 8], 1
jne 0x433784
mov ecx, dword [ebp - 0x1fc]
mov eax, dword [ebp - 0x1f8]
add edx, 0x14
jmp 0x42e7cd
mov edx, dword [ebp - 0x1ec]
mov ecx, dword [ebp - 0x208]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 8], 1
je 0x433784
mov ecx, dword [ebp - 0x1fc]
mov eax, dword [ebp - 0x1f8]
add edx, 0x14
jmp 0x42e7cd
mov edx, dword [ebp - 0x1ec]
mov eax, dword [edi + 0x70]
mov ecx, dword [edx + 4]
mov eax, dword [eax + ecx*4]
cmp byte [eax + 2], 0
je 0x42e892
mov ecx, dword [ebp - 0x208]
mov eax, edx
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov ecx, 0x2460
test word [eax + 8], cx
je 0x4303cc
mov ecx, eax
call fcn.00424dd0
mov edx, dword [ebp - 0x1ec]
mov ecx, dword [ebp - 0x200]
mov esi, dword [ebp - 0x1f4]
mov eax, dword [edx + 8]
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea edx, [ecx + eax*4]
mov ecx, dword [ebp - 0x1fc]
mov eax, dword [ebp - 0x1f8]
add edx, 0x14
jmp 0x42e7cd
mov ecx, 1
mov word [eax + 8], cx
mov edx, dword [ebp - 0x1ec]
mov ecx, dword [ebp - 0x200]
mov esi, dword [ebp - 0x1f4]
mov eax, dword [edx + 8]
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea edx, [ecx + eax*4]
mov ecx, dword [ebp - 0x1fc]
mov eax, dword [ebp - 0x1f8]
add edx, 0x14
jmp 0x42e7cd
mov ebx, dword [ebp - 0x1ec]
lea edx, [ebp - 0xd4]
mov eax, dword [edi + 0x70]
mov ecx, dword [ebx + 4]
mov eax, dword [eax + ecx*4]
lea ecx, [ebp - 0xcc]
mov dword [ebp - 0xcc], eax
mov eax, dword [ebx + 8]
mov dword [ebp - 0xd4], eax
call fcn.004290e0
mov edx, eax
mov dword [ebp - 0x204], edx
test edx, edx
jne 0x43210b
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebp - 0x208]
mov edi, dword [ebp - 0xcc]
mov edx, dword [ebp - 0x1f0]
lea eax, [eax + eax*4]
lea ebx, [ecx + eax*8]
mov eax, dword [edi + 0x1c]
mov esi, dword [edi + 0x48]
mov dword [ebp - 0x244], ebx
mov dword [ebp - 0x234], esi
cmp eax, dword [edx + 0x20]
je 0x4305a4
cmp byte [edi + 2], 0
je 0x4304db
cmp byte [edi], 3
jne 0x4304bb
mov eax, dword [edi + 0x20]
lea edx, [eax + eax*4]
mov eax, dword [ecx + edx*8 + 0xc]
mov dword [edi + 0x54], eax
mov ecx, dword [ebp - 0xcc]
mov eax, dword [ecx + 0x54]
mov dword [ecx + 0x50], eax
mov eax, dword [ebp - 0x208]
mov ecx, dword [eax + edx*8 + 0x10]
mov eax, dword [ebp - 0xcc]
mov dword [eax + 0x4c], ecx
mov ecx, dword [ebp - 0xcc]
jmp 0x430528
mov eax, 0x2460
test word [ebx + 8], ax
je 0x4304cd
mov ecx, ebx
jmp 0x42f0f5
mov eax, 1
mov word [ebx + 8], ax
jmp 0x42ed9c
mov esi, dword [edi + 0x28]
mov ecx, esi
call fcn.0041b4b0
mov eax, dword [ebp - 0xcc]
mov ecx, dword [esi + 0x24]
mov dword [eax + 0x50], ecx
mov ecx, esi
mov edx, dword [ebp - 0xcc]
lea edx, [edx + 0x54]
call fcn.0041bbe0
mov ecx, dword [ebp - 0xcc]
mov edi, dword [ebp - 0x1f4]
mov dword [ecx + 0x4c], eax
mov ecx, dword [ebp - 0xcc]
mov eax, dword [ecx + 0x50]
cmp eax, dword [edi + 0x64]
ja 0x434c87
mov esi, dword [ebp - 0x234]
mov eax, dword [ebp - 0x1f0]
mov eax, dword [eax + 0x20]
mov dword [ecx + 0x1c], eax
mov eax, dword [ebp - 0xcc]
mov ecx, dword [eax + 0x4c]
mov al, byte [ecx]
cmp al, 0x80
jae 0x43054c
movzx eax, al
mov dword [esi], eax
mov al, 1
jmp 0x430553
mov edx, esi
call fcn.00409140
movzx ecx, al
mov eax, dword [ebp - 0xcc]
mov dword [eax + 0x30], ecx
xor ecx, ecx
mov eax, dword [ebp - 0xcc]
mov word [eax + 0x3a], cx
mov edi, dword [ebp - 0xcc]
mov eax, dword [esi]
cmp dword [edi + 0x54], eax
jae 0x43068a
mov dword [edi + 0x4c], ecx
mov eax, dword [ebp - 0xcc]
mov dword [eax + 0x54], ecx
mov eax, dword [esi]
cmp eax, 0x18003
ja 0x4307cb
mov edi, dword [ebp - 0xcc]
cmp eax, dword [edi + 0x50]
ja 0x4307cb
movzx eax, word [edi + 0x3a]
mov edx, dword [ebp - 0xd4]
cmp eax, edx
jg 0x430873
mov eax, dword [esi]
cmp dword [edi + 0x30], eax
jae 0x430805
mov edx, dword [edi + 0x4c]
mov dword [ebp - 0x210], edx
test edx, edx
jne 0x43061f
xorps xmm0, xmm0
lea eax, [ebp - 0x168]
movups xmmword [ebp - 0x168], xmm0
push eax
movups xmmword [ebp - 0x158], xmm0
movq qword [ebp - 0x148], xmm0
push dword [esi]
mov ecx, dword [edi + 0x28]
call fcn.004258a0
mov edx, eax
add esp, 8
mov dword [ebp - 0x204], edx
test edx, edx
jne 0x432105
mov edx, dword [ebp - 0x158]
mov eax, dword [esi]
mov edi, dword [ebp - 0xcc]
mov dword [ebp - 0x210], edx
movzx ecx, word [edi + 0x3a]
add eax, edx
mov dword [ebp - 0x214], eax
mov eax, 0x58
mov dword [ebp - 0x22c], ecx
mov dword [ebp - 0x20c], 0
lea ebx, [esi + ecx*4]
mov esi, dword [edi + 0x30]
add esi, edx
mov dword [ebp - 0x218], ebx
sub eax, dword [ebp - 0x234]
mov ebx, dword [ebx]
mov dword [ebp - 0x21c], eax
nop dword [eax]
movzx ecx, byte [esi]
mov dword [ebp - 0xd0], ecx
cmp ecx, 0x80
jae 0x43068f
movzx eax, byte [ecx + 0x53e590]
inc esi
cdq
add ebx, eax
adc dword [ebp - 0x20c], edx
mov edx, dword [ebp - 0x20c]
jmp 0x4306d4
mov edx, dword [edi + 0x4c]
jmp 0x430619
lea edx, [ebp - 0xd0]
mov ecx, esi
call fcn.00409140
mov ecx, dword [ebp - 0xd0]
movzx eax, al
add esi, eax
cmp ecx, 0x80
jb 0x4306b6
lea eax, [ecx - 0xc]
shr eax, 1
jmp 0x4306bd
movzx eax, byte [ecx + 0x53e590]
mov edx, dword [ebp - 0x20c]
add ebx, eax
mov edi, dword [ebp - 0xcc]
adc edx, 0
mov dword [ebp - 0x20c], edx
mov eax, dword [ebp - 0x21c]
add eax, edi
mov edi, dword [ebp - 0x218]
mov dword [eax + edi], ecx
add edi, 4
mov eax, dword [ebp - 0x22c]
mov ecx, dword [ebp - 0x214]
inc eax
mov dword [ebp - 0x218], edi
mov dword [edi], ebx
mov edi, dword [ebp - 0xcc]
mov dword [ebp - 0x22c], eax
cmp eax, dword [ebp - 0xd4]
jg 0x43071b
cmp esi, ecx
jb 0x430660
jmp 0x43071f
cmp esi, ecx
jb 0x43072c
cmp esi, ecx
ja 0x430737
cmp ebx, dword [edi + 0x50]
jne 0x430737
test edx, edx
jne 0x430737
test edx, edx
jb 0x430746
ja 0x430737
cmp ebx, dword [edi + 0x50]
jbe 0x430746
mov eax, dword [ebp - 0x234]
cmp dword [eax], 0
jne 0x4307a5
xor eax, eax
mov esi, ecx
sub esi, dword [ebp - 0x210]
mov word [edi + 0x3a], ax
mov eax, dword [ebp - 0xcc]
mov dword [eax + 0x30], esi
mov edi, dword [ebp - 0xcc]
cmp dword [edi + 0x4c], 0
jne 0x43078b
test dword [ebp - 0x160], 0x2460
jne 0x43077a
cmp dword [ebp - 0x150], 0
je 0x43078b
lea ecx, [ebp - 0x168]
call fcn.00424e50
mov edi, dword [ebp - 0xcc]
mov edx, dword [ebp - 0xd4]
mov ecx, dword [ebp - 0xd0]
mov ebx, dword [ebp - 0x244]
mov esi, dword [ebp - 0x234]
jmp 0x43080d
cmp dword [edi + 0x4c], 0
jne 0x4307cb
test dword [ebp - 0x160], 0x2460
jne 0x4307c0
cmp dword [ebp - 0x150], 0
je 0x4307cb
lea ecx, [ebp - 0x168]
call fcn.00424e50
mov ebx, dword [ebp - 0x200]
mov eax, dword [ebx + 0xc]
test eax, eax
jle 0x434a86
mov esi, dword [ebp - 0x1f4]
lea eax, [eax + eax*4]
mov edi, dword [ebp - 0x1f0]
lea eax, [eax - 5]
mov ecx, dword [ebp - 0x1fc]
lea edx, [ebx + eax*4]
mov eax, dword [ebp - 0x1f8]
add edx, 0x14
jmp 0x42e7cd
xor ecx, ecx
mov dword [ebp - 0xd0], ecx
movzx eax, word [edi + 0x3a]
cmp eax, edx
jg 0x43087d
mov edx, dword [ebp - 0x1ec]
cmp byte [edx + 1], 0xf5
jne 0x430838
mov edx, dword [edx + 0x10]
mov ecx, ebx
push 0x800
call fcn.004254d0
add esp, 4
jmp 0x42ed9c
mov eax, 0x2460
test word [ebx + 8], ax
je 0x43084a
mov ecx, ebx
jmp 0x42f0f5
mov esi, dword [ebp - 0x1f4]
mov eax, 1
mov edi, dword [ebp - 0x1f0]
mov ecx, dword [ebp - 0x1fc]
mov word [ebx + 8], ax
mov eax, dword [ebp - 0x1f8]
add edx, 0x14
jmp 0x42e7cd
mov ecx, dword [edi + edx*4 + 0x58]
mov dword [ebp - 0xd0], ecx
mov eax, 0x2460
test word [ebx + 8], ax
je 0x4308a1
mov ecx, ebx
call fcn.00424dd0
mov edi, dword [ebp - 0xcc]
mov edx, dword [ebp - 0xd4]
mov ecx, dword [ebp - 0xd0]
mov eax, dword [edi + 0x54]
cmp eax, dword [esi + edx*4 + 4]
jb 0x430940
mov edi, dword [edi + 0x4c]
add edi, dword [esi + edx*4]
cmp ecx, 0xc
jae 0x4308cb
mov edx, ecx
mov ecx, edi
push ebx
call fcn.004293f0
add esp, 4
jmp 0x42ed9c
mov al, byte [ebp - 0x224]
lea esi, [ecx - 0xc]
shr esi, 1
mov dword [ebx + 0xc], esi
mov byte [ebx + 0xa], al
lea edx, [esi + 2]
cmp dword [ebx + 0x18], edx
jge 0x430906
mov eax, 1
mov ecx, ebx
push 0
mov word [ebx + 8], ax
call fcn.00424970
add esp, 4
test eax, eax
jne 0x430b39
mov eax, dword [ebx + 0x10]
jmp 0x43090c
mov eax, dword [ebx + 0x14]
mov dword [ebx + 0x10], eax
push esi
push edi
push eax
call fcn.004e8950
mov eax, dword [ebx + 0x10]
add esp, 0xc
mov byte [esi + eax], 0
mov eax, dword [ebx + 0x10]
mov byte [esi + eax + 1], 0
mov eax, dword [ebp - 0xd0]
and eax, 1
mov ax, word [eax*2 + 0x53dd48]
mov word [ebx + 8], ax
jmp 0x42ed9c
mov al, byte [ebp - 0x224]
mov byte [ebx + 0xa], al
mov eax, dword [ebp - 0x1ec]
mov edx, dword [ebp - 0xd0]
movzx eax, word [eax + 2]
test al, 0xc0
je 0x43096b
cmp edx, 0xc
jb 0x430967
test dl, 1
je 0x430985
test al, al
js 0x430985
cmp edx, 0x80
jb 0x43097a
lea eax, [edx - 0xc]
shr eax, 1
jmp 0x430981
movzx eax, byte [edx + 0x53e590]
test eax, eax
jne 0x430998
push ebx
mov ecx, 0x55010c
call fcn.004293f0
add esp, 4
jmp 0x42ed9c
mov edx, dword [ebp - 0xd4]
mov ecx, dword [ebp - 0xcc]
push ebx
push eax
mov edx, dword [esi + edx*4]
mov ecx, dword [ecx + 0x28]
call fcn.004258a0
mov edx, eax
add esp, 8
mov dword [ebp - 0x204], edx
test edx, edx
jne 0x432105
mov edx, dword [ebp - 0xd0]
mov ecx, dword [ebx + 0x10]
push ebx
call fcn.004293f0
mov eax, 0xefff
add esp, 4
and word [ebx + 8], ax
jmp 0x42ed9c
mov edx, dword [ebp - 0x1ec]
mov ecx, dword [ebp - 0x208]
mov eax, dword [edx + 4]
mov esi, dword [edx + 0x10]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov al, byte [esi]
nop
push dword [ebp - 0x224]
mov dl, al
mov ecx, edi
call fcn.0042e480
mov al, byte [esi + 1]
lea esi, [esi + 1]
add esp, 4
add edi, 0x28
test al, al
jne 0x430a00
jmp 0x42ed9c
mov edx, dword [ebp - 0x1ec]
xor eax, eax
mov ecx, dword [ebp - 0x208]
xorps xmm0, xmm0
mov dword [ebp - 0x214], eax
movlpd qword [ebp - 0x238], xmm0
mov eax, dword [edx + 4]
mov esi, dword [edx + 0x10]
movlpd qword [ebp - 0x230], xmm0
lea eax, [eax + eax*4]
lea ebx, [ecx + eax*8]
mov eax, dword [edx + 8]
movzx ecx, byte [edi + 0x8f]
mov dword [ebp - 0x210], ebx
mov dword [ebp - 0x244], ecx
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea eax, [ebx + eax*8]
mov dword [ebp - 0x23c], eax
mov eax, dword [edx + 0xc]
mov edx, dword [ebp - 0x208]
lea eax, [eax + eax*4]
lea edx, [edx + eax*8]
mov dword [ebp - 0x21c], edx
test esi, esi
je 0x430ac6
mov al, byte [esi]
mov edi, ebx
mov ebx, dword [ebp - 0x224]
nop
push ebx
mov dl, al
mov ecx, edi
call fcn.0042e480
mov al, byte [esi + 1]
lea esi, [esi + 1]
add esp, 4
add edi, 0x28
test al, al
jne 0x430aa0
mov ebx, dword [ebp - 0x210]
mov ecx, dword [ebp - 0x244]
mov eax, dword [ebp - 0x234]
mov edi, dword [ebp - 0x23c]
mov dword [ebp - 0x20c], eax
mov eax, dword [ebp - 0x238]
mov dword [ebp - 0x234], eax
mov eax, dword [ebp - 0x22c]
mov dword [ebp - 0x218], eax
mov eax, dword [ebp - 0x230]
mov dword [ebp - 0x22c], eax
nop dword [eax]
lea eax, [ebp - 0x40]
mov edx, ecx
push eax
mov ecx, edi
call fcn.00429130
mov esi, eax
add esp, 4
mov eax, 0x4000
mov dword [edi + 0x1c], esi
test word [edi + 8], ax
je 0x430b7e
mov ecx, dword [ebp - 0x234]
or ecx, dword [ebp - 0x20c]
je 0x430b6a
mov ecx, edi
call fcn.00424b90
test eax, eax
je 0x430b7e
mov esi, dword [ebp - 0x1f4]
mov edi, dword [ebp - 0x1f0]
mov ebx, dword [ebp - 0x200]
mov ecx, esi
call fcn.004057b0
push 0x5399bc
push edi
call fcn.004260c0
add esp, 8
mov edx, 7
jmp 0x432111
mov ecx, dword [edi]
mov eax, ecx
cdq
add dword [ebp - 0x22c], eax
adc dword [ebp - 0x218], edx
sub dword [ebp - 0x40], ecx
mov eax, dword [ebp - 0x234]
mov edx, 1
add eax, dword [ebp - 0x40]
mov dword [ebp - 0x234], eax
adc dword [ebp - 0x20c], 0
cmp esi, 0x7f
jbe 0x430bbe
shr esi, 7
xor ecx, ecx
mov eax, esi
or eax, ecx
je 0x430bbe
nop dword [eax]
shrd esi, ecx, 7
inc edx
shr ecx, 7
mov eax, esi
or eax, ecx
jne 0x430bb0
mov eax, dword [ebp - 0x214]
add eax, edx
mov dword [ebp - 0x214], eax
cmp edi, ebx
je 0x430bde
mov ecx, dword [ebp - 0x244]
sub edi, 0x28
jmp 0x430b00
cmp eax, 0x7e
jle 0x430c48
cdq
mov ebx, 1
mov esi, eax
shrd esi, edx, 7
shr edx, 7
mov ecx, esi
or ecx, edx
je 0x430c06
shrd esi, edx, 7
inc ebx
shr edx, 7
mov eax, esi
or eax, edx
jne 0x430bf8
mov eax, dword [ebp - 0x214]
mov edi, 1
add eax, ebx
mov dword [ebp - 0x214], eax
cdq
mov esi, eax
shrd esi, edx, 7
shr edx, 7
mov ecx, esi
or ecx, edx
je 0x430c3e
nop dword [eax]
shrd esi, edx, 7
inc edi
shr edx, 7
mov eax, esi
or eax, edx
jne 0x430c30
mov eax, dword [ebp - 0x214]
cmp ebx, edi
jge 0x430c4f
inc eax
mov dword [ebp - 0x214], eax
mov edi, dword [ebp - 0x20c]
cdq
mov ebx, eax
mov esi, edx
mov eax, dword [ebp - 0x234]
add eax, ebx
mov ecx, eax
mov dword [ebp - 0x234], eax
mov eax, dword [ebp - 0x1f4]
adc edi, esi
add ecx, dword [ebp - 0x22c]
adc edi, dword [ebp - 0x218]
mov eax, dword [eax + 0x64]
cdq
cmp edi, edx
jg 0x434c87
jl 0x430c94
cmp ecx, eax
ja 0x434c87
mov edi, dword [ebp - 0x21c]
mov eax, dword [ebp - 0x234]
cmp dword [edi + 0x18], eax
jge 0x430cbd
push 0
mov edx, eax
mov ecx, edi
call fcn.00424970
add esp, 4
test eax, eax
jne 0x430b39
jmp 0x430cc8
mov eax, dword [edi + 0x14]
and word [edi + 8], 0xd
mov dword [edi + 0x10], eax
mov edx, dword [ebp - 0x214]
mov edi, dword [edi + 0x10]
cmp edx, 0x80
jae 0x430ce2
mov byte [edi], dl
mov eax, 1
jmp 0x430cee
push esi
push ebx
mov ecx, edi
call fcn.00408f40
add esp, 8
mov ebx, dword [ebp - 0x210]
movzx esi, al
nop word [eax + eax]
mov ebx, dword [ebx + 0x1c]
lea ecx, [esi + edi]
cmp ebx, 0x80
jae 0x430d17
mov byte [ecx], bl
mov eax, 1
jmp 0x430d22
push 0
push ebx
call fcn.00408f40
add esp, 8
mov ecx, dword [ebp - 0x214]
push ebx
mov ebx, dword [ebp - 0x210]
mov edx, ebx
movzx eax, al
lea ecx, [ecx + edi]
add esi, eax
call fcn.00429290
add dword [ebp - 0x214], eax
add ebx, 0x28
add esp, 4
mov dword [ebp - 0x210], ebx
cmp ebx, dword [ebp - 0x23c]
jbe 0x430d00
mov edx, dword [ebp - 0x21c]
mov eax, dword [ebp - 0x234]
mov ecx, dword [ebp - 0x22c]
mov esi, dword [ebp - 0x1f4]
mov edi, dword [ebp - 0x1f0]
mov dword [edx + 0xc], eax
mov eax, 0x10
mov word [edx + 8], ax
mov eax, ecx
or eax, dword [ebp - 0x218]
je 0x42eaaf
mov eax, 0x4010
mov dword [edx], ecx
mov ecx, dword [ebp - 0x1fc]
mov word [edx + 8], ax
mov edx, dword [ebp - 0x1ec]
mov eax, dword [ebp - 0x1f8]
add edx, 0x14
jmp 0x42e7cd
mov edx, dword [ebp - 0x1ec]
xorps xmm0, xmm0
mov eax, dword [edi + 0x70]
mov ecx, dword [edx + 4]
lea edx, [ebp - 0x80]
mov eax, dword [eax + ecx*4]
mov ecx, dword [eax + 0x28]
movlpd qword [ebp - 0x80], xmm0
call fcn.00422120
mov edx, eax
mov dword [ebp - 0x204], edx
test edx, edx
jne 0x43210b
mov eax, dword [ebp - 0x1ec]
mov eax, dword [eax + 8]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x5c]
lea edx, [eax + ecx*8]
mov eax, 0x2460
test word [edx + 8], ax
je 0x430e32
mov ecx, edx
call fcn.0042e670
mov ecx, dword [ebp - 0x7c]
mov edx, eax
mov eax, dword [ebp - 0x80]
mov dword [edx], eax
mov eax, dword [ebp - 0x1f8]
mov dword [edx + 4], ecx
mov edx, dword [ebp - 0x1ec]
mov ecx, dword [ebp - 0x1fc]
add edx, 0x14
jmp 0x42e7cd
mov eax, 4
mov word [edx + 8], ax
mov eax, dword [ebp - 0x80]
mov ecx, dword [ebp - 0x7c]
mov dword [edx], eax
mov eax, dword [ebp - 0x1f8]
mov dword [edx + 4], ecx
mov edx, dword [ebp - 0x1ec]
mov ecx, dword [ebp - 0x1fc]
add edx, 0x14
jmp 0x42e7cd
mov edx, dword [ebp - 0x1ec]
mov eax, dword [edx + 4]
mov edi, dword [edx + 0x10]
mov dword [ebp - 0x234], eax
mov dword [ebp - 0x21c], edi
test eax, eax
jne 0x430f7a
cmp dword [esi + 0xa8], eax
jg 0x434ab4
test edi, edi
jne 0x430e94
xor esi, esi
jmp 0x430eaf
mov esi, edi
lea ecx, [esi + 1]
nop dword [eax]
mov al, byte [esi]
inc esi
test al, al
jne 0x430ea0
sub esi, ecx
and esi, 0x3fffffff
mov ebx, dword [ebp - 0x1f4]
xor edx, edx
mov ecx, ebx
mov eax, dword [ebx + 0x1bc]
add eax, dword [ebx + 0x1b8]
push eax
call fcn.0047bb40
mov edx, eax
add esp, 4
mov dword [ebp - 0x204], edx
test edx, edx
jne 0x432105
lea eax, [esi + 0x21]
mov ecx, ebx
push edx
push eax
call fcn.00405440
mov edi, eax
add esp, 8
test edi, edi
je 0x434985
lea ecx, [esi + 1]
push ecx
push dword [ebp - 0x21c]
lea edx, [edi + 0x20]
push edx
mov dword [edi], edx
call fcn.004e8950
mov esi, ebx
add esp, 0xc
cmp byte [esi + 0x47], 0
je 0x430f21
mov byte [esi + 0x47], 0
mov byte [esi + 0x4f], 1
jmp 0x430f27
inc dword [esi + 0x1b8]
mov eax, dword [esi + 0x1b0]
mov edx, dword [ebp - 0x1ec]
mov dword [edi + 0x18], eax
mov eax, dword [esi + 0x1c0]
mov ecx, dword [esi + 0x1c4]
mov dword [esi + 0x1b0], edi
mov dword [edi + 8], eax
mov dword [edi + 0xc], ecx
mov eax, dword [esi + 0x1c8]
mov ecx, dword [esi + 0x1cc]
mov dword [edi + 0x10], eax
mov eax, dword [ebp - 0x1f8]
mov dword [edi + 0x14], ecx
mov edi, dword [ebp - 0x1f0]
mov ecx, dword [ebp - 0x1fc]
add edx, 0x14
jmp 0x42e7cd
mov esi, dword [esi + 0x1b0]
xor ebx, ebx
test esi, esi
je 0x430f9b
mov ecx, dword [esi]
mov edx, edi
call fcn.00408390
test eax, eax
je 0x430fba
mov esi, dword [esi + 0x18]
inc ebx
test esi, esi
jne 0x430f86
push edi
push 0x539788
mov edi, dword [ebp - 0x1f0]
push edi
call fcn.004260c0
add esp, 0xc
mov edx, 1
jmp 0x43210b
mov edx, dword [ebp - 0x1f4]
mov edi, dword [ebp - 0x234]
cmp dword [edx + 0xa8], 0
jle 0x430fd8
cmp edi, 1
je 0x434ad2
cmp dword [esi + 0x18], 0
jne 0x43104a
cmp byte [edx + 0x4f], 0
je 0x43104a
mov dword [ebp - 0x22c], 1
cmp edi, 1
jne 0x431054
mov ecx, dword [ebp - 0x1f0]
mov edx, edi
call fcn.004286e0
mov dword [ebp - 0x204], eax
test eax, eax
jne 0x434f33
mov eax, dword [ebp - 0x1f4]
mov ecx, dword [ebp - 0x1f0]
mov byte [eax + 0x47], 1
call fcn.00428740
cmp eax, 5
je 0x434ad9
mov edx, dword [ebp - 0x1f4]
mov eax, dword [ebp - 0x1f0]
mov byte [edx + 0x4f], 0
mov ecx, dword [eax + 0x28]
mov dword [ebp - 0x204], ecx
jmp 0x431179
mov dword [ebp - 0x22c], 0
mov ecx, dword [edx + 0x1b8]
mov eax, dword [edx + 0x14]
sub ecx, ebx
dec ecx
mov dword [ebp - 0x20c], ecx
cmp edi, 2
jne 0x4310e0
mov edx, dword [edx + 0x18]
xor ebx, ebx
and edx, 1
mov dword [ebp - 0x210], edx
test eax, eax
jle 0x4310e8
mov ecx, edx
xor ecx, 1
xor edi, edi
mov dword [ebp - 0x21c], ecx
nop word [eax + eax]
mov eax, dword [ebp - 0x1f4]
mov edx, 0x204
push ecx
mov ecx, dword [eax + 0x10]
mov ecx, dword [edi + ecx + 4]
call fcn.0041aef0
mov edx, eax
add esp, 4
mov dword [ebp - 0x204], edx
test edx, edx
jne 0x432105
mov eax, dword [ebp - 0x1f4]
inc ebx
mov ecx, dword [ebp - 0x21c]
add edi, 0x10
mov eax, dword [eax + 0x14]
cmp ebx, eax
jl 0x431090
mov ecx, dword [ebp - 0x20c]
mov edx, dword [ebp - 0x210]
jmp 0x4310e8
xor edx, edx
mov dword [ebp - 0x210], edx
xor ebx, ebx
test eax, eax
mov eax, dword [ebp - 0x1f4]
jle 0x431137
xor edi, edi
mov edx, dword [ebp - 0x234]
push ecx
mov ecx, dword [eax + 0x10]
mov ecx, dword [edi + ecx + 4]
call fcn.0041b170
mov edx, eax
add esp, 4
mov dword [ebp - 0x204], edx
test edx, edx
jne 0x432105
mov eax, dword [ebp - 0x1f4]
inc ebx
mov ecx, dword [ebp - 0x20c]
add edi, 0x10
cmp ebx, dword [eax + 0x14]
jl 0x4310f6
mov edx, dword [ebp - 0x210]
test edx, edx
je 0x431167
mov eax, dword [eax + 4]
test eax, eax
je 0x431150
or dword [eax + 0x94], 1
mov eax, dword [eax + 8]
test eax, eax
jne 0x431142
mov ecx, dword [ebp - 0x1f4]
call fcn.0044a9f0
mov edx, dword [ebp - 0x1f4]
or dword [edx + 0x18], 1
jmp 0x43116d
mov edx, dword [ebp - 0x1f4]
mov edi, dword [ebp - 0x234]
mov ebx, dword [ebp - 0x20c]
mov ecx, dword [edx + 0x1b0]
cmp ecx, esi
je 0x4311be
mov edi, dword [ebp - 0x1f4]
nop dword [eax]
mov eax, dword [ecx + 0x18]
mov edx, ecx
mov ecx, edi
mov dword [edi + 0x1b0], eax
call fcn.00405100
mov ecx, dword [edi + 0x1b0]
dec dword [edi + 0x1b8]
cmp ecx, esi
jne 0x431190
mov edi, dword [ebp - 0x234]
mov edx, dword [ebp - 0x1f4]
cmp edi, 1
jne 0x431227
mov eax, dword [esi + 0x18]
mov dword [edx + 0x1b0], eax
mov edx, esi
mov esi, dword [ebp - 0x1f4]
mov ecx, esi
call fcn.00405100
cmp dword [ebp - 0x22c], 0
jne 0x43125f
dec dword [esi + 0x1b8]
push ebx
mov edx, edi
mov ecx, esi
call fcn.0047bb40
mov edi, dword [ebp - 0x1f0]
mov edx, eax
add esp, 4
mov dword [ebp - 0x204], edx
test edx, edx
jne 0x43210b
mov edx, dword [ebp - 0x1ec]
mov ecx, dword [ebp - 0x1fc]
mov eax, dword [ebp - 0x1f8]
add edx, 0x14
jmp 0x42e7cd
cmp dword [ebp - 0x22c], 0
mov eax, dword [esi + 8]
mov ecx, dword [esi + 0xc]
mov dword [edx + 0x1c0], eax
mov dword [edx + 0x1c4], ecx
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0x14]
mov esi, dword [ebp - 0x1f4]
mov dword [esi + 0x1c8], eax
mov dword [esi + 0x1cc], ecx
je 0x4311ea
cmp edi, 2
je 0x4311ea
mov edx, dword [ebp - 0x204]
mov edi, dword [ebp - 0x1f0]
test edx, edx
jne 0x43210b
mov edx, dword [ebp - 0x1ec]
mov ecx, dword [ebp - 0x1fc]
mov eax, dword [ebp - 0x1f8]
add edx, 0x14
jmp 0x42e7cd
mov edx, dword [ebp - 0x1ec]
mov edx, dword [edx + 8]
test edx, edx
je 0x4312a7
test dword [esi + 0x1c], 0x100000
jne 0x434b1f
mov eax, dword [ebp - 0x1ec]
mov ecx, dword [eax + 4]
mov eax, dword [esi + 0x10]
add ecx, ecx
mov esi, dword [eax + ecx*8 + 4]
test esi, esi
je 0x4313a1
mov ecx, esi
call fcn.00419b90
mov edx, eax
mov dword [ebp - 0x204], edx
test edx, edx
jne 0x434b29
mov eax, dword [ebp - 0x1ec]
cmp dword [eax + 8], edx
je 0x43136e
test byte [edi + 0x94], 0x40
je 0x43136e
mov ebx, dword [ebp - 0x1f4]
cmp byte [ebx + 0x47], dl
je 0x431304
cmp dword [ebx + 0xa4], 1
jle 0x43136e
mov eax, dword [edi + 0x30]
test eax, eax
jne 0x431320
mov eax, dword [ebx + 0x1b8]
inc dword [ebx + 0x1bc]
add eax, dword [ebx + 0x1bc]
mov dword [edi + 0x30], eax
dec eax
xor edx, edx
push eax
mov ecx, ebx
call fcn.0047bb40
mov edx, eax
add esp, 4
mov dword [ebp - 0x204], edx
test edx, edx
jne 0x43134a
mov edx, dword [edi + 0x30]
mov ecx, esi
call fcn.0041b110
mov dword [ebp - 0x204], eax
mov eax, dword [ebx + 0x1c0]
mov ecx, dword [ebx + 0x1c4]
mov dword [edi + 0x48], eax
mov dword [edi + 0x4c], ecx
mov eax, dword [ebx + 0x1c8]
mov ecx, dword [ebx + 0x1cc]
mov dword [edi + 0x50], eax
mov dword [edi + 0x54], ecx
lea eax, [ebp - 0x4c]
mov edx, 1
push eax
mov ecx, esi
call fcn.00422010
mov eax, dword [ebp - 0x1ec]
add esp, 4
mov esi, dword [ebp - 0x1f4]
mov ecx, dword [eax + 4]
mov eax, dword [esi + 0x10]
add ecx, ecx
mov eax, dword [eax + ecx*8 + 0xc]
mov ecx, dword [eax + 4]
mov eax, dword [ebp - 0x4c]
jmp 0x4313ae
mov esi, dword [ebp - 0x1f4]
xor eax, eax
mov dword [ebp - 0x4c], eax
xor ecx, ecx
mov edx, dword [ebp - 0x1ec]
cmp word [edx + 2], 0
je 0x4313cd
cmp eax, dword [edx + 0xc]
jne 0x434b60
cmp ecx, dword [edx + 0x10]
jne 0x434b60
cmp dword [ebp - 0x204], 0
jne 0x434c1d
mov ecx, dword [ebp - 0x1fc]
mov eax, dword [ebp - 0x1f8]
add edx, 0x14
jmp 0x42e7cd
mov edx, dword [ebp - 0x1ec]
lea eax, [ebp - 0x90]
mov ecx, dword [esi + 0x10]
push eax
mov eax, dword [edx + 4]
mov edx, dword [edx + 0xc]
add eax, eax
mov ecx, dword [ecx + eax*8 + 4]
call fcn.00422010
mov eax, dword [ebp - 0x1ec]
add esp, 4
mov eax, dword [eax + 8]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x5c]
lea ecx, [eax + ecx*8]
mov eax, 0x2460
test word [ecx + 8], ax
je 0x43145c
call fcn.0042e670
mov ecx, eax
mov eax, dword [ebp - 0x90]
cdq
mov dword [ecx], eax
mov eax, dword [ebp - 0x1f8]
mov dword [ecx + 4], edx
mov edx, dword [ebp - 0x1ec]
mov ecx, dword [ebp - 0x1fc]
add edx, 0x14
jmp 0x42e7cd
mov eax, 4
mov word [ecx + 8], ax
mov eax, dword [ebp - 0x90]
cdq
mov dword [ecx], eax
mov eax, dword [ebp - 0x1f8]
mov dword [ecx + 4], edx
mov edx, dword [ebp - 0x1ec]
mov ecx, dword [ebp - 0x1fc]
add edx, 0x14
jmp 0x42e7cd
mov edx, dword [ebp - 0x1ec]
mov eax, dword [ebp - 0x1f4]
mov esi, dword [edx + 4]
push dword [edx + 0xc]
mov edx, dword [edx + 8]
shl esi, 4
add esi, dword [eax + 0x10]
mov ecx, dword [esi + 4]
call fcn.00422070
mov dword [ebp - 0x204], eax
add esp, 4
mov eax, dword [ebp - 0x1ec]
mov eax, dword [eax + 8]
cmp eax, 1
jne 0x4314df
mov ecx, dword [esi + 0xc]
mov eax, dword [ebp - 0x1ec]
mov esi, dword [ebp - 0x1f4]
mov eax, dword [eax + 0xc]
mov dword [ecx], eax
or dword [esi + 0x18], 1
jmp 0x4314f9
cmp eax, 2
jne 0x4314f3
mov eax, dword [ebp - 0x1ec]
mov ecx, dword [esi + 0xc]
mov al, byte [eax + 0xc]
mov byte [ecx + 0x4c], al
mov esi, dword [ebp - 0x1f4]
mov edx, dword [ebp - 0x1ec]
cmp dword [edx + 4], 1
jne 0x431525
mov eax, dword [esi + 4]
test eax, eax
je 0x43151e
nop dword [eax]
or dword [eax + 0x94], 1
mov eax, dword [eax + 8]
test eax, eax
jne 0x431510
and dword [edi + 0x94], 0xfffffffe
cmp dword [ebp - 0x204], 0
jne 0x434c1d
mov ecx, dword [ebp - 0x1fc]
mov eax, dword [ebp - 0x1f8]
add edx, 0x14
jmp 0x42e7cd
mov ebx, dword [ebp - 0x1ec]
mov eax, dword [edi + 0x70]
mov ecx, dword [ebx + 4]
mov esi, dword [eax + ecx*4]
test esi, esi
je case.0x42e7f1.104
mov eax, dword [esi + 0x34]
cmp eax, dword [ebx + 8]
je 0x4316a1
test byte [edi + 0x94], 1
jne 0x434bb0
mov edi, dword [ebp - 0x1ec]
xor ebx, ebx
mov esi, dword [edi + 0xc]
mov eax, esi
mov ecx, dword [edi + 8]
mov edi, dword [ebp - 0x1f4]
shl eax, 4
mov dword [ebp - 0x21c], ecx
mov dword [ebp - 0x23c], esi
add eax, dword [edi + 0x10]
mov edi, dword [eax + 4]
mov dword [ebp - 0x20c], edi
cmp dl, 0x69
jne 0x4315d4
mov edx, dword [ebp - 0x1ec]
mov eax, dword [eax + 0xc]
movzx edi, word [edx + 2]
mov edx, dword [ebp - 0x1f0]
and edi, 8
mov al, byte [eax + 0x4c]
or edi, 4
cmp al, byte [edx + 0x8f]
jae 0x4315d6
mov byte [edx + 0x8f], al
jmp 0x4315d6
xor edi, edi
mov eax, dword [ebp - 0x1ec]
test byte [eax + 2], 0x10
je 0x43161c
lea eax, [ecx + ecx*4]
mov ecx, dword [ebp - 0x208]
lea esi, [ecx + eax*8]
mov ecx, esi
call fcn.00424f60
mov dword [esi], eax
mov ecx, 0x3e00
mov ax, word [esi + 8]
and ax, cx
mov dword [esi + 4], edx
or ax, 4
mov word [esi + 8], ax
mov eax, dword [esi]
mov esi, dword [ebp - 0x23c]
mov dword [ebp - 0x21c], eax
mov ecx, dword [ebp - 0x1ec]
mov al, byte [ecx + 1]
cmp al, 0xf7
jne 0x431632
mov ebx, dword [ecx + 0x10]
movzx eax, word [ebx + 8]
jmp 0x43163d
cmp al, 0xfd
jne 0x43163b
mov eax, dword [ecx + 0x10]
jmp 0x43163d
mov eax, ebx
mov edx, dword [ecx + 4]
mov ecx, dword [ebp - 0x1f0]
push 0
push esi
push eax
call fcn.0042e2b0
mov esi, eax
add esp, 0xc
test esi, esi
je 0x430b39
push dword [esi + 0x28]
mov eax, dword [ebp - 0x21c]
mov edx, eax
mov ecx, dword [ebp - 0x20c]
or dword [esi + 8], 4
push ebx
push edi
mov byte [esi + 2], 1
mov dword [esi + 0x34], eax
call fcn.0041b2f0
mov edi, dword [ebp - 0x1f0]
add esp, 0xc
mov dword [ebp - 0x204], eax
mov eax, dword [ebp - 0x1ec]
mov dword [esi + 0x2c], ebx
cmp byte [eax + 1], 0xf7
setne al
mov byte [esi + 4], al
mov eax, dword [ebp - 0x1ec]
mov cl, byte [eax + 2]
mov eax, dword [esi + 0x28]
and cl, 3
mov byte [eax + 3], cl
jmp 0x42fa09
mov edx, dword [ebp - 0x1ec]
mov eax, dword [edi + 0x70]
push 0
push 0xffffffffffffffff
mov ecx, dword [edx + 8]
mov edx, dword [edx + 4]
mov esi, dword [eax + ecx*4]
mov ecx, edi
movsx eax, word [esi + 0x38]
push eax
call fcn.0042e2b0
add esp, 0xc
test eax, eax
je 0x434f21
or dword [eax + 8], 1
push dword [eax + 0x28]
mov byte [eax + 2], 1
mov edx, dword [esi + 0x2c]
mov dword [eax + 0x2c], edx
mov cl, byte [esi + 4]
push edx
mov byte [eax + 4], cl
mov edx, 1
mov ecx, dword [esi + 0xc]
push 4
call fcn.0041b2f0
mov edx, dword [ebp - 0x1ec]
add esp, 0xc
mov esi, dword [ebp - 0x1f4]
mov ecx, dword [ebp - 0x1fc]
mov dword [ebp - 0x204], eax
mov eax, dword [ebp - 0x1f8]
add edx, 0x14
jmp 0x42e7cd
mov ebx, dword [ebp - 0x1ec]
mov ecx, edi
push 0
push 0xffffffffffffffff
push dword [ebx + 8]
mov edx, dword [ebx + 4]
call fcn.0042e2b0
mov esi, eax
add esp, 0xc
test esi, esi
je 0x434f21
or dword [esi + 8], 1
lea eax, [esi + 8]
mov dword [ebp - 0x244], eax
lea edi, [esi + 0xc]
mov byte [esi + 2], 1
xor edx, edx
movzx eax, word [ebx + 2]
push 0x41e
or eax, 5
push eax
mov eax, dword [ebp - 0x1f4]
push edi
push eax
mov ecx, dword [eax]
call fcn.00418aa0
mov edx, eax
add esp, 0x10
test edx, edx
jne 0x432105
mov ecx, dword [edi]
lea edx, [eax + 1]
call fcn.00419b90
mov edx, eax
test edx, edx
jne 0x432105
mov ebx, dword [ebx + 0x10]
mov ecx, dword [edi]
mov dword [esi + 0x2c], ebx
test ebx, ebx
je 0x43185b
mov eax, dword [ebp - 0x1ec]
lea edx, [ebp - 0x8c]
movzx eax, word [eax + 2]
or eax, 2
push eax
call fcn.004216e0
add esp, 4
mov dword [ebp - 0x204], eax
test eax, eax
jne 0x431857
mov eax, dword [esi + 0x28]
mov edi, dword [edi]
mov dword [ebp - 0x21c], eax
mov eax, dword [ebp - 0x8c]
mov dword [ebp - 0x23c], eax
cmp eax, 1
jge 0x43182a
push 0x53d0b4
push 0xf9db
push 0x53d048
push 0x53d02c
push 0xb
call fcn.00407720
add esp, 0x14
mov dword [ebp - 0x204], 0xb
xor al, al
jmp 0x431877
mov ecx, edi
call fcn.00416d30
push dword [ebp - 0x21c]
mov edx, dword [ebp - 0x23c]
mov ecx, edi
push ebx
push 4
call fcn.0041b230
add esp, 0xc
mov dword [ebp - 0x204], eax
mov ecx, edi
call fcn.00416df0
xor al, al
jmp 0x431877
push dword [esi + 0x28]
mov edx, 1
push 0
push 4
call fcn.0041b2f0
mov dword [ebp - 0x204], eax
add esp, 0xc
mov al, 1
mov edx, dword [ebp - 0x204]
mov edi, dword [ebp - 0x1f0]
mov byte [esi + 4], al
test edx, edx
jne 0x43210b
mov eax, dword [ebp - 0x1ec]
xor ecx, ecx
mov edx, dword [ebp - 0x244]
mov esi, dword [ebp - 0x1f4]
cmp word [eax + 2], 8
mov eax, 4
cmovne ecx, eax
mov eax, dword [edx]
and eax, 0xfffffffb
or ecx, eax
mov eax, dword [ebp - 0x1f8]
mov dword [edx], ecx
mov edx, dword [ebp - 0x1ec]
mov ecx, dword [ebp - 0x1fc]
add edx, 0x14
jmp 0x42e7cd
mov edx, dword [ebp - 0x1ec]
mov ecx, edi
push 1
push 0xffffffffffffffff
push dword [edx + 8]
mov edx, dword [edx + 4]
call fcn.0042e2b0
add esp, 0xc
test eax, eax
je 0x430b45
mov edx, dword [ebp - 0x1ec]
push eax
mov ecx, dword [edx + 0x10]
mov dword [eax + 0x2c], ecx
mov ecx, esi
mov edx, dword [edx + 0xc]
call fcn.00436780
add esp, 4
mov edx, eax
mov dword [ebp - 0x204], edx
test edx, edx
jne 0x43210b
mov edx, dword [ebp - 0x1ec]
mov ecx, dword [ebp - 0x1fc]
mov eax, dword [ebp - 0x1f8]
add edx, 0x14
jmp 0x42e7cd
mov edx, dword [ebp - 0x1ec]
mov eax, dword [edi + 0x70]
mov ecx, dword [edx + 4]
mov edx, dword [eax + ecx*4]
mov edi, dword [edx + 0x10]
mov ecx, edi
mov esi, dword [edx + 0x14]
add ecx, 1
mov eax, esi
mov dword [edx + 0x10], ecx
adc eax, 0
or edi, esi
mov edi, dword [ebp - 0x1f0]
mov dword [edx + 0x14], eax
mov edx, dword [ebp - 0x1ec]
je 0x433784
mov esi, dword [ebp - 0x1f4]
mov ecx, dword [ebp - 0x1fc]
mov eax, dword [ebp - 0x1f8]
add edx, 0x14
jmp 0x42e7cd
mov edx, dword [ebp - 0x1ec]
mov ecx, edi
push 3
push 0xffffffffffffffff
push dword [edx + 0xc]
mov edx, dword [edx + 4]
call fcn.0042e2b0
add esp, 0xc
test eax, eax
je 0x430b45
mov ecx, dword [ebp - 0x1ec]
mov edx, dword [ebp - 0x1ec]
mov byte [eax + 2], 1
mov ecx, dword [ecx + 8]
mov dword [eax + 0x20], ecx
mov ecx, dword [ebp - 0x1fc]
mov byte [eax + 4], 1
mov dword [eax + 0x28], 0x54a52c
mov eax, dword [ebp - 0x1f8]
add edx, 0x14
jmp 0x42e7cd
mov edx, dword [ebp - 0x1ec]
mov ecx, edi
mov eax, dword [edx + 4]
mov edx, dword [edi + 0x70]
mov edx, dword [edx + eax*4]
call fcn.00427a90
mov eax, dword [ebp - 0x1ec]
mov edx, dword [ebp - 0x1ec]
mov ecx, dword [eax + 4]
mov eax, dword [edi + 0x70]
mov dword [eax + ecx*4], 0
mov ecx, dword [ebp - 0x1fc]
mov eax, dword [ebp - 0x1f8]
add edx, 0x14
jmp 0x42e7cd
mov edx, dword [ebp - 0x1ec]
mov eax, dword [edi + 0x70]
xor edi, edi
mov dword [ebp - 0x23c], edi
mov ecx, dword [edx + 4]
mov esi, dword [eax + ecx*4]
cmp byte [esi + 4], 0
mov byte [esi + 2], 0
je 0x431b00
mov eax, dword [edx + 0xc]
mov ecx, dword [ebp - 0x208]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov al, byte [edi + 8]
and al, 0xe
cmp al, 2
jne 0x431a6b
xor edx, edx
mov ecx, edi
call fcn.0042e3a0
mov ecx, edi
call fcn.00424f60
movzx ecx, word [edi + 8]
mov dword [ebp - 0x21c], eax
mov dword [ebp - 0x20c], edx
test cl, 4
jne 0x431ab5
test cl, 8
je 0x433778
mov ecx, eax
call fcn.004e62e0
movsd xmm1, qword [edi]
comisd xmm0, xmm1
jbe 0x431aa9
test bl, 1
je 0x431ab5
dec ebx
jmp 0x431ab5
comisd xmm1, xmm0
jbe 0x431ab5
test bl, 1
jne 0x431ab5
inc ebx
mov edi, dword [ebp - 0x21c]
lea eax, [ebp - 0x14]
mov ecx, dword [esi + 0x28]
xor edx, edx
push eax
push 0
push dword [ebp - 0x20c]
push edi
call fcn.0041c150
mov dword [ebp - 0x204], eax
add esp, 0x10
mov edx, dword [ebp - 0x204]
mov eax, dword [ebp - 0x20c]
mov dword [esi + 0x40], edi
mov dword [esi + 0x44], eax
test edx, edx
jne 0x432105
mov edi, dword [ebp - 0x23c]
jmp 0x431b9b
mov ecx, dword [esi + 0x28]
mov edx, 2
call fcn.00423720
mov ecx, dword [ebp - 0x1ec]
lea edx, [ebp - 0xe8]
test eax, eax
mov eax, 1
cmovne edi, eax
mov eax, dword [esi + 0x2c]
mov dword [ebp - 0xe8], eax
test bl, 1
mov ax, word [ecx + 0x10]
mov word [ebp - 0xe0], ax
sete al
mov byte [ebp - 0xda], 0
lea eax, [eax*2 - 1]
mov byte [ebp - 0xde], al
mov eax, dword [ecx + 0xc]
mov ecx, dword [ebp - 0x208]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov dword [ebp - 0xe4], eax
lea eax, [ebp - 0x14]
mov ecx, dword [esi + 0x28]
push eax
push 0
push 0
push 0
call fcn.0041c150
mov edx, eax
add esp, 0x10
mov dword [ebp - 0x204], edx
test edx, edx
jne 0x432105
test edi, edi
je 0x431b9b
cmp byte [ebp - 0xda], al
je 0x431c6d
mov byte [esi + 3], 0
mov dword [esi + 0x1c], 0
mov eax, dword [ebp - 0x14]
cmp ebx, 0x1a
jl 0x431c3f
test eax, eax
js 0x431bc9
jne 0x431bbd
cmp ebx, 0x1b
je 0x431bc9
mov dword [ebp - 0x14], 0
jmp 0x431c78
mov dword [ebp - 0x14], 0
push 0
push dword [esi + 0x28]
call fcn.0041c810
mov edx, eax
add esp, 8
mov dword [ebp - 0x204], edx
test edx, edx
je 0x431c6d
mov edi, dword [ebp - 0x1f0]
cmp edx, 0x65
jne 0x43210b
mov edx, dword [ebp - 0x1ec]
mov ecx, dword [ebp - 0x200]
mov esi, dword [ebp - 0x1f4]
mov dword [ebp - 0x204], 0
mov eax, dword [edx + 8]
mov dword [ebp - 0x14], 1
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea edx, [ecx + eax*4]
mov ecx, dword [ebp - 0x1fc]
mov eax, dword [ebp - 0x1f8]
add edx, 0x14
jmp 0x42e7cd
test eax, eax
jg 0x431c57
jne 0x431c4a
cmp ebx, 0x18
je 0x431c57
mov ecx, dword [esi + 0x28]
call fcn.0041c6e0
mov dword [ebp - 0x14], eax
jmp 0x431c70
mov dword [ebp - 0x14], 0
push 0
push dword [esi + 0x28]
call fcn.0041c9a0
jmp 0x431bda
mov eax, dword [ebp - 0x14]
test eax, eax
jne 0x433778
mov edx, dword [ebp - 0x1ec]
test edi, edi
mov esi, dword [ebp - 0x1f4]
mov ecx, dword [ebp - 0x1fc]
mov eax, dword [ebp - 0x1f8]
mov edi, dword [ebp - 0x1f0]
je 0x42e89e
add edx, 0x14
add edx, 0x14
jmp 0x42e7cd
mov edx, dword [ebp - 0x1ec]
mov eax, dword [edi + 0x70]
mov ecx, dword [edx + 4]
mov ebx, dword [eax + ecx*4]
mov eax, dword [edx + 0xc]
mov ecx, dword [ebp - 0x208]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov ecx, dword [edx + 0x10]
test ecx, ecx
jle 0x431cee
mov eax, dword [ebx + 0x2c]
lea edi, [ebp - 0x178]
mov dword [ebp - 0x174], esi
xor esi, esi
mov dword [ebp - 0x178], eax
mov word [ebp - 0x170], cx
jmp 0x431d3a
mov eax, 0x4000
test word [esi + 8], ax
je 0x431d08
mov ecx, esi
call fcn.00424b90
test eax, eax
jne 0x434f21
mov ecx, dword [ebx + 0x2c]
call fcn.004295b0
mov edi, eax
mov dword [ebp - 0x21c], edi
test edi, edi
je 0x430b39
mov edx, dword [esi + 0xc]
mov ecx, dword [ebx + 0x2c]
push edi
push dword [esi + 0x10]
call fcn.00429610
mov edx, dword [ebp - 0x1ec]
add esp, 8
mov esi, edi
mov byte [edi + 0xa], 0
cmp byte [edx], 0x1c
mov dword [ebp - 0x21c], 0
jne 0x431d79
movzx edx, word [edi + 8]
xor ecx, ecx
test edx, edx
je 0x431d79
mov eax, dword [edi + 4]
add eax, 8
nop dword [eax]
test byte [eax], 1
jne 0x431d6f
inc ecx
add eax, 0x28
cmp ecx, edx
jl 0x431d60
jmp 0x431d79
mov dword [ebp - 0x21c], 1
mov ecx, dword [ebx + 0x28]
lea eax, [ebp - 0x60]
push eax
push 0
push 0
push 0
mov edx, edi
call fcn.0041c150
add esp, 0x10
mov edx, eax
mov dword [ebp - 0x204], edx
test esi, esi
je 0x431db3
mov edx, esi
mov esi, dword [ebp - 0x1f4]
mov ecx, esi
call fcn.00405100
mov edx, dword [ebp - 0x204]
jmp 0x431db9
mov esi, dword [ebp - 0x1f4]
test edx, edx
jne 0x432105
mov eax, dword [ebp - 0x60]
xor ecx, ecx
mov edi, dword [ebp - 0x1f0]
mov dword [ebx + 0x20], eax
mov eax, dword [ebp - 0x60]
test eax, eax
mov byte [ebx + 3], dl
sete cl
mov dword [ebx + 0x1c], edx
mov edx, dword [ebp - 0x1ec]
test eax, eax
setne al
mov byte [ebx + 2], al
cmp byte [edx], 0x1e
jne 0x431e0c
test ecx, ecx
jne 0x433784
mov ecx, dword [ebp - 0x1fc]
mov eax, dword [ebp - 0x1f8]
add edx, 0x14
jmp 0x42e7cd
cmp dword [ebp - 0x21c], 0
jne 0x433784
test ecx, ecx
je 0x433784
mov ecx, dword [ebp - 0x1fc]
mov eax, dword [ebp - 0x1f8]
add edx, 0x14
jmp 0x42e7cd
mov edx, dword [ebp - 0x1ec]
mov ecx, dword [ebp - 0x208]
mov eax, dword [edx + 0xc]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 8], 4
lea esi, [ecx + eax*8]
jne 0x431e7b
push dword [ebp - 0x224]
mov dl, 0x43
mov ecx, esi
call fcn.0042e480
mov edx, dword [ebp - 0x1ec]
add esp, 4
test byte [esi + 8], 4
je 0x433784
jmp 0x431e7b
mov edx, dword [ebp - 0x1ec]
mov ecx, dword [edx + 4]
mov eax, dword [edi + 0x70]
mov edx, dword [ebp - 0x208]
mov ebx, dword [eax + ecx*4]
mov eax, dword [ebp - 0x1ec]
mov ecx, dword [ebx + 0x28]
mov eax, dword [eax + 0xc]
mov dword [ebp - 0x3c], 0
lea eax, [eax + eax*4]
mov esi, dword [edx + eax*8]
mov edi, dword [edx + eax*8 + 4]
lea eax, [ebp - 0x3c]
push eax
push 0
push edi
push esi
xor edx, edx
call fcn.0041c150
mov dword [ebx + 0x40], esi
add esp, 0x10
mov dword [ebx + 0x44], edi
mov word [ebx + 2], 0
mov dword [ebx + 0x1c], 0
mov dword [ebp - 0x204], eax
mov eax, dword [ebp - 0x3c]
mov dword [ebx + 0x20], eax
cmp dword [ebp - 0x3c], 0
je 0x431f0b
mov edx, dword [ebp - 0x1ec]
cmp dword [edx + 8], 0
jne 0x43377e
mov ecx, 0x14586
call fcn.00492530
mov edi, dword [ebp - 0x1f0]
mov edx, eax
mov dword [ebp - 0x204], edx
jmp 0x42fa0f
mov edx, dword [ebp - 0x204]
mov edi, dword [ebp - 0x1f0]
jmp 0x42fa0f
mov ebx, dword [ebp - 0x1ec]
mov ecx, edi
mov edx, ebx
call fcn.0042e690
mov edx, dword [ebx + 4]
mov ecx, dword [edi + 0x70]
mov ecx, dword [ecx + edx*4]
mov edx, dword [ecx + 0x10]
mov ecx, dword [ecx + 0x14]
mov dword [eax], edx
mov edx, ebx
mov dword [eax + 4], ecx
mov eax, ebx
mov ecx, dword [eax + 4]
mov eax, dword [edi + 0x70]
mov eax, dword [eax + ecx*4]
mov ecx, dword [ebp - 0x1fc]
add dword [eax + 0x10], 1
adc dword [eax + 0x14], 0
mov eax, dword [ebp - 0x1f8]
add edx, 0x14
jmp 0x42e7cd
mov ebx, dword [ebp - 0x1ec]
xorps xmm0, xmm0
mov edx, ebx
movlpd qword [ebp - 0x20], xmm0
mov ecx, edi
mov dword [ebp - 0x34], 0
call fcn.0042e690
mov edx, dword [ebx + 4]
mov edi, eax
mov eax, dword [ebp - 0x1f0]
mov dword [ebp - 0x21c], edi
mov ecx, dword [eax + 0x70]
mov ebx, dword [ecx + edx*4]
test byte [ebx + 8], 2
jne 0x431ffe
mov ecx, dword [ebx + 0x28]
lea edx, [ebp - 0x34]
call fcn.0041c0f0
mov edx, eax
mov dword [ebp - 0x204], edx
test edx, edx
jne 0x432105
cmp dword [ebp - 0x34], eax
je 0x431fcf
mov dword [ebp - 0x20], 1
mov dword [ebp - 0x1c], eax
jmp 0x431ffe
mov ecx, dword [ebx + 0x28]
call fcn.0041b500
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x1c], edx
cmp edx, 0x7fffffff
jl 0x431ff2
jg 0x431fec
cmp eax, 0xffffffff
jb 0x431ff2
or dword [ebx + 8], 2
jmp 0x431ffe
add eax, 1
mov dword [ebp - 0x20], eax
adc edx, 0
mov dword [ebp - 0x1c], edx
mov eax, dword [ebp - 0x1ec]
mov ecx, dword [eax + 0xc]
test ecx, ecx
je 0x43209d
mov edi, dword [ebp - 0x1f0]
mov edx, dword [edi + 0xc4]
test edx, edx
je 0x43203a
mov eax, dword [edx + 4]
test eax, eax
je 0x43202f
mov edx, eax
mov eax, dword [edx + 4]
test eax, eax
jne 0x432026
mov eax, dword [edx + 0x10]
lea ecx, [ecx + ecx*4]
lea esi, [eax + ecx*8]
jmp 0x432046
lea eax, [ecx + ecx*4]
mov ecx, dword [ebp - 0x208]
lea esi, [ecx + eax*8]
mov ecx, esi
call fcn.00425070
mov ecx, dword [esi]
mov edx, dword [esi + 4]
cmp ecx, 0xffffffff
jne 0x432063
cmp edx, 0x7fffffff
je 0x434bba
test byte [ebx + 8], 2
jne 0x434bba
mov edi, dword [ebp - 0x1c]
add ecx, 1
adc edx, 0
cmp edi, edx
jg 0x43208f
jl 0x432083
mov eax, dword [ebp - 0x20]
cmp eax, ecx
jae 0x432092
mov eax, ecx
mov edi, edx
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x1c], edi
jmp 0x432092
mov eax, dword [ebp - 0x20]
mov dword [esi + 4], edi
mov edi, dword [ebp - 0x21c]
mov dword [esi], eax
test byte [ebx + 8], 2
je 0x4321d5
xor esi, esi
nop dword [eax]
lea eax, [ebp - 0x20]
push eax
push 8
call fcn.00407800
mov eax, dword [ebp - 0x1c]
lea edx, [ebp - 0x34]
mov ecx, dword [ebp - 0x20]
and eax, 0x3fffffff
add ecx, 1
push edx
adc eax, 0
mov dword [ebp - 0x20], ecx
push 0
push eax
mov dword [ebp - 0x1c], eax
xor edx, edx
push ecx
mov ecx, dword [ebx + 0x28]
call fcn.0041c150
mov edx, eax
add esp, 0x18
mov dword [ebp - 0x204], edx
test edx, edx
jne 0x432105
cmp dword [ebp - 0x34], eax
jne 0x4321d5
inc esi
cmp esi, 0x64
jl 0x4320b0
lea edx, [eax + 0xd]
mov edi, dword [ebp - 0x1f0]
mov ebx, dword [ebp - 0x200]
mov esi, dword [ebp - 0x1f4]
mov eax, 7
cmp byte [esi + 0x49], 0
cmovne edx, eax
cmp dword [edi + 0x6c], 0
mov dword [ebp - 0x204], edx
jne 0x432153
cmp edx, 0xc0a
je 0x432153
mov ecx, edx
call fcn.004900d0
push eax
push 0x538ee0
push edi
call fcn.004260c0
mov edx, dword [ebp - 0x204]
add esp, 0xc
mov ecx, esi
mov dword [edi + 0x28], edx
call fcn.004080b0
mov ecx, dword [ebp - 0x1ec]
mov eax, 0x66666667
push dword [edi + 0x6c]
sub ecx, ebx
push dword [edi + 0xbc]
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
push eax
push 0x53999c
push dword [ebp - 0x204]
call fcn.00407720
add esp, 0x14
mov ecx, edi
call fcn.00428740
cmp dword [ebp - 0x204], 0xc0a
jne 0x4321ad
mov ecx, esi
call fcn.004057b0
mov al, byte [ebp - 0x245]
mov dword [ebp - 0x204], 1
test al, al
je 0x434f39
movzx edx, al
mov ecx, esi
dec edx
call fcn.0044a990
jmp 0x434f39
mov byte [ebx + 3], 0
mov dword [ebx + 0x1c], 0
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x1c]
mov dword [edi], eax
mov dword [edi + 4], ecx
jmp 0x42ed9c
mov ebx, dword [ebp - 0x1ec]
mov dword [ebp - 0x21c], 0
mov eax, dword [ebx + 8]
lea ebx, [eax + eax*4]
mov eax, dword [ebp - 0x1ec]
mov ecx, dword [eax + 4]
mov eax, dword [edi + 0x70]
mov edi, dword [eax + ecx*4]
mov eax, dword [ebp - 0x1ec]
mov eax, dword [eax + 0xc]
cmp dl, 0x74
jne 0x432235
mov ecx, dword [ebp - 0x208]
lea eax, [eax + eax*4]
mov esi, dword [ecx + eax*8]
mov edx, dword [ecx + eax*8 + 4]
jmp 0x432238
cdq
mov esi, eax
mov eax, dword [ebp - 0x1ec]
mov dword [ebp - 0x134], edx
mov dword [ebp - 0x138], esi
cmp byte [eax + 1], 0xfa
jne 0x4322a2
mov ecx, dword [ebp - 0x1f4]
cmp dword [ecx + 0xe0], 0
je 0x4322a2
mov eax, dword [ebp - 0x1f4]
movsx ecx, byte [edi + 1]
add ecx, ecx
mov eax, dword [eax + 0x10]
mov eax, dword [eax + ecx*8]
mov ecx, dword [ebp - 0x1ec]
mov dword [ebp - 0x244], eax
mov eax, dword [ecx + 0x10]
mov dword [ebp - 0x23c], eax
movzx eax, word [ecx + 2]
mov ecx, 0x12
test al, 4
cmovne ecx, dword [ebp - 0x258]
mov dword [ebp - 0x21c], ecx
mov ecx, eax
jmp 0x4322ba
movzx ecx, word [eax + 2]
mov dword [ebp - 0x23c], 0
mov dword [ebp - 0x244], 0
movzx eax, cx
test cl, 1
je 0x4322d5
mov eax, dword [ebp - 0x1f0]
inc dword [eax + 0x2c]
mov eax, dword [ebp - 0x1ec]
movzx eax, word [eax + 2]
movzx ecx, ax
test al, 0x20
je 0x4322f4
mov eax, dword [ebp - 0x1f4]
mov dword [eax + 0x20], esi
mov esi, eax
mov eax, dword [ebp - 0x1ec]
mov dword [esi + 0x24], edx
movzx ecx, word [eax + 2]
mov edx, dword [ebp - 0x208]
mov eax, dword [edx + ebx*8 + 0x10]
mov dword [ebp - 0x130], eax
mov eax, dword [edx + ebx*8 + 0xc]
mov dword [ebp - 0x124], eax
test cl, 0x10
je 0x432318
mov edx, dword [edi + 0x20]
jmp 0x43231a
xor edx, edx
mov eax, dword [ebp - 0x208]
mov esi, 0x4000
test word [eax + ebx*8 + 8], si
mov esi, dword [ebp - 0x1f4]
je 0x43233d
mov eax, dword [eax + ebx*8]
mov dword [ebp - 0x120], eax
jmp 0x432347
mov dword [ebp - 0x120], 0
push edx
and ecx, 0xa
mov dword [ebp - 0x140], 0
push ecx
mov ecx, dword [edi + 0x28]
lea edx, [ebp - 0x140]
call fcn.00420700
mov edx, eax
mov byte [edi + 3], 0
add esp, 8
mov dword [ebp - 0x204], edx
mov dword [edi + 0x1c], 0
test edx, edx
jne 0x432105
mov eax, dword [esi + 0xe0]
test eax, eax
je 0x4342a0
mov ecx, dword [ebp - 0x21c]
test ecx, ecx
je 0x4342a0
push dword [ebp - 0x134]
mov edx, dword [ebp - 0x23c]
push dword [ebp - 0x138]
push dword [edx]
push dword [ebp - 0x244]
push ecx
push dword [esi + 0xdc]
call eax
mov edx, dword [ebp - 0x1ec]
add esp, 0x18
mov edi, dword [ebp - 0x1f0]
mov ecx, dword [ebp - 0x1fc]
mov eax, dword [ebp - 0x1f8]
add edx, 0x14
jmp 0x42e7cd
mov edx, dword [ebp - 0x1ec]
cmp byte [edx + 1], 0xfa
mov eax, dword [edx + 8]
mov ecx, dword [edx + 4]
mov dword [ebp - 0x21c], eax
mov eax, dword [edi + 0x70]
mov esi, dword [eax + ecx*4]
jne 0x432442
mov eax, dword [ebp - 0x1f4]
cmp dword [eax + 0xe0], 0
je 0x432442
movsx ecx, byte [esi + 1]
mov eax, dword [eax + 0x10]
add ecx, ecx
test byte [edx + 2], 2
mov edi, dword [edx + 0x10]
mov ebx, dword [eax + ecx*8]
je 0x432446
cmp byte [esi + 4], 0
je 0x432446
mov ecx, dword [esi + 0x28]
call fcn.0041b500
mov dword [esi + 0x44], edx
mov edx, dword [ebp - 0x1ec]
mov dword [esi + 0x40], eax
jmp 0x432446
xor ebx, ebx
xor edi, edi
mov dl, byte [edx + 2]
mov ecx, dword [esi + 0x28]
call fcn.00420b50
mov edx, eax
mov dword [esi + 0x1c], 0
mov dword [ebp - 0x204], edx
mov dword [esi + 0x20], 0
test edx, edx
jne 0x432105
test byte [ebp - 0x21c], 1
je 0x42ed9c
mov eax, dword [ebp - 0x1f0]
inc dword [eax + 0x2c]
mov eax, dword [ebp - 0x1f4]
mov eax, dword [eax + 0xe0]
test eax, eax
je 0x42ed9c
test byte [edi + 0x24], 0x20
jne 0x42ed9c
push dword [esi + 0x44]
push dword [esi + 0x40]
mov esi, dword [ebp - 0x1f4]
push dword [edi]
push ebx
push 9
push dword [esi + 0xdc]
call eax
mov edx, dword [ebp - 0x1ec]
add esp, 0x18
mov edi, dword [ebp - 0x1f0]
mov ecx, dword [ebp - 0x1fc]
mov eax, dword [ebp - 0x1f8]
add edx, 0x14
jmp 0x42e7cd
mov edx, dword [edi + 0x2c]
mov ecx, esi
call fcn.0042ad80
mov edx, dword [ebp - 0x1ec]
mov ecx, dword [ebp - 0x1fc]
mov eax, dword [ebp - 0x1f8]
mov dword [edi + 0x2c], 0
add edx, 0x14
jmp 0x42e7cd
mov edx, dword [ebp - 0x1ec]
mov eax, dword [edi + 0x70]
mov ecx, dword [edx + 4]
mov ecx, dword [eax + ecx*4]
mov eax, dword [edx + 0xc]
mov edx, dword [ebp - 0x208]
mov dword [ebp - 0x5c], 0
lea eax, [eax + eax*4]
lea edx, [edx + eax*8]
lea eax, [ebp - 0x5c]
push eax
mov eax, dword [ebp - 0x1ec]
push dword [eax + 0x10]
call fcn.00438b90
mov edx, eax
add esp, 8
mov dword [ebp - 0x204], edx
test edx, edx
jne 0x43210b
mov edx, dword [ebp - 0x1ec]
cmp dword [ebp - 0x5c], eax
jne 0x433784
mov ecx, dword [ebp - 0x1fc]
mov eax, dword [ebp - 0x1f8]
add edx, 0x14
jmp 0x42e7cd
mov ebx, dword [ebp - 0x1ec]
mov ecx, dword [ebp - 0x208]
mov eax, dword [ebx + 8]
lea eax, [eax + eax*4]
lea edx, [ecx + eax*8]
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x70]
mov ecx, dword [eax + ecx*4]
call fcn.00438af0
mov edx, eax
mov dword [ebp - 0x204], edx
test edx, edx
jne 0x43210b
mov eax, ebx
mov ecx, dword [eax + 0xc]
mov eax, dword [edi + 0x70]
mov eax, dword [eax + ecx*4]
mov ecx, dword [ebp - 0x1fc]
mov dword [eax + 0x1c], edx
mov edx, ebx
mov eax, dword [ebp - 0x1f8]
add edx, 0x14
jmp 0x42e7cd
mov edx, dword [ebp - 0x1ec]
mov ecx, edi
call fcn.0042e690
mov ecx, dword [edi + 0x70]
mov esi, eax
mov eax, dword [ebp - 0x1ec]
mov edx, dword [eax + 4]
mov ecx, dword [ecx + edx*4]
mov edi, dword [ecx + 0x28]
mov ecx, edi
call fcn.0041b510
mov ecx, dword [ebp - 0x1f4]
cmp eax, dword [ecx + 0x64]
ja 0x434c87
push esi
push eax
xor edx, edx
mov ecx, edi
call fcn.004258a0
mov edx, eax
add esp, 8
mov dword [ebp - 0x204], edx
test edx, edx
jne 0x432105
mov edx, dword [ebp - 0x1ec]
cmp dword [edx + 0xc], eax
jne 0x42eda2
mov eax, 0x1000
test word [esi + 8], ax
je 0x42eda2
mov ecx, esi
call fcn.00424b10
mov esi, dword [ebp - 0x1f4]
mov edi, dword [ebp - 0x1f0]
test eax, eax
jne 0x430b45
mov edx, dword [ebp - 0x1ec]
mov ecx, dword [ebp - 0x1fc]
mov eax, dword [ebp - 0x1f8]
add edx, 0x14
jmp 0x42e7cd
mov edx, dword [ebp - 0x1ec]
mov ecx, edi
call fcn.0042e690
mov ecx, dword [ebp - 0x1ec]
mov edi, eax
mov ebx, dword [ebp - 0x1f0]
mov edx, dword [ecx + 4]
mov ecx, dword [ebx + 0x70]
mov esi, dword [ecx + edx*4]
cmp byte [esi + 2], 0
je 0x4326cb
mov eax, 1
mov word [edi + 8], ax
mov edx, dword [ebp - 0x1ec]
mov edi, ebx
mov esi, dword [ebp - 0x1f4]
mov ecx, dword [ebp - 0x1fc]
mov eax, dword [ebp - 0x1f8]
add edx, 0x14
jmp 0x42e7cd
cmp byte [esi + 3], 0
je 0x4326e4
mov eax, dword [esi + 0x40]
mov edx, dword [esi + 0x44]
mov dword [ebp - 0x54], edx
mov dword [ebp - 0x58], eax
mov dword [edi], eax
mov dword [edi + 4], edx
jmp 0x4326a9
cmp byte [esi], 2
jne 0x432727
mov ecx, dword [esi + 0x28]
lea edx, [ebp - 0x58]
push edx
push ecx
mov esi, dword [ecx]
mov eax, dword [esi]
mov eax, dword [eax + 0x30]
call eax
add esp, 8
mov dword [ebp - 0x204], eax
mov edx, esi
mov ecx, ebx
call fcn.0042ae80
mov edx, dword [ebp - 0x204]
test edx, edx
jne 0x434f2c
mov edx, dword [ebp - 0x54]
mov eax, dword [ebp - 0x58]
mov dword [edi], eax
mov dword [edi + 4], edx
jmp 0x4326a9
mov ecx, esi
call fcn.004290c0
mov edx, eax
mov dword [ebp - 0x204], edx
test edx, edx
jne 0x434f2c
cmp byte [esi + 2], al
jne 0x4326a0
mov ecx, dword [esi + 0x28]
call fcn.0041b500
mov dword [ebp - 0x54], edx
mov dword [ebp - 0x58], eax
mov dword [edi], eax
mov dword [edi + 4], edx
jmp 0x4326a9
mov edx, dword [ebp - 0x1ec]
mov eax, dword [edi + 0x70]
mov ecx, dword [edx + 4]
mov ecx, dword [eax + ecx*4]
cmp byte [ecx], 0
mov byte [ecx + 2], 1
mov dword [ecx + 0x1c], 0
jne 0x42e892
mov ecx, dword [ecx + 0x28]
call fcn.004170c0
mov edx, dword [ebp - 0x1ec]
mov ecx, dword [ebp - 0x1fc]
mov eax, dword [ebp - 0x1f8]
add edx, 0x14
jmp 0x42e7cd
mov edi, dword [ebp - 0x1ec]
mov eax, dword [ebp - 0x1f0]
mov ecx, dword [edi + 4]
mov eax, dword [eax + 0x70]
mov esi, dword [eax + ecx*4]
mov edi, dword [esi + 0x28]
mov dword [ebp - 0x38], 0
cmp dl, 0x7d
jne 0x4327de
mov ecx, edi
mov dword [esi + 0x20], 0xffffffff
call fcn.0041b4f0
test eax, eax
jne 0x42ed9c
lea edx, [ebp - 0x38]
mov ecx, edi
call fcn.0041c0f0
mov dword [ebp - 0x204], eax
mov al, byte [ebp - 0x38]
mov edx, dword [ebp - 0x204]
mov byte [esi + 2], al
mov byte [esi + 3], 0
mov dword [esi + 0x1c], 0
test edx, edx
jne 0x432105
mov edx, dword [ebp - 0x1ec]
cmp dword [edx + 8], 0
jle 0x42eda2
cmp dword [ebp - 0x38], 0
mov edi, dword [ebp - 0x1f0]
jne 0x433784
mov esi, dword [ebp - 0x1f4]
mov ecx, dword [ebp - 0x1fc]
mov eax, dword [ebp - 0x1f8]
add edx, 0x14
jmp 0x42e7cd
mov edx, dword [ebp - 0x1ec]
mov eax, dword [edi + 0x70]
mov ecx, dword [edx + 4]
lea edx, [ebp - 0x44]
mov eax, dword [eax + ecx*4]
mov esi, dword [eax + 0x28]
mov ecx, esi
call fcn.0041c0c0
mov edx, eax
mov dword [ebp - 0x204], edx
test edx, edx
jne 0x43210b
cmp dword [ebp - 0x44], eax
jne 0x4303d5
mov ecx, esi
call fcn.0041c6f0
test edx, edx
jl 0x4328d6
jg 0x43288d
test eax, eax
jb 0x4328d6
push edx
push eax
call fcn.004094d0
mov edx, dword [ebp - 0x1ec]
add esp, 8
cwde
cmp eax, dword [edx + 0xc]
jge 0x4328dc
mov eax, dword [edx + 8]
mov ecx, dword [ebp - 0x200]
mov esi, dword [ebp - 0x1f4]
mov dword [ebp - 0x44], 1
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea edx, [ecx + eax*4]
mov ecx, dword [ebp - 0x1fc]
mov eax, dword [ebp - 0x1f8]
add edx, 0x14
jmp 0x42e7cd
mov edx, dword [ebp - 0x1ec]
cmp dword [ebp - 0x44], 0
jne 0x433784
mov esi, dword [ebp - 0x1f4]
mov ecx, dword [ebp - 0x1fc]
mov eax, dword [ebp - 0x1f8]
add edx, 0x14
jmp 0x42e7cd
inc dword [edi + 0xa8]
mov edx, dword [ebp - 0x1ec]
mov eax, dword [edi + 0x70]
mov ecx, dword [edx + 4]
lea edx, [ebp - 0x30]
mov esi, dword [eax + ecx*4]
mov dword [ebp - 0x30], 1
cmp byte [esi], 1
jne 0x43292d
mov ecx, esi
call fcn.004389c0
jmp 0x432940
mov ecx, dword [esi + 0x28]
call fcn.0041c0c0
mov byte [esi + 3], 0
mov dword [esi + 0x1c], 0
mov edx, eax
mov dword [ebp - 0x204], edx
test edx, edx
jne 0x43210b
mov al, byte [ebp - 0x30]
mov edx, dword [ebp - 0x1ec]
mov byte [esi + 2], al
cmp dword [ebp - 0x30], 0
jne 0x433784
mov esi, dword [ebp - 0x1f4]
mov ecx, dword [ebp - 0x1fc]
mov eax, dword [ebp - 0x1f8]
add edx, 0x14
jmp 0x42e7cd
mov edx, dword [ebp - 0x1ec]
mov eax, dword [edi + 0x70]
mov ecx, dword [edx + 4]
mov esi, dword [eax + ecx*4]
mov edx, esi
mov ecx, dword [ebp - 0x1f4]
call fcn.00438a60
jmp 0x4329d9
mov edx, dword [ebp - 0x1ec]
mov eax, dword [edi + 0x70]
mov ecx, dword [edx + 4]
cmp dword [eax + ecx*4], 0
je 0x42e892
jmp 0x4329bc
mov edx, dword [ebp - 0x1ec]
mov eax, dword [edi + 0x70]
mov ecx, dword [edx + 4]
mov esi, dword [eax + ecx*4]
mov eax, dword [ebp - 0x1ec]
push dword [eax + 0xc]
mov eax, dword [eax + 0x10]
push dword [esi + 0x28]
call eax
add esp, 8
mov edx, eax
mov dword [ebp - 0x204], edx
mov dword [esi + 0x1c], 0
test edx, edx
jne 0x432a05
mov byte [esi + 2], al
mov eax, dword [ebp - 0x1ec]
movzx eax, word [eax + 2]
inc dword [edi + eax*4 + 0xa0]
jmp 0x4343e5
mov ebx, dword [ebp - 0x200]
cmp edx, 0x65
jne 0x432111
mov dword [ebp - 0x204], 0
mov byte [esi + 2], 1
jmp 0x433269
mov edx, dword [ebp - 0x1ec]
mov eax, dword [edi + 0x70]
mov ebx, dword [ebp - 0x208]
mov ecx, dword [edx + 4]
mov edi, dword [eax + ecx*4]
mov ecx, edx
test byte [ecx + 2], 1
mov eax, dword [ecx + 8]
lea eax, [eax + eax*4]
lea esi, [ebx + eax*8]
je 0x432a56
mov eax, dword [ebp - 0x1f0]
inc dword [eax + 0x2c]
mov eax, 0x4000
test word [esi + 8], ax
je 0x432a78
mov ecx, esi
call fcn.00424b90
mov edx, eax
test edx, edx
jne 0x432105
mov ecx, dword [ebp - 0x1ec]
cmp byte [ecx], 0x7e
jne 0x432a99
mov edx, esi
mov ecx, edi
call fcn.004379c0
mov edi, dword [ebp - 0x1f0]
mov edx, eax
mov dword [ebp - 0x204], edx
jmp 0x42fa0f
mov eax, dword [esi + 0xc]
cdq
mov dword [ebp - 0x1e0], eax
mov dword [ebp - 0x1dc], edx
mov eax, dword [esi + 0x10]
mov dword [ebp - 0x1e8], eax
mov eax, dword [ecx + 0xc]
lea eax, [eax + eax*4]
lea eax, [ebx + eax*8]
mov dword [ebp - 0x1d4], eax
mov ax, word [ecx + 0x10]
mov word [ebp - 0x1d0], ax
movzx eax, word [ecx + 2]
test al, 0x10
je 0x432ad9
mov ecx, dword [edi + 0x20]
jmp 0x432adb
xor ecx, ecx
push ecx
mov ecx, dword [edi + 0x28]
lea edx, [ebp - 0x1e8]
and eax, 0xa
push eax
call fcn.00420700
mov edx, eax
mov dword [edi + 0x1c], 0
mov edi, dword [ebp - 0x1f0]
add esp, 8
mov dword [ebp - 0x204], edx
jmp 0x42fa0f
mov edx, dword [ebp - 0x1ec]
mov eax, dword [edi + 0x70]
mov ecx, dword [edx + 4]
mov esi, dword [eax + ecx*4]
mov ecx, dword [ebp - 0x208]
mov eax, dword [esi + 0x2c]
mov edi, dword [esi + 0x28]
mov dword [ebp - 0x108], eax
mov ax, word [edx + 0xc]
mov word [ebp - 0x100], ax
mov eax, dword [edx + 8]
lea edx, [ebp - 0x108]
mov byte [ebp - 0xfe], 0
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov ecx, edi
mov dword [ebp - 0x104], eax
lea eax, [ebp - 0x88]
push eax
push 0
push 0
push 0
call fcn.0041c150
mov edx, eax
add esp, 0x10
mov dword [ebp - 0x204], edx
test edx, edx
jne 0x432105
cmp dword [ebp - 0x88], eax
jne 0x432b9b
mov dl, 4
mov ecx, edi
call fcn.00420b50
mov edx, eax
mov dword [ebp - 0x204], edx
test edx, edx
jne 0x432105
mov dword [esi + 0x1c], 0
mov dword [esi + 0x20], 0
jmp 0x42ed9c
mov edx, dword [ebp - 0x1ec]
mov eax, dword [edi + 0x70]
mov ecx, dword [edx + 4]
mov esi, dword [eax + ecx*4]
mov ecx, esi
call fcn.004290c0
mov edx, eax
mov dword [ebp - 0x204], edx
test edx, edx
jne 0x43210b
cmp byte [esi + 2], al
jne 0x432c95
mov ecx, dword [ebp - 0x1f4]
lea eax, [ebp - 0x68]
xorps xmm0, xmm0
movlpd qword [ebp - 0x68], xmm0
mov edx, dword [esi + 0x28]
push eax
call fcn.0042aa60
mov edx, eax
add esp, 4
mov dword [ebp - 0x204], edx
test edx, edx
jne 0x43210b
mov eax, dword [ebp - 0x1ec]
cmp byte [eax], 0x81
jne 0x432c61
mov ecx, dword [eax + 0xc]
mov eax, dword [edi + 0x70]
mov edx, dword [eax + ecx*4]
mov byte [edx + 2], 0
mov eax, dword [ebp - 0x68]
mov ecx, dword [ebp - 0x64]
mov dword [edx + 0x40], eax
mov eax, dword [ebp - 0x1ec]
mov dword [edx + 0x44], ecx
mov ecx, dword [ebp - 0x1fc]
mov byte [edx + 3], 1
mov eax, dword [eax + 0x10]
mov dword [edx + 0x18], eax
mov eax, dword [ebp - 0x1f8]
mov dword [edx + 0x24], esi
mov edx, dword [ebp - 0x1ec]
mov esi, dword [ebp - 0x1f4]
add edx, 0x14
jmp 0x42e7cd
mov edx, eax
mov ecx, edi
call fcn.0042e690
mov ecx, dword [ebp - 0x68]
mov edx, dword [ebp - 0x64]
mov esi, dword [ebp - 0x1f4]
mov dword [eax], ecx
mov ecx, dword [ebp - 0x1fc]
mov dword [eax + 4], edx
mov edx, dword [ebp - 0x1ec]
mov eax, dword [ebp - 0x1f8]
add edx, 0x14
jmp 0x42e7cd
mov eax, dword [ebp - 0x1ec]
mov ecx, dword [ebp - 0x208]
mov eax, dword [eax + 8]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
call fcn.00425310
mov edx, dword [ebp - 0x1ec]
mov esi, dword [ebp - 0x1f4]
mov ecx, dword [ebp - 0x1fc]
mov eax, dword [ebp - 0x1f8]
add edx, 0x14
jmp 0x42e7cd
mov edx, dword [ebp - 0x1ec]
mov eax, dword [edi + 0x70]
cmp byte [ebp - 0x211], 0x28
mov ecx, dword [edx + 4]
mov edx, dword [eax + ecx*4]
mov ecx, dword [ebp - 0x1ec]
mov eax, dword [edx + 0x2c]
mov dword [ebp - 0x118], eax
mov ax, word [ecx + 0x10]
mov word [ebp - 0x110], ax
sbb al, al
mov byte [ebp - 0x10e], al
mov eax, dword [ecx + 0xc]
mov ecx, dword [ebp - 0x208]
mov dword [ebp - 0x2c], 0
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov ecx, esi
mov dword [ebp - 0x114], eax
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp - 0x118]
push eax
call fcn.0042ac60
mov dword [ebp - 0x204], eax
add esp, 8
mov eax, dword [ebp - 0x1ec]
test byte [eax], 1
mov eax, dword [ebp - 0x2c]
jne 0x432d50
neg eax
jmp 0x432d51
inc eax
mov edx, dword [ebp - 0x204]
mov dword [ebp - 0x2c], eax
test edx, edx
jne 0x43210b
mov edx, dword [ebp - 0x1ec]
test eax, eax
jg 0x433784
mov ecx, dword [ebp - 0x1fc]
mov eax, dword [ebp - 0x1f8]
add edx, 0x14
jmp 0x42e7cd
mov edx, dword [ebp - 0x1ec]
mov ecx, edi
call fcn.0042e690
mov edi, dword [ebp - 0x1f4]
mov esi, eax
mov eax, 1
mov word [esi + 8], ax
mov ecx, dword [edi + 0xb0]
inc ecx
cmp dword [edi + 0xa4], ecx
jg 0x434bc4
mov edx, dword [ebp - 0x1ec]
lea eax, [ebp - 0x48]
mov ecx, dword [edi + 0x10]
push eax
mov dword [ebp - 0x48], 0
mov ebx, dword [edx + 0xc]
mov eax, ebx
mov edx, dword [edx + 4]
add eax, eax
mov ecx, dword [ecx + eax*8 + 4]
call fcn.00421fc0
mov dword [ebp - 0x204], eax
add esp, 4
mov eax, 4
mov word [esi + 8], ax
mov eax, dword [ebp - 0x48]
cdq
mov dword [esi + 4], edx
mov edx, dword [ebp - 0x204]
mov dword [esi], eax
test edx, edx
jne 0x432105
mov eax, dword [ebp - 0x48]
mov esi, edi
test eax, eax
je 0x4342a0
mov ecx, dword [ebp - 0x1ec]
mov edx, ebx
push dword [ecx + 4]
mov ecx, esi
push eax
call fcn.0044ddb0
mov edx, dword [ebp - 0x1ec]
mov al, bl
mov edi, dword [ebp - 0x1f0]
add esp, 8
mov ecx, dword [ebp - 0x1fc]
inc al
mov byte [ebp - 0x245], al
mov eax, dword [ebp - 0x1f8]
add edx, 0x14
jmp 0x42e7cd
mov edx, dword [ebp - 0x1ec]
lea eax, [ebp - 0x70]
xor ecx, ecx
mov dword [ebp - 0x70], 0
cmp dword [edx + 0xc], ecx
cmove eax, ecx
mov ecx, dword [esi + 0x10]
push eax
mov eax, dword [edx + 8]
mov edx, dword [edx + 4]
add eax, eax
mov ecx, dword [ecx + eax*8 + 4]
call fcn.004219a0
mov edx, dword [ebp - 0x1ec]
add esp, 4
mov dword [ebp - 0x204], eax
cmp dword [edx + 0xc], 0
je 0x432eb8
mov eax, dword [ebp - 0x70]
add dword [edi + 0x2c], eax
mov ecx, dword [edx + 0xc]
test ecx, ecx
jle 0x432eb8
mov ebx, dword [ebp - 0x208]
lea ecx, [ecx + ecx*4]
cdq
add dword [ebx + ecx*8], eax
adc dword [ebx + ecx*8 + 4], edx
mov edx, dword [ebp - 0x1ec]
cmp dword [ebp - 0x204], 0
jne 0x434c1d
mov ecx, dword [ebp - 0x1fc]
mov eax, dword [ebp - 0x1f8]
add edx, 0x14
jmp 0x42e7cd
mov edx, dword [ebp - 0x1ec]
mov eax, dword [edi + 0x70]
mov ecx, dword [edx + 4]
mov ecx, dword [eax + ecx*4]
cmp byte [ecx], 1
jne 0x432f11
mov edx, dword [ecx + 0x28]
mov ecx, esi
call fcn.00436c00
mov edx, dword [ebp - 0x1ec]
mov ecx, dword [ebp - 0x1fc]
mov eax, dword [ebp - 0x1f8]
add edx, 0x14
jmp 0x42e7cd
mov ecx, dword [ecx + 0x28]
call fcn.00421a60
jmp 0x43190e
mov edx, dword [ebp - 0x1ec]
mov ecx, edi
call fcn.0042e690
mov edi, dword [ebp - 0x1f4]
lea edx, [ebp - 0x6c]
mov esi, eax
mov dword [ebp - 0x6c], 0
mov eax, dword [ebp - 0x1ec]
mov ecx, dword [eax + 4]
push dword [eax + 0xc]
shl ecx, 4
add ecx, dword [edi + 0x10]
mov ecx, dword [ecx + 4]
call fcn.004216e0
mov edx, eax
add esp, 4
mov dword [ebp - 0x204], edx
test edx, edx
jne 0x432105
mov eax, dword [ebp - 0x6c]
mov ecx, dword [ebp - 0x1fc]
cdq
mov dword [esi], eax
mov eax, dword [ebp - 0x1f8]
mov dword [esi + 4], edx
mov esi, edi
mov edx, dword [ebp - 0x1ec]
mov edi, dword [ebp - 0x1f0]
add edx, 0x14
jmp 0x42e7cd
mov edx, dword [ebp - 0x1ec]
inc byte [esi + 0x52]
push 0
push 0
push 0
push dword [edx + 0x10]
push esi
call fcn.00460b60
add esp, 0x14
dec byte [esi + 0x52]
jmp 0x43190e
mov edx, dword [ebp - 0x1ec]
lea eax, [edi + 0x6c]
mov dword [ebp - 0xf4], eax
mov eax, dword [esi + 0x10]
mov dword [ebp - 0xf8], esi
mov ecx, dword [edx + 4]
push dword [edx + 0x10]
mov dword [ebp - 0xf0], ecx
add ecx, ecx
push 0x5398b4
push dword [eax + ecx*8]
push 0x5398c8
push esi
call fcn.00407470
mov esi, eax
add esp, 0x14
test esi, esi
je 0x434bdb
mov eax, dword [ebp - 0x1f4]
lea ecx, [ebp - 0xf8]
push 0
push ecx
push fcn.004671c0
push esi
push eax
mov byte [eax + 0x9d], 1
mov dword [ebp - 0xec], 0
call fcn.00460b60
add esp, 0x14
mov edx, esi
mov esi, dword [ebp - 0x1f4]
test eax, eax
mov ecx, esi
cmove eax, dword [ebp - 0xec]
mov dword [ebp - 0x204], eax
call fcn.00405100
cmp dword [ebp - 0x204], 0
mov byte [esi + 0x9d], 0
je 0x42eaaf
mov ecx, esi
call fcn.0044a9f0
mov edx, dword [ebp - 0x204]
mov ebx, dword [ebp - 0x200]
cmp edx, 7
je 0x430b4b
jmp 0x432111
mov edx, dword [ebp - 0x1ec]
mov ecx, esi
mov edx, dword [edx + 4]
call fcn.00448890
jmp 0x43190e
mov edx, dword [ebp - 0x1ec]
mov ecx, esi
push dword [edx + 0x10]
mov edx, dword [edx + 4]
call fcn.0044ae80
mov edx, dword [ebp - 0x1ec]
add esp, 4
mov ecx, dword [ebp - 0x1fc]
mov eax, dword [ebp - 0x1f8]
add edx, 0x14
jmp 0x42e7cd
mov edx, dword [ebp - 0x1ec]
mov ecx, esi
push dword [edx + 0x10]
mov edx, dword [edx + 4]
call fcn.0044a7c0
mov edx, dword [ebp - 0x1ec]
add esp, 4
mov ecx, dword [ebp - 0x1fc]
mov eax, dword [ebp - 0x1f8]
add edx, 0x14
jmp 0x42e7cd
mov edx, dword [ebp - 0x1ec]
mov ecx, esi
push dword [edx + 0x10]
mov edx, dword [edx + 4]
call fcn.00476900
mov edx, dword [ebp - 0x1ec]
add esp, 4
mov ecx, dword [ebp - 0x1fc]
mov eax, dword [ebp - 0x1f8]
add edx, 0x14
jmp 0x42e7cd
mov ebx, dword [ebp - 0x1ec]
mov ecx, dword [ebp - 0x208]
mov eax, dword [ebx + 0xc]
mov edx, dword [ebx + 0x10]
add edx, 4
lea esi, [eax + eax*4]
mov eax, dword [ebx + 4]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
lea eax, [ebp - 0x84]
push eax
mov eax, dword [ecx + esi*8]
mov ecx, dword [ebp - 0x1f4]
inc eax
push eax
movzx eax, word [ebx + 2]
push dword [ebx + 8]
mov ecx, dword [ecx + 0x10]
add eax, eax
mov ecx, dword [ecx + eax*8 + 4]
call fcn.00422f00
add esp, 0xc
mov ecx, edi
mov ebx, eax
call fcn.00425310
mov eax, dword [ebp - 0x84]
test eax, eax
je 0x4331af
test ebx, ebx
je 0x430b39
mov ecx, dword [ebp - 0x208]
dec eax
cdq
push fcn.00405050
push 1
sub dword [ecx + esi*8], eax
push 0xffffffffffffffff
sbb dword [ecx + esi*8 + 4], edx
mov edx, ebx
mov ecx, edi
call fcn.00425590
add esp, 0xc
movzx edx, byte [ebp - 0x224]
mov ecx, edi
call fcn.00424950
jmp 0x42ed9c
mov edx, dword [ebp - 0x1ec]
mov ebx, dword [ebp - 0x208]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
test byte [ebx + eax*8 + 8], 0x20
lea esi, [ebx + eax*8]
mov eax, dword [edx + 8]
lea edi, [eax + eax*4]
jne 0x4331f5
mov ecx, esi
call fcn.004253a0
test byte [esi + 8], 0x20
je 0x430b39
push dword [ebx + edi*8 + 4]
mov ecx, dword [esi]
push dword [ebx + edi*8]
call fcn.0040e6f0
add esp, 8
jmp 0x42ed9c
mov edx, dword [ebp - 0x1ec]
mov ebx, dword [ebp - 0x208]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
test byte [ebx + eax*8 + 8], 0x20
lea esi, [ebx + eax*8]
je 0x4332df
mov ecx, dword [esi]
lea edx, [ebp - 0x98]
call fcn.0040ea50
test eax, eax
je 0x4332df
mov eax, dword [ebp - 0x1ec]
push dword [ebp - 0x94]
push dword [ebp - 0x98]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea ecx, [ebx + eax*8]
call fcn.00425360
add esp, 8
mov ebx, dword [ebp - 0x200]
mov edx, dword [ebp - 0x1ec]
mov esi, dword [ebp - 0x1f4]
cmp dword [esi + 0x100], 0
jne 0x434ee2
mov ecx, dword [ebp - 0x1fc]
mov eax, dword [ebp - 0x1f8]
cmp eax, ecx
jb 0x4349c9
mov ecx, dword [esi + 0x138]
test ecx, ecx
je 0x4349b5
mov edi, dword [esi + 0x140]
xor edx, edx
div edi
push dword [esi + 0x13c]
sub edi, edx
add edi, dword [ebp - 0x1f8]
mov dword [ebp - 0x1fc], edi
call ecx
mov edi, dword [ebp - 0x1f0]
add esp, 4
test eax, eax
je 0x42eaaf
mov edx, 9
jmp 0x432111
mov ecx, esi
call fcn.00425310
jmp 0x4343e5
mov edx, dword [ebp - 0x1ec]
mov ecx, dword [ebp - 0x208]
mov eax, dword [edx + 4]
mov ebx, dword [edx + 0x10]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 8], 0x20
lea esi, [ecx + eax*8]
mov eax, dword [edx + 0xc]
lea edi, [eax + eax*4]
jne 0x433327
mov ecx, esi
call fcn.004253a0
test byte [esi + 8], 0x20
je 0x430b39
mov ecx, dword [ebp - 0x208]
test ebx, ebx
je 0x433348
push dword [ecx + edi*8 + 4]
mov edx, ebx
push dword [ecx + edi*8]
mov ecx, dword [esi]
call fcn.0040eab0
add esp, 8
test eax, eax
jne 0x433778
test ebx, ebx
js 0x42ed9c
mov ebx, dword [ebp - 0x208]
jmp 0x4331f5
mov ebx, dword [ebp - 0x1ec]
mov ecx, dword [ebp - 0x208]
mov eax, dword [ebx + 0xc]
mov esi, dword [ebx + 0x10]
mov dword [ebp - 0x20c], esi
lea eax, [eax + eax*4]
lea ebx, [ecx + eax*8]
mov eax, dword [ebp - 0x1ec]
cmp word [eax + 2], 0
je 0x4333a1
mov eax, dword [edi + 0xc4]
mov ecx, dword [esi + 0x14]
test eax, eax
je 0x4333a1
cmp dword [eax + 0x1c], ecx
je 0x42ee51
mov eax, dword [eax + 4]
test eax, eax
jne 0x433391
mov ecx, dword [ebp - 0x1f4]
mov eax, dword [edi + 0xcc]
cmp eax, dword [ecx + 0x8c]
jge 0x434bed
test byte [ebx + 8], 0x40
jne 0x4334c5
mov ecx, dword [esi + 0xc]
mov eax, dword [esi + 8]
add eax, ecx
test ecx, ecx
lea esi, [eax + 1]
cmovne esi, eax
lea eax, [esi + 2]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*2]
mov eax, dword [ebp - 0x20c]
mov eax, dword [eax + 4]
add eax, 7
mov eax, eax
test eax, eax
jns 0x4333f1
add eax, 7
sar eax, 3
lea eax, [eax + ecx*4]
mov ecx, dword [ebp - 0x1f4]
cdq
push edx
push eax
call fcn.004053b0
mov edi, eax
add esp, 8
test edi, edi
je 0x430b39
mov ecx, ebx
call fcn.00424ee0
mov ecx, dword [ebp - 0x20c]
mov eax, 0x40
mov edx, dword [ebp - 0x1ec]
sub edx, dword [ebp - 0x200]
mov word [ebx + 8], ax
mov dword [ebx], edi
mov ebx, dword [ebp - 0x1f0]
mov dword [edi], ebx
mov dword [edi + 0x3c], esi
mov eax, dword [ecx + 0xc]
mov dword [edi + 0x40], eax
mov eax, 0x66666667
imul edx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [edi + 0x30], eax
mov eax, dword [ebx + 0x5c]
mov dword [edi + 0x10], eax
mov eax, dword [ebx + 0x18]
mov dword [edi + 0x38], eax
mov eax, dword [ebx + 0x70]
mov dword [edi + 0x14], eax
mov eax, dword [ebx + 0x1c]
mov dword [edi + 0x2c], eax
mov eax, dword [ebx + 0x58]
mov dword [edi + 8], eax
mov eax, dword [ebx + 0x88]
mov dword [edi + 0x34], eax
mov eax, dword [ecx + 0x14]
mov dword [edi + 0x1c], eax
lea eax, [esi + 2]
lea eax, [eax + eax*4]
lea ecx, [edi + eax*8]
lea eax, [edi + 0x50]
cmp eax, ecx
je 0x4334b1
mov edx, dword [ebp - 0x1f4]
mov esi, 0x80
mov word [eax + 8], si
mov dword [eax + 0x20], edx
add eax, 0x28
cmp eax, ecx
jne 0x4334a3
mov eax, dword [ebx + 0xcc]
mov esi, dword [ebp - 0x20c]
mov ecx, dword [ebp - 0x1f4]
jmp 0x4334cd
mov edi, dword [ebx]
mov ebx, dword [ebp - 0x1f0]
inc eax
lea edx, [edi + 0x50]
mov dword [ebx + 0xcc], eax
mov eax, dword [ebx + 0xc4]
mov dword [edi + 4], eax
mov eax, dword [ecx + 0x20]
mov ecx, dword [ecx + 0x24]
mov dword [edi + 0x20], eax
mov dword [edi + 0x24], ecx
mov eax, dword [ebx + 0x2c]
mov dword [edi + 0x44], eax
mov eax, dword [ebx]
mov dword [ebp - 0x208], edx
mov eax, dword [eax + 0x5c]
mov dword [edi + 0x48], eax
mov eax, dword [ebx + 0xd8]
mov dword [edi + 0x28], eax
mov dword [ebx + 0x5c], edx
mov dword [ebx + 0xd8], 0
mov dword [ebx + 0x2c], 0
mov dword [ebx + 0xc4], edi
mov ecx, dword [edi + 0x3c]
mov dword [ebx + 0x18], ecx
movzx eax, word [edi + 0x40]
mov dword [ebx + 0x1c], eax
lea eax, [ecx + ecx*4]
lea ecx, [edx + eax*8]
mov dword [ebx + 0x70], ecx
mov eax, dword [esi + 0xc]
lea ecx, [ecx + eax*4]
mov dword [edi + 0x18], ecx
mov eax, dword [esi + 4]
add eax, 7
cdq
and edx, 7
add eax, edx
sar eax, 3
push eax
push 0
push ecx
call fcn.004e8ed0
mov ebx, dword [esi]
add esp, 0xc
mov edi, dword [ebp - 0x1f0]
mov ecx, dword [ebp - 0x1fc]
mov dword [ebp - 0x200], ebx
lea edx, [ebx - 0x14]
mov dword [edi + 0x58], ebx
mov eax, dword [esi + 4]
mov esi, dword [ebp - 0x1f4]
mov dword [edi + 0x88], eax
mov eax, dword [ebp - 0x1f8]
add edx, 0x14
jmp 0x42e7cd
mov edx, dword [ebp - 0x1ec]
mov ecx, edi
call fcn.0042e690
mov esi, eax
mov eax, dword [edi + 0xc4]
push 0x1000
mov ecx, dword [eax + 0x30]
lea edx, [ecx + ecx*4]
mov ecx, dword [eax + 8]
mov eax, dword [eax + 0x10]
mov ecx, dword [ecx + edx*4 + 4]
mov edx, dword [ebp - 0x1ec]
add ecx, dword [edx + 4]
lea ecx, [ecx + ecx*4]
lea edx, [eax + ecx*8]
mov ecx, esi
jmp 0x42eeb0
test dword [esi + 0x1c], 0x80000
mov edx, dword [ebp - 0x1ec]
mov eax, dword [edx + 8]
je 0x433607
cdq
add dword [esi + 0x1c8], eax
mov eax, dword [ebp - 0x1f8]
adc dword [esi + 0x1cc], edx
mov edx, dword [ebp - 0x1ec]
add edx, 0x14
jmp 0x42e7cd
cmp dword [edx + 4], 0
cdq
je 0x43362e
add dword [esi + 0x1c0], eax
mov eax, dword [ebp - 0x1f8]
adc dword [esi + 0x1c4], edx
mov edx, dword [ebp - 0x1ec]
add edx, 0x14
jmp 0x42e7cd
add dword [edi + 0x40], eax
mov eax, dword [ebp - 0x1f8]
adc dword [edi + 0x44], edx
mov edx, dword [ebp - 0x1ec]
add edx, 0x14
jmp 0x42e7cd
mov edx, dword [ebp - 0x1ec]
cmp dword [edx + 4], 0
je 0x433686
mov eax, dword [esi + 0x1c0]
or eax, dword [esi + 0x1c4]
jne 0x42e898
mov eax, dword [esi + 0x1c8]
or eax, dword [esi + 0x1cc]
je 0x433784
mov eax, dword [ebp - 0x1f8]
add edx, 0x14
jmp 0x42e7cd
mov eax, dword [edi + 0x40]
or eax, dword [edi + 0x44]
jmp 0x433660
mov edx, dword [edi + 0xc4]
test edx, edx
je 0x4336c3
mov eax, dword [edx + 4]
test eax, eax
je 0x4336a9
nop
mov edx, eax
mov eax, dword [edx + 4]
test eax, eax
jne 0x4336a0
mov eax, dword [ebp - 0x1ec]
mov ebx, dword [ebp - 0x208]
mov eax, dword [eax + 4]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0x10]
lea edi, [eax + ecx*8]
jmp 0x4336d8
mov edx, dword [ebp - 0x1ec]
mov ebx, dword [ebp - 0x208]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea edi, [ebx + eax*8]
mov ecx, edi
call fcn.00425070
mov ecx, dword [ebp - 0x1ec]
mov eax, dword [ecx + 8]
lea eax, [eax + eax*4]
lea esi, [ebx + eax*8]
mov ecx, esi
call fcn.00425070
mov ecx, dword [esi + 4]
mov eax, dword [esi]
cmp dword [edi + 4], ecx
jg 0x42ed9c
jl 0x43370d
cmp dword [edi], eax
jae 0x42ed9c
mov edx, dword [ebp - 0x1ec]
mov esi, dword [ebp - 0x1f4]
mov dword [edi], eax
mov eax, dword [ebp - 0x1f8]
mov dword [edi + 4], ecx
mov edi, dword [ebp - 0x1f0]
mov ecx, dword [ebp - 0x1fc]
add edx, 0x14
jmp 0x42e7cd
mov edx, dword [ebp - 0x1ec]
mov ebx, dword [ebp - 0x208]
mov eax, dword [edx + 4]
lea esi, [eax + eax*4]
mov edi, dword [ebx + esi*8 + 4]
mov ecx, dword [ebx + esi*8]
test edi, edi
jl 0x42eda2
jg 0x433763
test ecx, ecx
je 0x42eda2
mov eax, dword [ebp - 0x1ec]
mov eax, dword [eax + 0xc]
cdq
sub ecx, eax
mov dword [ebx + esi*8], ecx
sbb edi, edx
mov dword [ebx + esi*8 + 4], edi
mov edx, dword [ebp - 0x1ec]
mov edi, dword [ebp - 0x1f0]
mov eax, dword [edx + 8]
mov ecx, dword [ebp - 0x200]
mov esi, dword [ebp - 0x1f4]
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea edx, [ecx + eax*4]
mov ecx, dword [ebp - 0x1fc]
mov eax, dword [ebp - 0x1f8]
add edx, 0x14
jmp 0x42e7cd
mov edx, dword [ebp - 0x1ec]
mov ecx, edi
mov eax, dword [edx + 4]
lea esi, [eax + eax*4]
mov eax, dword [edx + 0xc]
lea ebx, [eax + eax*4]
call fcn.0042e690
mov edx, dword [ebp - 0x208]
mov edi, eax
mov ecx, dword [edx + esi*8 + 4]
mov eax, dword [edx + esi*8]
mov dword [ebp - 0x78], eax
mov dword [ebp - 0x74], ecx
test ecx, ecx
jl 0x433852
jg 0x4337e8
test eax, eax
je 0x433852
mov ecx, dword [edx + ebx*8 + 4]
mov eax, dword [edx + ebx*8]
test ecx, ecx
jl 0x4337f9
jg 0x433810
test eax, eax
jne 0x433810
xorps xmm0, xmm0
movlpd qword [ebp - 0x220], xmm0
mov ecx, dword [ebp - 0x21c]
mov eax, dword [ebp - 0x220]
push ecx
push eax
lea ecx, [ebp - 0x78]
call fcn.004092c0
add esp, 8
test eax, eax
jne 0x433852
mov eax, dword [ebp - 0x78]
mov ecx, dword [ebp - 0x74]
mov edx, dword [ebp - 0x1ec]
mov esi, dword [ebp - 0x1f4]
mov dword [edi], eax
mov eax, dword [ebp - 0x1f8]
mov dword [edi + 4], ecx
mov edi, dword [ebp - 0x1f0]
mov ecx, dword [ebp - 0x1fc]
add edx, 0x14
jmp 0x42e7cd
mov edx, dword [ebp - 0x1ec]
mov esi, dword [ebp - 0x1f4]
mov ecx, dword [ebp - 0x1fc]
mov eax, dword [ebp - 0x1f8]
mov dword [edi], 0xffffffff
mov dword [edi + 4], 0xffffffff
mov edi, dword [ebp - 0x1f0]
add edx, 0x14
jmp 0x42e7cd
mov edx, dword [ebp - 0x1ec]
mov ebx, dword [ebp - 0x208]
mov eax, dword [edx + 4]
lea esi, [eax + eax*4]
mov ecx, dword [ebx + esi*8]
mov eax, ecx
mov edx, dword [ebx + esi*8 + 4]
or eax, edx
je 0x42ee51
test edx, edx
jl 0x4303d5
jg 0x4338ba
test ecx, ecx
je 0x4303d5
sub ecx, 1
mov dword [ebx + esi*8], ecx
sbb edx, 0
mov dword [ebx + esi*8 + 4], edx
mov edx, dword [ebp - 0x1ec]
jmp 0x433784
mov edx, dword [ebp - 0x1ec]
mov ebx, dword [ebp - 0x208]
mov eax, dword [edx + 4]
lea edx, [eax + eax*4]
mov ecx, dword [ebx + edx*8 + 4]
mov eax, dword [ebx + edx*8]
cmp ecx, 0x80000000
jl 0x433906
jg 0x4338f9
test eax, eax
je 0x433906
sub eax, 1
mov dword [ebx + edx*8], eax
sbb ecx, 0
mov dword [ebx + edx*8 + 4], ecx
or eax, ecx
mov edx, dword [ebp - 0x1ec]
je 0x433784
mov ecx, dword [ebp - 0x1fc]
mov eax, dword [ebp - 0x1f8]
add edx, 0x14
jmp 0x42e7cd
mov edx, dword [ebp - 0x1ec]
mov ecx, esi
push 0
movzx ebx, word [edx + 2]
lea eax, [ebx*4 + 0x1c]
push eax
call fcn.00405440
mov esi, eax
add esp, 8
test esi, esi
je 0x434f21
mov eax, dword [ebp - 0x1ec]
mov dword [esi + 8], 0
mov ecx, dword [eax + 0x10]
mov dword [esi + 4], ecx
mov ecx, eax
sub ecx, dword [ebp - 0x200]
mov eax, 0x66666667
imul ecx
mov dword [esi + 0xc], edi
sar edx, 3
mov eax, edx
mov byte [esi + 0x1a], bl
shr eax, 0x1f
add eax, edx
mov edx, dword [ebp - 0x1ec]
mov dword [esi + 0x10], eax
mov word [edx], 0xf095
mov dword [edx + 0x10], esi
jmp 0x43399b
mov edx, dword [ebp - 0x1ec]
mov eax, dword [edx + 0xc]
mov ebx, dword [ebp - 0x208]
mov esi, dword [edx + 0x10]
lea eax, [eax + eax*4]
lea edi, [ebx + eax*8]
mov dword [ebp - 0x21c], edi
cmp dword [esi + 8], edi
je 0x4339ec
movzx ecx, byte [esi + 0x1a]
sub ecx, 1
mov dword [esi + 8], edi
js 0x4339ec
mov edi, dword [ebp - 0x1ec]
lea edx, [ecx + 7]
lea edx, [esi + edx*4]
mov eax, dword [edi + 8]
lea edx, [edx - 4]
add eax, ecx
sub ecx, 1
lea eax, [eax + eax*4]
lea eax, [ebx + eax*8]
mov dword [edx + 4], eax
jns 0x4339d0
mov edi, dword [ebp - 0x21c]
mov edx, dword [ebp - 0x1f4]
lea ecx, [ebp - 0xc8]
inc dword [edi + 0xc]
push 1
call fcn.004252f0
mov ecx, dword [esi + 4]
lea eax, [ebp - 0xc8]
add esp, 4
mov dword [esi], eax
lea eax, [esi + 0x1c]
mov word [esi + 0x18], 0
push eax
movzx eax, byte [esi + 0x1a]
push eax
mov eax, dword [ecx + 0xc]
push esi
call eax
add esp, 0xc
cmp byte [esi + 0x19], 0
je 0x433a82
cmp dword [esi + 0x14], 0
je 0x433a63
lea eax, [ebp - 0xc8]
push eax
call fcn.0042b570
mov edi, dword [ebp - 0x1f0]
add esp, 4
push eax
push 0x538ee0
push edi
call fcn.004260c0
mov eax, dword [esi + 0x14]
add esp, 0xc
mov dword [ebp - 0x204], eax
jmp 0x433a69
mov edi, dword [ebp - 0x1f0]
lea ecx, [ebp - 0xc8]
call fcn.00424ee0
mov edx, dword [ebp - 0x204]
test edx, edx
jne 0x43210b
cmp byte [esi + 0x18], 0
je 0x42ed9c
mov eax, dword [ebp - 0x1ec]
mov eax, dword [eax - 0x10]
test eax, eax
je 0x42ed9c
lea eax, [eax + eax*4]
push 0
push 1
lea ecx, [ebx + eax*8]
call fcn.00425360
mov edx, dword [ebp - 0x1ec]
add esp, 8
mov esi, dword [ebp - 0x1f4]
mov edi, dword [ebp - 0x1f0]
mov ecx, dword [ebp - 0x1fc]
mov eax, dword [ebp - 0x1f8]
add edx, 0x14
jmp 0x42e7cd
mov edx, dword [ebp - 0x1ec]
mov ecx, dword [ebp - 0x208]
mov eax, dword [edx + 4]
mov edx, dword [edx + 0x10]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov ecx, esi
call fcn.00424cc0
mov dword [ebp - 0x204], eax
test eax, eax
jne 0x434c05
movzx edx, byte [ebp - 0x224]
mov ecx, esi
call fcn.00424950
mov ecx, esi
call fcn.00425470
test eax, eax
jne 0x434c8d
mov edx, dword [ebp - 0x1ec]
mov esi, dword [ebp - 0x1f4]
mov ecx, dword [ebp - 0x1fc]
mov eax, dword [ebp - 0x1f8]
add edx, 0x14
jmp 0x42e7cd
mov edx, dword [ebp - 0x1ec]
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0xc]
mov dword [ebp - 0x10], 0
push eax
push dword [edx + 8]
mov edx, dword [edx + 4]
mov ecx, esi
mov dword [ebp - 8], 0xffffffff
mov dword [ebp - 0xc], 0xffffffff
call fcn.00490dd0
mov edx, eax
add esp, 0xc
mov dword [ebp - 0x204], edx
test edx, edx
je 0x433b98
cmp edx, 5
jne 0x43210b
mov dword [ebp - 0x204], 0
mov dword [ebp - 0x10], 1
mov eax, dword [ebp - 0x1ec]
xor esi, esi
mov ecx, dword [ebp - 0x208]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
nop
mov eax, dword [ebp + esi*4 - 0x10]
mov ecx, edi
cdq
push edx
push eax
call fcn.00425360
inc esi
add esp, 8
add edi, 0x28
cmp esi, 3
jl 0x433bb0
mov edx, dword [ebp - 0x1ec]
mov esi, dword [ebp - 0x1f4]
mov edi, dword [ebp - 0x1f0]
mov ecx, dword [ebp - 0x1fc]
mov eax, dword [ebp - 0x1f8]
add edx, 0x14
jmp 0x42e7cd
mov ebx, dword [ebp - 0x1ec]
mov ecx, edi
mov edx, ebx
call fcn.0042e690
mov edx, dword [ebx + 4]
mov esi, dword [ebx + 0xc]
add edx, edx
mov dword [ebp - 0x23c], eax
mov eax, dword [ebp - 0x1f4]
mov ecx, dword [eax + 0x10]
mov eax, dword [ecx + edx*8 + 4]
mov ecx, eax
mov dword [ebp - 0x21c], eax
call fcn.00422210
mov ebx, eax
mov ecx, ebx
call fcn.004142e0
mov edi, eax
cmp esi, 0xffffffff
mov ecx, ebx
cmove esi, edi
call fcn.004142f0
test eax, eax
mov edx, 1
mov ecx, ebx
cmove esi, edi
call fcn.00413df0
cmp esi, 5
jne 0x433cf3
mov ecx, eax
call fcn.00408010
test eax, eax
je 0x433c73
mov ecx, ebx
call fcn.00414320
test eax, eax
jne 0x433cf3
mov esi, edi
mov eax, dword [ebp - 0x204]
test eax, eax
je 0x433c81
mov esi, edi
mov edx, esi
mov ecx, ebx
call fcn.00414180
mov ebx, dword [ebp - 0x23c]
mov ecx, 0xa02
mov word [ebx + 8], cx
mov ecx, eax
call fcn.00461cf0
mov ecx, eax
mov dword [ebx + 0x10], eax
call fcn.00408010
movzx edx, byte [ebp - 0x224]
mov ecx, ebx
mov dword [ebx + 0xc], eax
mov byte [ebx + 0xa], 1
call fcn.00424950
mov edx, dword [ebp - 0x204]
mov edi, dword [ebp - 0x1f0]
test edx, edx
jne 0x43210b
mov edx, dword [ebp - 0x1ec]
mov esi, dword [ebp - 0x1f4]
mov ecx, dword [ebp - 0x1fc]
mov eax, dword [ebp - 0x1f8]
add edx, 0x14
jmp 0x42e7cd
cmp esi, edi
je 0x433c75
cmp edi, 5
je 0x433d09
cmp esi, 5
jne 0x433c75
mov eax, dword [ebp - 0x1f4]
cmp byte [eax + 0x47], 0
je 0x434c28
cmp dword [eax + 0xa4], 1
jg 0x434c28
cmp edi, 5
jne 0x433d4d
mov edx, eax
mov ecx, ebx
call fcn.00414580
mov dword [ebp - 0x204], eax
test eax, eax
jne 0x433c7f
mov edx, esi
mov ecx, ebx
call fcn.00414180
jmp 0x433d69
cmp edi, 4
jne 0x433d5c
lea edx, [edi - 2]
mov ecx, ebx
call fcn.00414180
cmp dword [ebp - 0x204], 0
jne 0x433c7f
mov ecx, dword [ebp - 0x21c]
xor edx, edx
cmp esi, 5
sete dl
inc edx
call fcn.00423660
mov dword [ebp - 0x204], eax
jmp 0x433c7b
mov edx, dword [ebp - 0x1ec]
lea ecx, [edi + 0x6c]
push dword [edx + 4]
mov edx, esi
call fcn.00479df0
jmp 0x43190b
mov edx, dword [ebp - 0x1ec]
mov eax, dword [esi + 0x10]
mov ecx, dword [edx + 4]
add ecx, ecx
mov ecx, dword [eax + ecx*8 + 4]
call fcn.0041a890
mov edx, eax
mov dword [ebp - 0x204], edx
test edx, edx
je 0x42eaaf
cmp edx, 0x65
jne 0x43210b
mov edx, dword [ebp - 0x1ec]
mov dword [ebp - 0x204], 0
jmp 0x433784
mov edx, dword [ebp - 0x1ec]
cmp dword [edx + 4], 0
jne 0x433e12
mov ecx, esi
call fcn.0042ad90
mov edx, dword [ebp - 0x1ec]
mov ecx, dword [ebp - 0x1fc]
mov eax, dword [ebp - 0x1f8]
add edx, 0x14
jmp 0x42e7cd
or dword [edi + 0x94], 1
add edx, 0x14
jmp 0x42e7cd
mov edx, dword [ebp - 0x1ec]
mov al, byte [edx + 0xc]
mov byte [ebp - 0x25c], al
test al, al
jne 0x433e41
test dword [esi + 0x1c], 0x400
jne 0x42e898
mov eax, dword [ebp - 0x1ec]
mov ecx, dword [esi + 0x10]
mov edx, dword [ebp - 0x1ec]
push dword [ebp - 0x25c]
mov eax, dword [eax + 4]
add eax, eax
mov edx, dword [edx + 8]
mov ecx, dword [ecx + eax*8 + 4]
call fcn.00423480
mov edx, eax
add esp, 4
mov dword [ebp - 0x204], edx
test edx, edx
je 0x42eaaf
cmp dl, 6
jne 0x43210b
mov eax, dword [ebp - 0x1ec]
push dword [eax + 0x10]
push 0x539974
push edi
call fcn.004260c0
mov edx, dword [ebp - 0x204]
add esp, 0xc
jmp 0x43210b
mov edx, dword [ebp - 0x1ec]
mov ecx, dword [ebp - 0x1f4]
mov esi, dword [edx + 0x10]
mov edx, esi
call fcn.0047ba60
mov edx, eax
mov dword [ebp - 0x204], edx
test esi, esi
je 0x433ed7
mov edx, dword [esi + 8]
mov ecx, edi
call fcn.0042ae80
mov edx, dword [ebp - 0x204]
test edx, edx
jne 0x43210b
mov edx, dword [ebp - 0x1ec]
mov esi, dword [ebp - 0x1f4]
mov ecx, dword [ebp - 0x1fc]
mov eax, dword [ebp - 0x1f8]
add edx, 0x14
jmp 0x42e7cd
mov edx, dword [ebp - 0x1ec]
xorps xmm0, xmm0
mov ecx, dword [ebp - 0x208]
movq qword [ebp - 0x180], xmm0
movups xmmword [ebp - 0x1a0], xmm0
mov eax, dword [edx + 8]
movups xmmword [ebp - 0x190], xmm0
mov dword [ebp - 0x180], esi
lea eax, [eax + eax*4]
lea edx, [ecx + eax*8]
lea ecx, [ebp - 0x1a0]
call fcn.00425520
mov dword [ebp - 0x204], eax
lea eax, [ebp - 0x1a0]
push eax
call fcn.0042b570
add esp, 4
test eax, eax
je 0x433f75
lea ecx, [edi + 0x6c]
push ecx
push eax
mov eax, dword [ebp - 0x1ec]
mov ecx, esi
mov edx, dword [eax + 4]
call fcn.0047b4d0
add esp, 8
mov dword [ebp - 0x204], eax
lea ecx, [ebp - 0x1a0]
call fcn.00424ee0
mov edx, dword [ebp - 0x204]
jmp 0x431916
mov edx, dword [ebp - 0x1ec]
mov ecx, esi
inc dword [esi + 0xb0]
push dword [edx + 0x10]
mov edx, dword [edx + 4]
call fcn.0047b860
add esp, 4
dec dword [esi + 0xb0]
jmp 0x43190e
mov edx, dword [ebp - 0x1ec]
mov dword [ebp - 0xd8], 0
mov eax, dword [edx + 0x10]
mov esi, dword [eax + 8]
test esi, esi
je 0x434c64
mov edi, dword [esi]
test edi, edi
je 0x434c5e
lea eax, [ebp - 0xd8]
push eax
mov eax, dword [edi + 0x18]
push esi
call eax
mov ebx, dword [ebp - 0x1f0]
add esp, 8
mov edx, esi
mov dword [ebp - 0x204], eax
mov ecx, ebx
call fcn.0042ae80
mov edx, dword [ebp - 0x204]
test edx, edx
jne 0x434f2c
mov eax, dword [ebp - 0xd8]
mov ecx, ebx
push 2
push 0xffffffffffffffff
push edx
mov dword [eax], esi
mov eax, dword [ebp - 0x1ec]
mov edx, dword [eax + 4]
call fcn.0042e2b0
add esp, 0xc
test eax, eax
je 0x434c43
mov ecx, dword [ebp - 0xd8]
mov edi, ebx
mov edx, dword [ebp - 0x1ec]
mov dword [eax + 0x28], ecx
inc dword [esi + 4]
mov esi, dword [ebp - 0x1f4]
mov ecx, dword [ebp - 0x1fc]
mov eax, dword [ebp - 0x1f8]
add edx, 0x14
jmp 0x42e7cd
mov edx, dword [ebp - 0x1ec]
mov esi, dword [ebp - 0x208]
mov eax, dword [edx + 0xc]
lea ebx, [esi + 0x28]
lea edx, [eax + eax*4]
mov eax, dword [ebp - 0x1ec]
lea ebx, [ebx + edx*8]
movd xmm0, ebx
mov dword [ebp - 0x244], ebx
mov ecx, dword [eax + 4]
mov eax, dword [edi + 0x70]
mov edi, dword [ebx]
pshufd xmm3, xmm0, 0
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0x218], eax
mov ecx, dword [eax + 0x28]
mov dword [ebp - 0x234], ecx
mov eax, dword [ecx]
mov dword [ebp - 0x22c], eax
mov ecx, dword [eax]
mov eax, dword [ebp - 0x1f0]
mov dword [ebp - 0x210], ecx
mov ecx, dword [esi + edx*8]
mov dword [ebp - 0x20c], ecx
xor ecx, ecx
mov ebx, dword [eax + 0x60]
mov dword [ebp - 0x23c], ebx
test edi, edi
jle 0x4341e3
cmp edi, 0x10
jb 0x4341c9
cmp dword [0x54f488], 2
jl 0x4341c9
movaps xmm2, xmmword [0x540df0]
mov eax, edi
and eax, 0x8000000f
jns 0x434107
dec eax
or eax, 0xfffffff0
inc eax
movaps xmm1, xmmword [0x540e00]
mov edx, edi
sub edx, eax
mov esi, 8
mov dword [ebp - 0x21c], edx
lea edx, [ebx + 0x20]
mov ebx, dword [ebp - 0x21c]
nop word [eax + eax]
movd xmm0, ecx
lea eax, [esi - 4]
pshufd xmm0, xmm0, 0
lea edx, [edx + 0x40]
paddd xmm0, xmm2
add ecx, 0x10
pmulld xmm0, xmm1
paddd xmm0, xmm3
paddd xmm0, xmm1
movups xmmword [edx - 0x60], xmm0
movd xmm0, eax
lea eax, [esi + 4]
pshufd xmm0, xmm0, 0
paddd xmm0, xmm2
pmulld xmm0, xmm1
paddd xmm0, xmm3
paddd xmm0, xmm1
movups xmmword [edx - 0x50], xmm0
movd xmm0, esi
add esi, 0x10
pshufd xmm0, xmm0, 0
paddd xmm0, xmm2
pmulld xmm0, xmm1
paddd xmm0, xmm3
paddd xmm0, xmm1
movups xmmword [edx - 0x40], xmm0
movd xmm0, eax
pshufd xmm0, xmm0, 0
paddd xmm0, xmm2
pmulld xmm0, xmm1
paddd xmm0, xmm3
paddd xmm0, xmm1
movups xmmword [edx - 0x30], xmm0
cmp ecx, ebx
jl 0x434130
mov ebx, dword [ebp - 0x23c]
cmp ecx, edi
jge 0x4341e3
mov edx, dword [ebp - 0x244]
lea eax, [ecx + 1]
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
mov dword [ebx + ecx*4], eax
inc ecx
add eax, 0x28
cmp ecx, edi
jl 0x4341d8
mov eax, dword [ebp - 0x1ec]
mov esi, dword [ebp - 0x234]
push ebx
push edi
push dword [eax + 0x10]
mov edi, dword [ebp - 0x210]
push dword [ebp - 0x20c]
push esi
mov eax, dword [edi + 0x20]
call eax
mov edx, dword [ebp - 0x22c]
add esp, 0x14
mov ecx, dword [ebp - 0x1f0]
mov dword [ebp - 0x204], eax
call fcn.0042ae80
mov edx, dword [ebp - 0x204]
test edx, edx
jne 0x432105
mov eax, dword [edi + 0x28]
push esi
call eax
mov ecx, dword [ebp - 0x218]
add esp, 4
mov edx, dword [ebp - 0x1ec]
mov edi, dword [ebp - 0x1f0]
mov byte [ecx + 2], 0
test eax, eax
jne 0x433784
mov esi, dword [ebp - 0x1f4]
mov ecx, dword [ebp - 0x1fc]
mov eax, dword [ebp - 0x1f8]
add edx, 0x14
jmp 0x42e7cd
mov edx, dword [ebp - 0x1ec]
mov eax, dword [edi + 0x70]
mov ecx, dword [edx + 4]
mov edx, dword [eax + ecx*4]
mov eax, dword [ebp - 0x1ec]
mov ecx, dword [ebp - 0x208]
cmp byte [edx + 2], 0
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
je 0x4342c0
mov ecx, edi
call fcn.00425310
mov edx, dword [ebp - 0x1ec]
mov edi, dword [ebp - 0x1f0]
mov ecx, dword [ebp - 0x1fc]
mov eax, dword [ebp - 0x1f8]
add edx, 0x14
jmp 0x42e7cd
mov eax, dword [edx + 0x28]
xorps xmm0, xmm0
mov ebx, 0x3e00
mov esi, dword [eax]
mov ecx, dword [esi]
movups xmmword [ebp - 0x1c0], xmm0
mov dword [ebp - 0x1c0], edi
movups xmmword [ebp - 0x1b0], xmm0
mov ax, word [edi + 8]
and ax, bx
or ax, 1
mov word [edi + 8], ax
mov eax, dword [ebp - 0x1ec]
push dword [eax + 8]
lea eax, [ebp - 0x1c0]
push eax
push dword [edx + 0x28]
mov eax, dword [ecx + 0x2c]
call eax
mov ecx, dword [ebp - 0x1f0]
add esp, 0xc
mov edx, esi
mov dword [ebp - 0x204], eax
call fcn.0042ae80
mov eax, dword [ebp - 0x1ac]
test eax, eax
mov ecx, dword [ebp - 0x204]
movzx edx, byte [ebp - 0x224]
cmovne ecx, eax
mov dword [ebp - 0x204], ecx
mov ecx, edi
call fcn.00424950
mov ecx, edi
call fcn.00425470
test eax, eax
jne 0x434c87
mov edx, dword [ebp - 0x204]
mov edi, dword [ebp - 0x1f0]
test edx, edx
jne 0x43210b
mov edx, dword [ebp - 0x1ec]
mov esi, dword [ebp - 0x1f4]
mov ecx, dword [ebp - 0x1fc]
mov eax, dword [ebp - 0x1f8]
add edx, 0x14
jmp 0x42e7cd
mov edx, dword [ebp - 0x1ec]
mov eax, dword [edi + 0x70]
mov ecx, dword [edx + 4]
mov edi, dword [eax + ecx*4]
cmp byte [edi + 2], 0
jne 0x42eda8
mov eax, dword [edi + 0x28]
push eax
mov esi, dword [eax]
mov ebx, dword [esi]
mov eax, dword [ebx + 0x24]
call eax
mov ecx, dword [ebp - 0x1f0]
add esp, 4
mov edx, esi
mov dword [ebp - 0x204], eax
call fcn.0042ae80
mov edx, dword [ebp - 0x204]
test edx, edx
jne 0x432105
push dword [edi + 0x28]
mov eax, dword [ebx + 0x28]
call eax
add esp, 4
test eax, eax
jne 0x433263
mov esi, dword [ebp - 0x1f4]
mov edx, dword [ebp - 0x1ec]
mov ebx, dword [ebp - 0x200]
mov edx, dword [edx + 8]
dec edx
lea edx, [edx + edx*4]
lea edx, [ebx + edx*4]
mov dword [ebp - 0x1ec], edx
jmp 0x433275
mov edx, dword [ebp - 0x1ec]
mov ecx, dword [ebp - 0x208]
mov eax, dword [edx + 0x10]
mov esi, dword [eax + 8]
mov eax, dword [edx + 4]
mov edx, 1
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov ecx, edi
call fcn.00424950
mov edx, eax
test edx, edx
jne 0x432105
mov eax, dword [esi]
push dword [edi + 0x10]
push esi
mov eax, dword [eax + 0x4c]
call eax
mov edi, dword [ebp - 0x1f0]
add esp, 8
mov edx, esi
mov dword [ebp - 0x204], eax
mov ecx, edi
call fcn.0042ae80
and dword [edi + 0x94], 0xfffffffe
mov edx, dword [ebp - 0x204]
test edx, edx
jne 0x43210b
mov edx, dword [ebp - 0x1ec]
mov esi, dword [ebp - 0x1f4]
mov ecx, dword [ebp - 0x1fc]
mov eax, dword [ebp - 0x1f8]
add edx, 0x14
jmp 0x42e7cd
mov edx, dword [ebp - 0x1ec]
mov eax, dword [edx + 0x10]
mov ebx, dword [eax + 8]
test ebx, ebx
je 0x434c64
mov edx, dword [ebx]
test edx, edx
je 0x434c64
cmp dword [edx + 0x34], 0
mov esi, dword [ebp - 0x1ec]
mov esi, dword [esi + 8]
je 0x43496b
mov eax, dword [ebp - 0x1f4]
mov ecx, dword [ebp - 0x208]
mov edi, dword [edi + 0x60]
mov al, byte [eax + 0x4e]
mov byte [ebp - 0x211], al
mov eax, dword [ebp - 0x1ec]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
xor eax, eax
test esi, esi
jle 0x4344fe
mov dword [edi + eax*4], ecx
inc eax
add ecx, 0x28
cmp eax, esi
jl 0x4344f3
mov eax, dword [ebp - 0x1ec]
mov ecx, dword [ebp - 0x1f4]
mov al, byte [eax + 2]
mov byte [ecx + 0x4e], al
lea eax, [ebp - 0xa0]
push eax
mov eax, dword [edx + 0x34]
push edi
push esi
push ebx
call eax
mov esi, dword [ebp - 0x1f4]
add esp, 0x10
mov edi, dword [ebp - 0x1f0]
mov edx, ebx
mov dword [ebp - 0x204], eax
mov ecx, edi
mov al, byte [ebp - 0x211]
mov byte [esi + 0x4e], al
call fcn.0042ae80
mov edx, dword [ebp - 0x204]
test edx, edx
jne 0x434570
mov edx, dword [ebp - 0x1ec]
cmp dword [edx + 4], 0
je 0x4345c1
mov eax, dword [ebp - 0xa0]
mov ecx, dword [ebp - 0x9c]
mov dword [esi + 0x20], eax
mov dword [esi + 0x24], ecx
jmp 0x4345c1
cmp dl, 0x13
jne 0x4345bb
mov eax, dword [ebp - 0x1ec]
mov eax, dword [eax + 0x10]
cmp byte [eax + 0x10], 0
je 0x4345bb
mov ecx, dword [ebp - 0x1ec]
movzx ecx, word [ecx + 2]
cmp ecx, 4
jne 0x434c6e
mov edx, dword [ebp - 0x1ec]
mov ecx, dword [ebp - 0x1fc]
mov eax, dword [ebp - 0x1f8]
mov dword [ebp - 0x204], 0
add edx, 0x14
jmp 0x42e7cd
mov edx, dword [ebp - 0x1ec]
inc dword [edi + 0x2c]
cmp dword [ebp - 0x204], 0
jne 0x434c1d
mov ecx, dword [ebp - 0x1fc]
mov eax, dword [ebp - 0x1f8]
add edx, 0x14
jmp 0x42e7cd
mov edx, dword [ebp - 0x1ec]
mov ecx, edi
call fcn.0042e690
mov esi, eax
mov eax, dword [ebp - 0x1ec]
mov edx, dword [eax + 4]
mov eax, dword [ebp - 0x1f4]
add edx, edx
mov ecx, dword [eax + 0x10]
mov ecx, dword [ecx + edx*8 + 4]
call fcn.004186d0
mov edx, dword [ebp - 0x1ec]
mov ecx, dword [ebp - 0x1fc]
mov dword [esi], eax
mov eax, dword [ebp - 0x1f8]
mov dword [esi + 4], 0
mov esi, dword [ebp - 0x1f4]
add edx, 0x14
jmp 0x42e7cd
mov edx, dword [ebp - 0x1ec]
mov ecx, edi
call fcn.0042e690
mov ecx, dword [esi + 0x10]
mov edi, eax
mov eax, dword [ebp - 0x1ec]
mov edx, dword [eax + 4]
add edx, edx
mov esi, dword [ecx + edx*8 + 4]
xor edx, edx
cmp dword [eax + 0xc], edx
je 0x434679
mov ecx, esi
call fcn.004186d0
mov edx, eax
mov eax, dword [ebp - 0x1ec]
mov eax, dword [eax + 0xc]
cmp edx, eax
cmovb edx, eax
mov ecx, esi
call fcn.00419680
mov esi, dword [ebp - 0x1f4]
mov ecx, dword [ebp - 0x1fc]
cdq
mov dword [edi], eax
mov eax, dword [ebp - 0x1f8]
mov dword [edi + 4], edx
mov edx, dword [ebp - 0x1ec]
mov edi, dword [ebp - 0x1f0]
add edx, 0x14
jmp 0x42e7cd
mov edx, dword [ebp - 0x1ec]
mov ecx, esi
push 0
movzx ebx, word [edx + 2]
lea eax, [ebx*4 + 0x1c]
push eax
call fcn.00405440
mov esi, eax
add esp, 8
test esi, esi
je 0x434f21
mov eax, dword [ebp - 0x1ec]
mov dword [esi], 0
mov ecx, dword [eax + 0x10]
mov dword [esi + 4], ecx
mov ecx, eax
sub ecx, dword [ebp - 0x200]
mov eax, 0x66666667
imul ecx
mov dword [esi + 0xc], edi
sar edx, 3
mov eax, edx
mov byte [esi + 0x1a], bl
shr eax, 0x1f
add eax, edx
mov edx, dword [ebp - 0x1ec]
mov dword [esi + 0x10], eax
add byte [edx], 2
mov byte [edx + 1], 0xf0
mov dword [edx + 0x10], esi
jmp 0x434720
mov edx, dword [ebp - 0x1ec]
mov eax, dword [edx + 0xc]
mov ebx, dword [ebp - 0x208]
mov esi, dword [edx + 0x10]
lea eax, [eax + eax*4]
lea edi, [ebx + eax*8]
mov dword [ebp - 0x21c], edi
cmp dword [esi], edi
je 0x43476f
movzx ecx, byte [esi + 0x1a]
sub ecx, 1
mov dword [esi], edi
js 0x43476f
mov edi, dword [ebp - 0x1ec]
lea edx, [ecx + 7]
lea edx, [esi + edx*4]
mov eax, dword [edi + 8]
lea edx, [edx - 4]
add eax, ecx
sub ecx, 1
lea eax, [eax + eax*4]
lea eax, [ebx + eax*8]
mov dword [edx + 4], eax
jns 0x434753
mov edi, dword [ebp - 0x21c]
mov ax, word [edi + 8]
mov ecx, 0x3e00
and ax, cx
or ax, 1
mov word [edi + 8], ax
lea eax, [esi + 0x1c]
mov ecx, dword [esi + 4]
push eax
movzx eax, byte [esi + 0x1a]
push eax
mov byte [esi + 0x19], 0
mov eax, dword [ecx + 0xc]
push esi
call eax
add esp, 0xc
cmp byte [esi + 0x19], 0
je 0x434806
cmp dword [esi + 0x14], 0
je 0x4347ce
push edi
call fcn.0042b570
add esp, 4
push eax
push 0x538ee0
push dword [ebp - 0x1f0]
call fcn.004260c0
mov eax, dword [esi + 0x14]
add esp, 0xc
mov dword [ebp - 0x204], eax
mov eax, dword [ebp - 0x1ec]
mov edx, dword [ebp - 0x1f0]
push dword [eax + 4]
lea edx, [edx + 0xd8]
push dword [esi + 0x10]
mov esi, dword [ebp - 0x1f4]
mov ecx, esi
call fcn.00428c90
mov edx, dword [ebp - 0x204]
add esp, 8
test edx, edx
jne 0x432105
jmp 0x43480c
mov esi, dword [ebp - 0x1f4]
test byte [edi + 8], 0x12
je 0x4342a0
movzx edx, byte [ebp - 0x224]
mov ecx, edi
call fcn.00424950
mov ecx, edi
call fcn.00425470
mov edi, dword [ebp - 0x1f0]
test eax, eax
jne 0x434c8d
mov edx, dword [ebp - 0x1ec]
mov ecx, dword [ebp - 0x1fc]
mov eax, dword [ebp - 0x1f8]
add edx, 0x14
jmp 0x42e7cd
mov cl, byte [esi + 0x50]
mov edx, dword [ebp - 0x1ec]
test cl, 0x81
je 0x43491a
test byte [edi + 0x94], 2
jne 0x43491a
mov eax, dword [edx + 0x10]
test eax, eax
jne 0x434887
mov eax, dword [edi + 0xbc]
test eax, eax
je 0x43491a
test cl, cl
jns 0x4348c0
mov ecx, dword [ebp - 0x1f0]
mov edx, eax
mov edi, dword [esi + 0xbc]
call fcn.0042dd20
mov esi, eax
mov eax, dword [ebp - 0x1f4]
push esi
push dword [eax + 0xc0]
call edi
push esi
call fcn.00405050
mov edi, dword [ebp - 0x1f0]
add esp, 0xc
jmp 0x434914
cmp dword [esi + 0xac], 1
push eax
jle 0x434900
push 0x539994
push esi
call fcn.00407470
mov ebx, dword [ebp - 0x1f4]
add esp, 0xc
mov esi, eax
mov ecx, dword [ebx + 0xbc]
push esi
push edi
push dword [ebx + 0xc0]
push 1
call ecx
add esp, 0x10
mov edx, esi
mov ecx, ebx
call fcn.00405140
jmp 0x434914
mov eax, dword [esi + 0xbc]
push edi
push dword [esi + 0xc0]
push 1
call eax
add esp, 0x10
mov edx, dword [ebp - 0x1ec]
mov eax, dword [edx + 4]
cmp eax, dword [0x54a524]
jl 0x43495c
mov edx, 1
cmp dword [edi + 0x88], edx
jle 0x434954
mov eax, 0x14
mov ecx, dword [edi + 0x58]
cmp byte [eax + ecx], 0x14
jne 0x434948
mov dword [eax + ecx + 4], 0
inc edx
add eax, 0x14
cmp edx, dword [edi + 0x88]
jl 0x434937
mov edx, dword [ebp - 0x1ec]
xor eax, eax
inc eax
mov dword [edx + 4], eax
inc dword [edi + 0xb8]
jmp 0x433784
mov edx, dword [ebp - 0x1ec]
mov esi, dword [ebp - 0x1f4]
mov eax, dword [ebp - 0x1f8]
add edx, 0x14
jmp 0x42e7cd
mov edx, dword [ebp - 0x1ec]
mov esi, ebx
mov edi, dword [ebp - 0x1f0]
mov ecx, dword [ebp - 0x1fc]
mov eax, dword [ebp - 0x1f8]
add edx, 0x14
jmp 0x42e7cd
mov edx, dword [ebp - 0x1ec]
add edx, 0x14
jmp 0x42e7cd
mov edi, dword [ebp - 0x1f0]
mov ecx, dword [ebp - 0x1fc]
add edx, 0x14
jmp 0x42e7cd
mov edi, dword [ebp - 0x1f0]
add edx, 0x14
jmp 0x42e7cd
mov edx, dword [ebp - 0x1ec]
mov dword [edi + 0x28], ecx
mov al, byte [edx + 8]
mov byte [edi + 0x8e], al
mov dword [edi + 0x24], esi
test ecx, ecx
je 0x434a68
movzx eax, word [edx + 2]
test ax, ax
je 0x434a37
push dword [eax*4 + 0x53dbd0]
push 0x53971c
push edi
call fcn.004260c0
mov eax, dword [ebp - 0x1ec]
add esp, 0xc
mov eax, dword [eax + 0x10]
test eax, eax
je 0x434a48
push eax
push dword [edi + 0x6c]
push 0x539734
push dword [ebp - 0x1f4]
call fcn.00407470
add esp, 0x10
mov dword [edi + 0x6c], eax
jmp 0x434a48
push dword [edx + 0x10]
push 0x538ee0
push edi
call fcn.004260c0
add esp, 0xc
push dword [edi + 0x6c]
mov eax, dword [ebp - 0x1ec]
push dword [edi + 0xbc]
push esi
push 0x53973c
push dword [eax + 4]
call fcn.00407720
add esp, 0x14
mov ecx, edi
call fcn.00428740
mov dword [ebp - 0x204], eax
cmp eax, 5
jne 0x434e88
mov dword [edi + 0x28], eax
jmp 0x434f39
push 0x53d0b4
push 0x13f84
push 0x53d048
push 0x53d02c
push 0xb
call fcn.00407720
mov edi, dword [ebp - 0x1f0]
add esp, 0x14
mov edx, 0xb
jmp 0x432111
push 0x539754
mov edi, dword [ebp - 0x1f0]
push edi
call fcn.004260c0
add esp, 8
mov edx, 5
jmp 0x43210b
push 0x5397a0
jmp 0x434ab9
mov ecx, dword [ebp - 0x1ec]
mov eax, 0x66666667
sub ecx, dword [ebp - 0x200]
mov edi, dword [ebp - 0x1f0]
imul ecx
mov dword [ebp - 0x204], 5
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [edi + 0x24], eax
mov eax, dword [ebp - 0x1f4]
mov byte [eax + 0x47], 0
mov dword [edi + 0x28], 5
jmp 0x434f39
mov edx, 8
jmp 0x43210b
cmp dl, 5
jne 0x43210b
mov ecx, dword [ebp - 0x1ec]
mov eax, 0x66666667
sub ecx, dword [ebp - 0x200]
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [edi + 0x24], eax
mov eax, dword [ebp - 0x204]
mov dword [edi + 0x28], eax
jmp 0x434f39
mov edx, dword [edi + 0x6c]
test edx, edx
je 0x434b6e
mov ecx, esi
call fcn.00405100
mov edx, 0x539898
mov ecx, esi
call fcn.004056a0
mov dword [edi + 0x6c], eax
mov eax, dword [ebp - 0x1ec]
mov edx, dword [eax + 4]
mov ecx, edx
mov eax, dword [esi + 0x10]
add ecx, ecx
mov eax, dword [eax + ecx*8 + 0xc]
mov eax, dword [eax]
cmp eax, dword [ebp - 0x4c]
je 0x434b9f
mov ecx, esi
call fcn.0044a990
or dword [edi + 0x94], 1
mov edx, 0x11
jmp 0x43210b
mov edx, 0x204
jmp 0x43210b
mov edx, 0xd
jmp 0x43210b
mov edi, dword [ebp - 0x1f0]
mov edx, 6
mov byte [edi + 0x8e], 2
jmp 0x43210b
mov esi, dword [ebp - 0x1f4]
mov ecx, esi
call fcn.0044a9f0
jmp 0x430b45
push 0x539908
push edi
call fcn.004260c0
add esp, 8
mov edx, 1
jmp 0x43210b
push esi
call fcn.0042b570
add esp, 4
push eax
push 0x538ee0
push edi
call fcn.004260c0
add esp, 0xc
mov edx, dword [ebp - 0x204]
jmp 0x43210b
cmp esi, 5
mov eax, 0x539930
mov ecx, 0x539938
cmovne eax, ecx
push eax
push 0x539940
jmp 0x430fa1
push dword [ebp - 0xd8]
mov eax, dword [edi + 0x1c]
call eax
mov esi, dword [ebp - 0x1f4]
add esp, 4
mov edi, ebx
jmp 0x430b45
mov edi, dword [ebp - 0x1f0]
mov edx, 6
jmp 0x43210b
movzx eax, cl
cmp ecx, 5
mov ecx, 2
cmove eax, ecx
mov byte [edi + 0x8e], al
jmp 0x43210b
mov edi, dword [ebp - 0x1f0]
push 0x539654
push edi
call fcn.004260c0
add esp, 8
mov edx, 0x12
jmp 0x43210b
mov eax, dword [esi + 0x138]
test eax, eax
je 0x434cd0
cmp dword [ebp - 0x1f8], ecx
jb 0x434cd0
push dword [esi + 0x13c]
call eax
add esp, 4
test eax, eax
je 0x434cd0
mov edx, 9
jmp 0x43210b
xor edx, edx
mov ecx, edi
call fcn.004286e0
mov edx, eax
test edx, edx
jne 0x43210b
mov eax, dword [edi]
cmp dword [eax + 0x1bc], edx
je 0x434cfe
cmp dword [edi + 0x30], edx
je 0x434cfe
mov edx, 1
mov ecx, edi
call fcn.00428570
mov eax, dword [edi + 0x20]
mov ebx, dword [ebp - 0x1ec]
add eax, 2
mov ecx, dword [ebp - 0x208]
or eax, 1
mov dword [edi + 0x20], eax
mov eax, dword [ebx + 4]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov dword [edi + 0x68], esi
xor edi, edi
cmp dword [ebx + 8], edi
jle 0x434d6c
nop dword [eax]
mov eax, 0x1000
test word [esi + 8], ax
je 0x434d4a
mov ecx, esi
call fcn.00424b10
test eax, eax
jne 0x430b39
mov ax, word [esi + 8]
mov ecx, 0x202
and ax, cx
cmp ax, 2
jne 0x434d63
mov ecx, esi
call fcn.00424ad0
inc edi
add esi, 0x28
cmp edi, dword [ebx + 8]
jl 0x434d30
mov esi, dword [ebp - 0x1f4]
cmp byte [esi + 0x49], 0
jne 0x430b3f
test byte [esi + 0x50], 4
mov edi, dword [ebp - 0x1f0]
je 0x434d9e
mov eax, dword [esi + 0xbc]
push 0
push edi
push dword [esi + 0xc0]
push 4
call eax
add esp, 0x10
sub ebx, dword [ebp - 0x200]
mov eax, 0x66666667
imul ebx
mov dword [ebp - 0x204], 0x64
sar edx, 3
mov eax, edx
shr eax, 0x1f
inc eax
add eax, edx
mov dword [edi + 0x24], eax
jmp 0x434f39
mov edx, dword [ebp - 0x1ec]
movzx eax, byte [esi + 0x47]
mov ebx, dword [edx + 4]
mov ecx, dword [edx + 8]
cmp ebx, eax
je 0x434ea4
test ecx, ecx
je 0x434df4
mov edx, 0x204
mov ecx, esi
call fcn.0048ff90
mov al, 1
jmp 0x434e35
test ebx, ebx
je 0x434e19
cmp dword [esi + 0xa8], 0
jle 0x434e19
push 0x5397d8
push edi
call fcn.004260c0
add esp, 8
mov edx, 5
jmp 0x43210b
mov edx, 1
mov ecx, edi
call fcn.004286e0
mov dword [ebp - 0x204], eax
test eax, eax
jne 0x434f39
mov al, bl
mov ecx, edi
mov byte [esi + 0x47], al
call fcn.00428740
cmp eax, 5
jne 0x434e81
mov ecx, dword [ebp - 0x1ec]
mov eax, 0x66666667
sub ecx, dword [ebp - 0x200]
imul ecx
mov dword [ebp - 0x204], 5
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [edi + 0x24], eax
mov al, 1
sub al, bl
mov byte [esi + 0x47], al
mov dword [edi + 0x28], 5
jmp 0x434f39
mov ecx, esi
call fcn.0048f830
cmp dword [edi + 0x28], 0
mov eax, 0x65
mov ecx, 1
cmovne eax, ecx
mov dword [ebp - 0x204], eax
jmp 0x434f39
test ebx, ebx
jne 0x434ebf
mov eax, 0x539810
push eax
push edi
call fcn.004260c0
add esp, 8
lea edx, [ebx + 1]
jmp 0x43210b
test ecx, ecx
mov edx, 0x53986c
mov eax, 0x539840
cmove eax, edx
push eax
push edi
call fcn.004260c0
add esp, 8
mov edx, 1
jmp 0x43210b
mov edi, dword [ebp - 0x1f0]
xor eax, eax
cmp byte [esi + 0x49], al
sete al
lea eax, [eax*2 + 7]
mov ecx, eax
mov dword [ebp - 0x204], eax
mov dword [edi + 0x28], eax
call fcn.004900d0
push eax
push 0x538ee0
push edi
call fcn.004260c0
mov edx, dword [ebp - 0x204]
add esp, 0xc
jmp 0x432111
mov esi, dword [ebp - 0x1f4]
jmp 0x430b45
mov edi, ebx
jmp 0x43210b
mov edi, dword [ebp - 0x1f0]
mov eax, dword [ebp - 0x1f8]
mov ecx, edi
add dword [edi + 0xb0], eax
call fcn.00427280
mov ecx, dword [ebp - 4]
mov eax, dword [ebp - 0x204]
xor ecx, ebp
pop edi
pop esi
pop ebx
call fcn.004e5962
mov esp, ebp
pop ebp
ret