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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x24c
mov eax, dword [0x53a024]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
mov esi, ecx
mov dword [ebp - 0x20], 0
push edi
mov dword [ebp - 0x2c], esi
mov byte [ebp - 0x65], 0
mov edi, dword [esi]
mov eax, dword [esi + 0x68]
mov ebx, eax
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x58], edi
mov al, byte [edi + 0x4e]
mov byte [ebp - 0x60], al
mov byte [ebp - 0x10c], al
mov eax, dword [esi + 0x58]
mov dword [ebp - 0x8c], 0
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x24], eax
call fcn.00465233
cmp dword [edi + 0x148], 0
jne 0x498e4d
mov dword [ebp - 0x88], 0xffffffff
cmp dword [esi + 0x28], 7
je 0x499dd6
mov dword [esi + 0x38], 0
mov dword [esi + 0x3c], 0
mov dword [esi + 0x78], 0
cmp dword [edi + 0x110], 0
mov dword [edi + 0x19c], 0
jne 0x49bc8f
mov eax, dword [esi + 0x24]
mov ecx, ebx
fldz
fstp qword [ebp - 0x178]
lea eax, [eax + eax*4]
lea ebx, [ecx + eax*4]
xor eax, eax
mov dl, byte [ebx]
inc eax
mov dword [ebp - 0x1c], eax
movzx eax, dl
mov dword [ebp - 0x4c], ebx
mov dword [ebp - 0x34], eax
cmp eax, 0xa8
ja case.0x441a43.86
jmp dword [eax*4 + 0x443bbc]
mov eax, dword [ebx + 4]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x64]
lea ecx, [ecx - 5]
lea ecx, [eax + ecx*8]
mov dword [ebp - 0x18], ecx
call fcn.00441760
test eax, eax
jne 0x49bd3a
mov eax, dword [ebx + 8]
mov ecx, dword [ebp - 0x24]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov eax, 0x2400
test word [esi + 8], ax
jne 0x499046
mov ecx, dword [ebp - 0x18]
mov eax, dword [ecx]
mov dword [esi], eax
mov eax, dword [ecx + 4]
mov dword [esi + 4], eax
mov eax, dword [ecx + 8]
mov dword [esi + 8], eax
mov eax, dword [ecx + 0xc]
mov dword [esi + 0xc], eax
mov eax, dword [ecx + 0x10]
mov ecx, 0xebff
mov dword [esi + 0x10], eax
mov ax, word [esi + 8]
and ax, cx
mov ecx, 0x820
or ax, cx
mov word [esi + 8], ax
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x58]
add ebx, 0x14
mov esi, dword [ebp - 0x2c]
jmp 0x441a2d
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebp - 0x24]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 8], 1
je 0x441abb
mov ecx, ebx
mov eax, 0x66666667
sub ecx, dword [ebp - 0x14]
imul ecx
mov ecx, dword [ebx + 4]
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebp - 0x18], eax
test ecx, ecx
jne 0x441b0d
mov edx, dword [esi + 0xc8]
test edx, edx
jne 0x443117
mov dword [esi + 0x28], ecx
mov al, byte [ebx + 8]
mov byte [esi + 0x92], al
mov eax, dword [ebp - 0x18]
mov dword [esi + 0x24], eax
test ecx, ecx
jne 0x49bad9
mov ecx, esi
call fcn.0043ef30
mov dword [ebp - 0x20], eax
cmp eax, 5
je 0x49bb47
cmp dword [esi + 0x28], 0
jne 0x49bb53
mov dword [ebp - 0x20], 0x65
jmp 0x441b50
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x88]
cmp ecx, edx
jae 0x49bec5
add dword [esi + 0xb4], ecx
mov ecx, esi
call fcn.0047124f
mov ecx, dword [ebp - 4]
mov eax, dword [ebp - 0x20]
xor ecx, ebp
pop edi
pop esi
pop ebx
call fcn.00481a32
mov esp, ebp
pop ebp
ret
mov eax, dword [esi + 0x98]
and al, 3
cmp al, 1
je 0x49bc38
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebx + 8]
mov dword [ebp - 0x54], eax
shl eax, 4
add eax, dword [edi + 0x10]
mov dword [ebp - 0x3c], 0
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x18], ecx
mov edi, dword [eax + 4]
mov dword [ebp - 0x74], edi
mov edi, dword [ebp - 0x58]
cmp dl, 0x6d
jne 0x442642
mov eax, dword [eax + 0xc]
movzx ecx, word [ebx + 2]
and ecx, 8
or ecx, 4
mov al, byte [eax + 0x4c]
mov dword [ebp - 0x30], ecx
mov ecx, dword [ebp - 0x18]
cmp al, byte [esi + 0x93]
jb 0x44220c
test byte [ebx + 2], 0x10
jne 0x49a2b2
mov al, byte [ebx + 1]
cmp al, 0xf7
jne 0x4421fc
mov eax, dword [ebx + 0x10]
mov dword [ebp - 0x28], eax
movzx eax, word [eax + 8]
mov edx, dword [ebx + 4]
mov ecx, esi
push 0
push dword [ebp - 0x54]
push eax
call fcn.00441640
mov esi, eax
add esp, 0xc
test esi, esi
je 0x499dd3
push dword [esi + 0x28]
mov eax, dword [ebp - 0x18]
mov edx, eax
push dword [ebp - 0x28]
mov ecx, dword [ebp - 0x74]
push dword [ebp - 0x30]
or dword [esi + 8], 4
mov byte [esi + 2], 1
mov dword [esi + 0x34], eax
call fcn.00441560
mov edx, eax
add esp, 0xc
mov eax, dword [ebp - 0x28]
mov dword [esi + 0x2c], eax
cmp byte [ebx + 1], 0xf7
mov dword [ebp - 0x20], edx
setne al
mov byte [esi + 4], al
mov cl, byte [ebx + 2]
mov eax, dword [esi + 0x28]
and cl, 3
mov byte [eax + 3], cl
test edx, edx
je 0x441abb
jmp 0x49b5f7
mov edi, dword [ebp - 0x24]
xor eax, eax
mov dword [ebp - 0x44], eax
xor edx, edx
mov dword [ebp - 0x18], eax
xor ecx, ecx
mov dword [ebp - 0x28], eax
mov eax, dword [ebx + 0x10]
mov dword [ebp - 0x48], eax
mov eax, dword [ebx + 4]
mov dword [ebp - 0x38], edx
mov dword [ebp - 0x34], ecx
lea eax, [eax + eax*4]
lea edi, [edi + eax*8]
mov eax, dword [ebx + 8]
mov dword [ebp - 0x74], edi
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea eax, [edi + eax*8]
mov dword [ebp - 0x64], eax
movzx eax, byte [esi + 0x93]
mov esi, dword [ebp - 0x24]
mov dword [ebp - 0x54], eax
mov eax, dword [ebx + 0xc]
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
mov esi, dword [ebp - 0x48]
mov dword [ebp - 0x30], eax
test esi, esi
jne 0x44264e
mov esi, dword [ebp - 0x64]
lea eax, [ebp - 0xa0]
mov dword [ebp - 0x74], edx
mov edx, dword [ebp - 0x54]
mov dword [ebp - 0x3c], ecx
mov ecx, esi
push eax
call fcn.004417e0
mov ecx, 0x4000
mov dword [ebp - 0x48], eax
add esp, 4
test word [esi + 8], cx
jne 0x499d9b
mov ecx, dword [ebp - 0x38]
add ecx, dword [ebp - 0xa0]
mov dword [ebp - 0x38], ecx
adc dword [ebp - 0x34], 0
cmp eax, 0x7f
ja 0x4429ab
mov edx, 1
mov ecx, dword [ebp - 0x44]
add ecx, edx
mov dword [esi + 0x1c], eax
mov dword [ebp - 0x44], ecx
cmp esi, edi
je 0x441d38
mov ecx, dword [ebp - 0x34]
sub esi, 0x28
mov edx, dword [ebp - 0x38]
jmp 0x441cd4
cmp ecx, 0x7e
jg 0x499e11
inc ecx
mov dword [ebp - 0x44], ecx
mov eax, ecx
cdq
mov esi, eax
mov dword [ebp - 0x3c], edx
mov eax, dword [ebp - 0x38]
add eax, esi
mov dword [ebp - 0x54], esi
mov esi, dword [ebp - 0x34]
mov dword [ebp - 0x38], eax
adc esi, edx
add eax, dword [ebp - 0x18]
mov dword [ebp - 0x48], eax
mov eax, dword [ebp - 0x30]
adc esi, dword [ebp - 0x28]
mov eax, dword [eax + 0x18]
cdq
cmp esi, edx
jg 0x441d80
jl 0x442a9d
cmp dword [ebp - 0x48], eax
jbe 0x442a9d
mov eax, dword [ebp - 0x58]
mov eax, dword [eax + 0x6c]
cdq
cmp esi, edx
jl 0x441d9a
jg 0x49bd34
cmp dword [ebp - 0x48], eax
ja 0x49bd34
mov edx, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x30]
call fcn.004413b0
test eax, eax
jne 0x499dd0
mov ecx, dword [ebp - 0x44]
mov edx, dword [ebp - 0x30]
mov ebx, dword [edx + 0x10]
cmp ecx, 0x80
jae 0x499e40
mov byte [ebx], cl
mov eax, 1
movzx esi, al
lea esp, [esp]
mov eax, dword [edi + 0x1c]
lea edx, [esi + ebx]
mov dword [ebp - 0x3c], eax
cmp eax, 0x80
jae 0x4429c0
mov byte [edx], al
mov eax, 1
push dword [ebp - 0x3c]
movzx eax, al
add ecx, ebx
mov edx, edi
add esi, eax
call fcn.00441910
mov ecx, dword [ebp - 0x44]
add edi, 0x28
add ecx, eax
add esp, 4
mov dword [ebp - 0x44], ecx
cmp edi, dword [ebp - 0x64]
jbe 0x441dd0
mov ecx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x38]
mov edx, dword [ebp - 0x18]
mov ebx, dword [ebp - 0x4c]
mov dword [ecx + 0xc], eax
mov eax, 0x10
mov word [ecx + 8], ax
mov eax, edx
or eax, dword [ebp - 0x28]
je 0x441abb
jmp 0x499e58
mov eax, dword [ebx + 4]
mov ecx, dword [ebp - 0x24]
push 0x1000
lea eax, [eax + eax*4]
lea edx, [ecx + eax*8]
mov eax, dword [ebx + 8]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
call fcn.004413d0
mov ecx, dword [ebp - 0x14]
add esp, 4
mov eax, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x58]
add ebx, 0x14
mov esi, dword [ebp - 0x2c]
jmp 0x441a2d
test byte [ebx + 2], 1
mov ecx, dword [ebx + 4]
mov eax, dword [esi + 0x60]
mov eax, dword [eax + ecx*4]
mov ecx, dword [ebp - 0x24]
mov dword [ebp - 0x18], eax
mov eax, dword [ebx + 8]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov dword [ebp - 0x3c], ecx
jne 0x49a9c3
mov eax, 0x4000
test word [ecx + 8], ax
jne 0x49a9cb
cmp byte [ebx], 0x83
je 0x442b6b
mov eax, dword [ecx + 0xc]
cdq
mov dword [ebp - 0x1f0], eax
mov dword [ebp - 0x1ec], edx
mov eax, dword [ecx + 0x10]
mov ecx, dword [ebp - 0x24]
mov dword [ebp - 0x1f8], eax
mov eax, dword [ebx + 0xc]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
movzx ecx, word [ebx + 2]
mov dword [ebp - 0x1e4], eax
mov ax, word [ebx + 0x10]
mov word [ebp - 0x1e0], ax
test cl, 0x10
je 0x442fd1
mov eax, dword [ebp - 0x18]
mov eax, dword [eax + 0x20]
push eax
mov eax, dword [ebp - 0x18]
lea edx, [ebp - 0x1f8]
and ecx, 0xa
push ecx
mov ecx, dword [eax + 0x28]
call fcn.00440ab0
mov edx, eax
add esp, 8
mov eax, dword [ebp - 0x18]
mov dword [eax + 0x1c], 0
mov dword [ebp - 0x20], edx
test edx, edx
je 0x441abb
jmp 0x49be1c
mov eax, dword [ebx + 4]
mov ecx, dword [ebp - 0x24]
lea eax, [eax + eax*4]
push dword [ecx + eax*8 + 4]
push dword [ecx + eax*8]
mov eax, dword [ebx + 8]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
call fcn.00463d80
mov ecx, dword [ebp - 0x14]
add esp, 8
mov eax, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x58]
add ebx, 0x14
mov esi, dword [ebp - 0x2c]
jmp 0x441a2d
mov ecx, dword [ebx + 4]
mov eax, dword [esi + 0x60]
mov edx, dword [ebx + 0x10]
mov eax, dword [eax + ecx*4]
mov ecx, dword [ebp - 0x24]
mov dword [ebp - 0x30], eax
mov eax, dword [ebx + 0xc]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov dword [ebp - 0x3c], ecx
test edx, edx
jle 0x44270b
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x28], 0
mov eax, dword [eax + 0x2c]
mov dword [ebp - 0x188], eax
lea eax, [ebp - 0x188]
mov word [ebp - 0x180], dx
mov dword [ebp - 0x184], ecx
mov dword [ebp - 0x18], eax
mov byte [eax + 0xa], 0
cmp byte [ebx], 0x1b
mov dword [ebp - 0x48], 0
jne 0x441fe4
movzx edx, word [eax + 8]
xor ecx, ecx
test edx, edx
je 0x441fe4
mov eax, dword [eax + 4]
add eax, 8
lea esp, [esp]
test byte [eax], 1
jne 0x49a533
inc ecx
add eax, 0x28
cmp ecx, edx
jl 0x441fd0
mov eax, dword [ebp - 0x18]
lea ecx, [ebp - 0xd4]
mov edx, eax
mov eax, dword [ebp - 0x30]
push ecx
push 0
push 0
mov ecx, dword [eax + 0x28]
push 0
call fcn.0043f5d0
mov edx, eax
add esp, 0x10
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x20], edx
test eax, eax
jne 0x442753
test edx, edx
jne 0x49be1c
mov edx, dword [ebp - 0x30]
xor ecx, ecx
mov eax, dword [ebp - 0xd4]
mov dword [edx + 0x20], eax
mov al, 1
cmp dword [ebp - 0xd4], ecx
mov byte [edx + 3], 0
sete cl
mov dword [edx + 0x1c], 0
sub al, cl
mov byte [edx + 2], al
cmp byte [ebx], 0x1d
je 0x442764
cmp dword [ebp - 0x48], 0
jne 0x44208e
test ecx, ecx
je 0x44208e
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x58]
add ebx, 0x14
mov esi, dword [ebp - 0x2c]
jmp 0x441a2d
mov cl, byte [edi + 0x58]
test cl, 0x41
jne 0x49b9f0
mov eax, dword [ebx + 4]
cmp eax, dword [0x53a150]
jge 0x49baa0
inc eax
mov dword [ebx + 4], eax
inc dword [esi + 0xbc]
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebx + 8]
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea ebx, [ecx + eax*4]
mov eax, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x58]
add ebx, 0x14
mov esi, dword [ebp - 0x2c]
jmp 0x441a2d
mov ecx, dword [ebx + 4]
mov eax, dword [esi + 0x60]
push dword [ebx + 0xc]
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0x18], eax
push dword [eax + 0x28]
mov eax, dword [ebx + 0x10]
call eax
add esp, 8
mov edx, eax
mov dword [ebp - 0x20], edx
mov eax, dword [ebp - 0x18]
mov dword [eax + 0x1c], 0
test edx, edx
jne 0x44353b
mov byte [eax + 2], dl
movzx eax, word [ebx + 2]
inc dword [esi + eax*4 + 0xa4]
mov ecx, dword [ebp - 0x14]
mov ebx, dword [ebx + 8]
dec ebx
lea ebx, [ebx + ebx*4]
lea ebx, [ecx + ebx*4]
cmp dword [edi + 0x110], 0
jne 0x49bc8f
mov ecx, dword [ebp - 0x88]
cmp dword [ebp - 0x1c], ecx
jb 0x441abb
jmp 0x49b660
mov eax, dword [ebx + 4]
mov esi, dword [ebx + 0x10]
mov ecx, dword [ebp - 0x24]
mov ebx, dword [ebp - 0x60]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov al, byte [esi]
nop
push ebx
mov dl, al
mov ecx, edi
call fcn.00441790
mov al, byte [esi + 1]
lea esi, [esi + 1]
add esp, 4
add edi, 0x28
test al, al
jne 0x442130
mov ebx, dword [ebp - 0x4c]
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x58]
add ebx, 0x14
mov esi, dword [ebp - 0x2c]
jmp 0x441a2d
mov edx, dword [ebx + 8]
mov dword [ebp - 0x70], 0
test edx, edx
je 0x442180
mov eax, dword [edi + 0x20]
and eax, 0x100000
or eax, 0
jne 0x49bbad
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x10]
add ecx, ecx
mov eax, dword [eax + ecx*8 + 4]
mov dword [ebp - 0x3c], eax
test eax, eax
je 0x443337
lea ecx, [ebp - 0x70]
push ecx
mov ecx, eax
call fcn.00455da0
mov edx, eax
add esp, 4
mov dword [ebp - 0x20], edx
test edx, edx
jne 0x49bbba
cmp dword [ebx + 8], eax
je 0x4421c4
test byte [esi + 0x98], 0x80
jne 0x4432c1
cmp word [ebx + 2], 0
je 0x4421ef
mov eax, dword [ebp - 0x70]
cmp eax, dword [ebx + 0xc]
jne 0x49bbe7
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x10]
add ecx, ecx
mov eax, dword [eax + ecx*8 + 0xc]
mov eax, dword [eax + 4]
cmp eax, dword [ebx + 0x10]
jne 0x49bbe7
test edx, edx
je 0x441abb
jmp 0x49be1c
cmp al, 0xfd
jne 0x49a2cf
mov eax, dword [ebx + 0x10]
jmp 0x441c05
mov byte [esi + 0x93], al
jmp 0x441be6
cmp byte [ebx + 1], 0xfa
mov eax, dword [ebx + 8]
mov ecx, dword [ebx + 4]
mov edi, dword [ebp - 0x24]
lea edx, [eax + eax*4]
mov eax, dword [esi + 0x60]
mov esi, dword [ebp - 0x24]
mov dword [ebp - 0x3c], edx
mov ecx, dword [eax + ecx*4]
mov eax, dword [ebx + 0xc]
mov dword [ebp - 0x28], ecx
lea eax, [eax + eax*4]
mov esi, dword [esi + eax*8]
mov eax, dword [edi + eax*8 + 4]
mov edi, dword [ebp - 0x58]
mov dword [ebp - 0x54], esi
mov dword [ebp - 0x74], eax
mov dword [ebp - 0x1a8], esi
mov dword [ebp - 0x1a4], eax
jne 0x442267
cmp dword [edi + 0xec], 0
jne 0x49a6f6
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x48], 0
movzx eax, word [ebx + 2]
mov esi, eax
mov dword [ebp - 0x3c], esi
mov esi, dword [ebp - 0x2c]
test al, 1
je 0x49a716
inc dword [esi + 0x2c]
movzx eax, word [ebx + 2]
movzx esi, ax
mov dword [ebp - 0x18], esi
test al, 0x20
je 0x4422ad
mov eax, dword [ebp - 0x54]
mov dword [edi + 0x28], eax
mov eax, dword [ebp - 0x74]
mov dword [edi + 0x2c], eax
movzx eax, word [ebx + 2]
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x24]
mov eax, dword [eax + edx*8 + 0x10]
mov dword [ebp - 0x1a0], eax
mov eax, dword [ebp - 0x24]
mov eax, dword [eax + edx*8 + 0xc]
mov dword [ebp - 0x194], eax
mov eax, dword [ebp - 0x18]
test al, 0x10
je 0x443101
mov ecx, dword [ecx + 0x20]
mov edi, dword [ebp - 0x24]
mov esi, 0x4000
test word [edi + edx*8 + 8], si
mov edi, dword [ebp - 0x58]
mov esi, dword [ebp - 0x2c]
jne 0x49a71e
mov dword [ebp - 0x190], 0
push ecx
mov ecx, dword [ebp - 0x28]
lea edx, [ebp - 0x1b0]
and eax, 0xa
mov dword [ebp - 0x1b0], 0
push eax
mov ecx, dword [ecx + 0x28]
call fcn.00440ab0
mov edx, eax
add esp, 8
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x20], edx
mov byte [eax + 3], 0
mov dword [eax + 0x1c], 0
test edx, edx
jne 0x49be1c
mov eax, dword [ebp - 0x30]
test eax, eax
je 0x441abb
jmp 0x49a732
mov edx, ebx
mov dword [ebp - 0x80], 0
mov ecx, esi
mov dword [ebp - 0x7c], 0
mov dword [ebp - 0xa4], 0
call fcn.00464fc1
mov edx, dword [ebx + 4]
mov ecx, dword [esi + 0x60]
mov dword [ebp - 0x54], eax
mov eax, dword [ecx + edx*4]
mov dword [ebp - 0x38], eax
test byte [eax + 8], 2
jne 0x4423da
mov ecx, dword [eax + 0x28]
lea edx, [ebp - 0xa4]
call fcn.0043ede0
mov edx, eax
mov dword [ebp - 0x20], edx
test edx, edx
jne 0x49be1c
mov eax, dword [ebp - 0x38]
cmp dword [ebp - 0xa4], edx
jne 0x443715
mov ecx, dword [eax + 0x28]
call fcn.005079e3
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x7c], edx
cmp edx, 0x7fffffff
jl 0x4423cb
jg 0x49a5d3
cmp eax, 0xffffffff
jae 0x49a5d3
add eax, 1
mov dword [ebp - 0x80], eax
mov eax, dword [ebp - 0x38]
adc edx, 0
mov dword [ebp - 0x7c], edx
mov ecx, dword [ebx + 0xc]
test ecx, ecx
jne 0x49a5df
test byte [eax + 8], 2
jne 0x49a67c
mov edx, dword [ebp - 0x54]
mov byte [eax + 3], 0
mov dword [eax + 0x1c], 0
mov eax, dword [ebp - 0x80]
mov ecx, dword [ebp - 0x7c]
mov dword [edx], eax
mov eax, dword [ebp - 0x1c]
mov dword [edx + 4], ecx
mov ecx, dword [ebp - 0x14]
mov edi, dword [ebp - 0x58]
add ebx, 0x14
mov esi, dword [ebp - 0x2c]
jmp 0x441a2d
mov ecx, dword [ebx + 4]
lea edx, [ebp - 0x84]
mov eax, dword [esi + 0x60]
mov eax, dword [eax + ecx*4]
lea ecx, [ebp - 0x5c]
mov dword [ebp - 0x5c], eax
mov eax, dword [ebx + 8]
mov dword [ebp - 0x84], eax
call fcn.00464f57
mov edx, eax
mov dword [ebp - 0x20], edx
test edx, edx
jne 0x49be1c
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebp - 0x24]
mov edx, dword [ebp - 0x2c]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov ecx, dword [ebp - 0x5c]
mov dword [ebp - 0x30], esi
mov dword [ebp - 0x28], ecx
mov eax, dword [ecx + 0x48]
mov dword [ebp - 0x38], eax
mov eax, dword [ecx + 0x1c]
cmp eax, dword [edx + 0x20]
jne 0x4427e6
mov edx, dword [ebp - 0x38]
movzx eax, word [ecx + 0x3a]
mov esi, dword [ebp - 0x30]
cmp eax, dword [ebp - 0x84]
jle 0x442551
mov eax, dword [ebp - 0x84]
mov eax, dword [ecx + eax*4 + 0x58]
mov dword [ebp - 0x6c], eax
jmp 0x4424f5
cmp eax, dword [ebp - 0x18]
jae 0x442602
cmp dword [ebp - 0x4c], 0
jb 0x4424bf
ja 0x499c7f
mov edx, dword [ecx + 0x50]
cmp dword [ebp - 0x34], edx
mov edx, dword [ebp - 0x38]
ja 0x499c7f
sub eax, dword [ebp - 0x48]
mov edi, dword [ebp - 0x64]
mov word [ecx + 0x3a], di
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0x5c]
mov ecx, dword [ebp - 0x44]
mov dword [eax + 0x30], ecx
mov ecx, dword [ebp - 0x5c]
cmp dword [ecx + 0x4c], 0
je 0x499cc0
movzx eax, word [ecx + 0x3a]
mov esi, dword [ebp - 0x30]
cmp eax, dword [ebp - 0x84]
jle 0x499ce2
mov eax, 0x2400
test word [esi + 8], ax
jne 0x499d03
mov edi, dword [ebp - 0x84]
mov eax, dword [ecx + 0x54]
cmp eax, dword [edx + edi*4 + 4]
mov edi, dword [ebp - 0x58]
jb 0x499d15
mov eax, dword [ebp - 0x84]
mov ecx, dword [ecx + 0x4c]
add ecx, dword [edx + eax*4]
mov eax, dword [ebp - 0x6c]
mov dword [ebp - 0x28], ecx
cmp eax, 0xc
jae 0x442780
push esi
mov edx, eax
call fcn.0045e53c
mov ecx, dword [ebp - 0x14]
add esp, 4
mov eax, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x2c]
add ebx, 0x14
jmp 0x441a2d
mov eax, dword [edx]
mov dword [ebp - 0x18], eax
cmp dword [ecx + 0x30], eax
jae 0x499cd6
mov eax, dword [ecx + 0x4c]
mov dword [ebp - 0x48], eax
test eax, eax
je 0x499c31
movzx eax, word [ecx + 0x3a]
mov esi, dword [ebp - 0x48]
mov dword [ebp - 0x64], eax
mov dword [ebp - 0x4c], 0
mov eax, dword [edx + eax*4]
mov edx, dword [ebp - 0x64]
mov dword [ebp - 0x34], eax
mov eax, dword [ecx + 0x30]
add eax, dword [ebp - 0x48]
add dword [ebp - 0x18], esi
lea edx, [edx*4 + 0x58]
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x28], edx
jmp 0x4425a3
mov edx, dword [ebp - 0x28]
movzx eax, byte [eax]
mov dword [ebp - 0x6c], eax
mov dword [ecx + edx], eax
mov eax, dword [ebp - 0x6c]
cmp eax, 0x80
jae 0x442dbc
inc dword [ebp - 0x44]
movzx eax, al
movzx eax, byte [eax + 0x410990]
cdq
add dword [ebp - 0x34], eax
adc dword [ebp - 0x4c], edx
mov ecx, dword [ebp - 0x28]
mov edx, dword [ebp - 0x38]
add ecx, 4
mov eax, dword [ebp - 0x64]
mov edi, dword [ebp - 0x34]
inc eax
mov dword [ebp - 0x64], eax
mov dword [edx + ecx - 0x58], edi
cmp eax, dword [ebp - 0x84]
mov edi, dword [ebp - 0x58]
mov eax, dword [ebp - 0x44]
mov dword [ebp - 0x28], ecx
mov ecx, dword [ebp - 0x5c]
jg 0x44249b
cmp eax, dword [ebp - 0x18]
jb 0x4425a0
cmp eax, dword [ebp - 0x18]
ja 0x499c7f
mov esi, dword [ebp - 0x34]
cmp esi, dword [ecx + 0x50]
jne 0x499c7f
cmp dword [ebp - 0x4c], 0
je 0x4424a4
jmp 0x499c7f
mov eax, dword [ebx + 4]
mov ecx, dword [ebp - 0x24]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 8], 1
mov ecx, dword [ebp - 0x14]
je case.0x441a43.86
jmp 0x442091
mov dword [ebp - 0x30], 0
jmp 0x441be6
mov al, byte [esi]
mov ebx, dword [ebp - 0x60]
mov dword [ebp - 0x48], edi
push ebx
mov dl, al
mov ecx, edi
call fcn.00441790
mov al, byte [esi + 1]
lea esi, [esi + 1]
add esp, 4
add edi, 0x28
test al, al
jne 0x442656
mov ecx, dword [ebp - 0x34]
mov edx, ecx
mov ebx, dword [ebp - 0x4c]
mov edi, dword [ebp - 0x74]
jmp 0x441cd1
mov eax, dword [ebx + 0xc]
mov edx, dword [ebp - 0x24]
mov dword [ebp - 0x28], eax
mov eax, dword [ebx + 4]
lea eax, [eax + eax*4]
lea ecx, [edx + eax*8]
mov eax, dword [ebx + 8]
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
mov dword [ebp - 0x30], ecx
mov edx, ecx
push 0x1000
mov ecx, eax
mov dword [ebp - 0x18], eax
call fcn.004413d0
mov ecx, dword [ebp - 0x18]
mov eax, 0x1000
add esp, 4
test word [ecx + 8], ax
jne 0x442fd8
mov ecx, dword [ebp - 0x28]
mov eax, ecx
dec ecx
mov dword [ebp - 0x28], ecx
test eax, eax
je 0x441abb
jmp 0x4990b6
mov eax, dword [ebx + 4]
mov ecx, esi
mov edx, dword [esi + 0x60]
mov edx, dword [edx + eax*4]
call fcn.00464386
mov ecx, dword [ebx + 4]
mov eax, dword [esi + 0x60]
mov dword [eax + ecx*4], 0
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x58]
add ebx, 0x14
mov esi, dword [ebp - 0x2c]
jmp 0x441a2d
mov eax, 0x4000
test word [ecx + 8], ax
jne 0x49a521
mov eax, dword [ebp - 0x30]
mov ecx, dword [eax + 0x2c]
call fcn.0045eaf2
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x28], eax
test eax, eax
je 0x499dd6
mov edx, dword [ebp - 0x3c]
push eax
mov eax, dword [ebp - 0x30]
push dword [edx + 0x10]
mov edx, dword [edx + 0xc]
mov ecx, dword [eax + 0x2c]
call fcn.0045e47b
mov eax, dword [ebp - 0x18]
add esp, 8
jmp 0x441fac
mov edx, eax
mov ecx, edi
call fcn.00458df5
mov edx, dword [ebp - 0x20]
jmp 0x442011
test ecx, ecx
jne 0x44208e
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x58]
add ebx, 0x14
mov esi, dword [ebp - 0x2c]
jmp 0x441a2d
mov dl, byte [ebp - 0x60]
add eax, 0xfffffff4
shr eax, 1
mov byte [esi + 0xa], dl
mov dword [ebp - 0x18], eax
mov dword [esi + 0xc], eax
lea edx, [eax + 2]
cmp dword [esi + 0x18], edx
jl 0x442c67
mov edx, dword [esi + 0x14]
mov dword [esi + 0x10], edx
push eax
push ecx
push edx
call sub.VCRUNTIME140.dll_memcpy
mov eax, dword [esi + 0x10]
add esp, 0xc
mov ecx, dword [ebp - 0x18]
mov byte [ecx + eax], 0
mov eax, dword [esi + 0x10]
mov byte [ecx + eax + 1], 0
mov eax, dword [ebp - 0x6c]
mov ecx, dword [ebp - 0x14]
and eax, 1
mov ax, word [eax*2 + 0x40fa10]
mov word [esi + 8], ax
mov eax, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x58]
add ebx, 0x14
mov esi, dword [ebp - 0x2c]
jmp 0x441a2d
cmp byte [ecx + 2], 0
jne 0x442b7c
mov esi, dword [ecx + 0x28]
mov ecx, esi
call fcn.00507ece
mov ecx, dword [ebp - 0x5c]
mov dword [ecx + 0x50], eax
mov ecx, esi
mov edx, dword [ebp - 0x5c]
lea edx, [edx + 0x54]
call fcn.00507eab
mov ecx, dword [ebp - 0x5c]
mov dword [ecx + 0x4c], eax
mov ecx, dword [ebp - 0x5c]
mov eax, dword [ecx + 0x50]
cmp eax, dword [edi + 0x6c]
ja 0x49bd37
mov eax, dword [ebp - 0x2c]
mov eax, dword [eax + 0x20]
mov dword [ecx + 0x1c], eax
mov eax, dword [ebp - 0x5c]
mov ecx, dword [eax + 0x4c]
mov al, byte [ecx]
cmp al, 0x80
jae 0x499bf0
mov edx, dword [ebp - 0x38]
movzx eax, al
mov dword [edx], eax
mov al, 1
movzx ecx, al
mov eax, dword [ebp - 0x5c]
mov dword [eax + 0x30], ecx
xor ecx, ecx
mov eax, dword [ebp - 0x5c]
mov word [eax + 0x3a], cx
mov ecx, dword [ebp - 0x5c]
mov eax, dword [edx]
mov dword [ebp - 0x18], eax
cmp dword [ecx + 0x54], eax
jb 0x499c02
mov eax, dword [ecx + 0x4c]
mov dword [ebp - 0x48], eax
jmp 0x44256d
mov ecx, dword [ebx + 4]
mov eax, dword [esi + 0x60]
mov eax, dword [eax + ecx*4]
mov ecx, eax
mov dword [ebp - 0x18], eax
call fcn.0047268f
mov edx, eax
mov dword [ebp - 0x20], edx
test edx, edx
jne 0x49be1c
mov eax, dword [ebp - 0x18]
cmp byte [eax + 2], dl
jne 0x49a9e5
lea ecx, [ebp - 0xd0]
mov dword [ebp - 0xd0], edx
mov dword [ebp - 0xcc], edx
mov edx, dword [eax + 0x28]
push ecx
mov ecx, edi
call fcn.0045e394
mov edx, eax
add esp, 4
mov dword [ebp - 0x20], edx
test edx, edx
jne 0x49be1c
cmp byte [ebx], 0x86
jne 0x442ded
mov ecx, dword [ebx + 0xc]
mov eax, dword [esi + 0x60]
mov edx, dword [eax + ecx*4]
mov byte [edx + 2], 0
mov eax, dword [ebp - 0xd0]
mov ecx, dword [ebp - 0xcc]
mov dword [edx + 0x40], eax
mov dword [edx + 0x44], ecx
mov ecx, dword [ebp - 0x14]
mov byte [edx + 3], 1
mov eax, dword [ebx + 0x10]
mov dword [edx + 0x18], eax
mov eax, dword [ebp - 0x18]
mov dword [edx + 0x24], eax
mov eax, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x58]
add ebx, 0x14
mov esi, dword [ebp - 0x2c]
jmp 0x441a2d
mov eax, dword [esi + 0x60]
mov ecx, dword [ebx + 4]
mov ecx, dword [eax + ecx*4]
mov eax, dword [ecx + 0x2c]
mov dword [ebp - 0x148], eax
mov ax, word [ebx + 0x10]
mov word [ebp - 0x140], ax
cmp dl, 0x27
jae 0x49a9fb
mov byte [ebp - 0x13e], 0xff
mov eax, dword [ebx + 0xc]
mov edx, dword [ebp - 0x24]
mov dword [ebp - 0xac], 0
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
mov edx, ecx
mov dword [ebp - 0x144], eax
mov ecx, edi
lea eax, [ebp - 0xac]
push eax
lea eax, [ebp - 0x148]
push eax
call fcn.00471031
mov edx, eax
add esp, 8
test byte [ebx], 1
mov eax, dword [ebp - 0xac]
mov dword [ebp - 0x20], edx
jne 0x49aa07
inc eax
mov dword [ebp - 0xac], eax
test edx, edx
jne 0x49be1c
test eax, eax
jle 0x441abb
jmp 0x44208e
push 0
push eax
call fcn.0045872f
mov edx, eax
add esp, 8
mov eax, dword [ebp - 0x48]
jmp 0x441d1e
push 0
push eax
mov ecx, edx
call fcn.004715aa
mov ecx, dword [ebp - 0x44]
add esp, 8
jmp 0x441deb
mov ecx, dword [ebx + 4]
mov eax, dword [esi + 0x60]
mov dword [ebp - 0x28], 0
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0x18], eax
cmp byte [eax + 4], 0
mov byte [eax + 2], 0
jne 0x49a3c2
mov ecx, dword [eax + 0x28]
mov edx, 2
call fcn.00473430
test eax, eax
je 0x442a0e
mov dword [ebp - 0x28], 1
mov ecx, dword [ebp - 0x18]
mov eax, dword [ecx + 0x2c]
mov dword [ebp - 0x11c], eax
mov ax, word [ebx + 0x10]
mov word [ebp - 0x114], ax
mov eax, dword [ebp - 0x34]
test al, 1
jne 0x49a485
mov byte [ebp - 0x112], 1
mov eax, dword [ebx + 0xc]
mov edx, dword [ebp - 0x24]
mov byte [ebp - 0x10e], 0
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
mov dword [ebp - 0x118], eax
lea edx, [ebp - 0x11c]
mov ecx, dword [ecx + 0x28]
lea eax, [ebp - 0x78]
push eax
push 0
push 0
push 0
call fcn.0043f5d0
mov edx, eax
add esp, 0x10
mov dword [ebp - 0x20], edx
test edx, edx
jne 0x49be1c
cmp byte [ebp - 0x10e], al
jne 0x442c14
cmp dword [ebp - 0x28], eax
je 0x442c14
mov eax, dword [ebp - 0x78]
test eax, eax
jne 0x44208e
jmp 0x442c46
mov edx, dword [ebp - 0x30]
mov eax, dword [edx + 0x14]
mov dword [edx + 0x10], eax
jmp 0x441db3
xor edx, edx
mov ecx, esi
call fcn.00472884
mov edx, eax
mov dword [ebp - 0x20], edx
test edx, edx
jne 0x49be1c
lea edx, [eax + 1]
mov ecx, esi
call fcn.0047496b
mov eax, dword [esi + 0x20]
mov ecx, dword [ebp - 0x24]
add eax, 2
or eax, 1
mov dword [ebp - 0x9c], 0
mov dword [esi + 0x20], eax
mov eax, dword [ebx + 4]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov dword [esi + 0x78], eax
cmp dword [ebx + 8], 0
mov dword [ebp - 0x70], eax
jle 0x442b31
lea esp, [esp]
mov ecx, 0x1000
test word [eax + 8], cx
jne 0x49bd4f
mov ecx, eax
call fcn.0047125d
mov ecx, dword [ebp - 0x9c]
mov eax, dword [ebp - 0x70]
inc ecx
add eax, 0x28
mov dword [ebp - 0x9c], ecx
mov dword [ebp - 0x70], eax
cmp ecx, dword [ebx + 8]
jl 0x442b00
cmp byte [edi + 0x51], 0
jne 0x499dd6
test byte [edi + 0x58], 4
jne 0x49bd66
mov ecx, ebx
mov dword [ebp - 0x20], 0x64
sub ecx, dword [ebp - 0x14]
mov eax, 0x66666667
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
inc eax
add eax, edx
mov dword [esi + 0x24], eax
jmp 0x441b50
mov edx, ecx
mov ecx, dword [ebp - 0x18]
call fcn.0045875e
mov edx, eax
jmp 0x441f18
cmp byte [ecx], 3
jne 0x49921f
mov eax, dword [ecx + 0x20]
lea edx, [eax + eax*4]
mov eax, dword [ebp - 0x24]
mov eax, dword [eax + edx*8 + 0xc]
mov dword [ecx + 0x54], eax
mov ecx, dword [ebp - 0x5c]
mov eax, dword [ecx + 0x54]
mov dword [ecx + 0x50], eax
mov eax, dword [ebp - 0x24]
mov ecx, dword [eax + edx*8 + 0x10]
mov eax, dword [ebp - 0x5c]
mov dword [eax + 0x4c], ecx
mov ecx, dword [ebp - 0x5c]
jmp 0x442822
mov eax, dword [ebx + 8]
mov ecx, dword [ebp - 0x24]
lea eax, [eax + eax*4]
lea edx, [ecx + eax*8]
mov ecx, dword [ebx + 4]
mov eax, dword [esi + 0x60]
mov ecx, dword [eax + ecx*4]
call fcn.00472813
mov edx, eax
mov dword [ebp - 0x20], edx
test edx, edx
jne 0x49be1c
mov ecx, dword [ebx + 0xc]
mov eax, dword [esi + 0x60]
mov eax, dword [eax + ecx*4]
mov ecx, dword [ebp - 0x14]
mov dword [eax + 0x1c], edx
mov eax, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x58]
add ebx, 0x14
mov esi, dword [ebp - 0x2c]
jmp 0x441a2d
mov ecx, dword [ebx + 4]
mov eax, dword [esi + 0x60]
mov eax, dword [eax + ecx*4]
mov edx, eax
mov ecx, edi
mov dword [ebp - 0x18], eax
call fcn.0045881b
jmp 0x4420c8
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x34]
mov byte [edx + 3], 0
mov dword [edx + 0x1c], 0
mov ecx, dword [ebp - 0x78]
cmp eax, 0x18
jl 0x49a4bb
test ecx, ecx
js 0x4430ae
je 0x49a491
mov dword [ebp - 0x78], 0
cmp dword [ebp - 0x28], 0
je 0x441abb
mov ecx, dword [ebp - 0x14]
add ebx, 0x14
mov eax, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x58]
add ebx, 0x14
mov esi, dword [ebp - 0x2c]
jmp 0x441a2d
mov eax, 1
mov ecx, esi
push 0
mov word [esi + 8], ax
call fcn.00441430
add esp, 4
test eax, eax
jne 0x499dd3
mov edx, dword [esi + 0x10]
mov ecx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x18]
jmp 0x4427a3
mov ecx, dword [ebx + 4]
mov eax, dword [esi + 0x60]
mov edx, dword [ebp - 0x24]
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0x54], eax
mov ecx, dword [eax + 0x28]
mov eax, dword [eax + 0x2c]
mov dword [ebp - 0x170], eax
mov ax, word [ebx + 0xc]
mov word [ebp - 0x168], ax
mov eax, dword [ebx + 8]
mov dword [ebp - 0x3c], ecx
mov byte [ebp - 0x166], 0
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
mov dword [ebp - 0x16c], eax
lea edx, [ebp - 0x170]
lea eax, [ebp - 0x100]
push eax
push 0
push 0
push 0
call fcn.0043f5d0
mov edx, eax
add esp, 0x10
mov dword [ebp - 0x20], edx
test edx, edx
jne 0x49be1c
cmp dword [ebp - 0x100], eax
jne 0x442d18
mov ecx, dword [ebp - 0x3c]
mov dl, 4
call fcn.0045c362
mov edx, eax
mov dword [ebp - 0x20], edx
test edx, edx
jne 0x49be1c
mov eax, dword [ebp - 0x54]
mov ecx, dword [ebp - 0x14]
mov dword [eax + 0x1c], 0
mov dword [eax + 0x20], 0
mov eax, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x58]
add ebx, 0x14
mov esi, dword [ebp - 0x2c]
jmp 0x441a2d
mov edx, ebx
mov ecx, esi
call fcn.00464fc1
mov edx, dword [ebx + 4]
mov ecx, dword [esi + 0x60]
mov dword [ebp - 0x18], eax
mov esi, dword [ecx + edx*4]
cmp byte [esi + 2], 0
jne 0x49a899
cmp byte [esi + 3], 0
jne 0x49a8a7
cmp byte [esi], 2
je 0x49a8b2
mov ecx, esi
call fcn.0047268f
mov edx, eax
mov dword [ebp - 0x20], edx
test edx, edx
jne 0x49b5f7
cmp byte [esi + 2], al
jne 0x49a8f4
mov ecx, dword [esi + 0x28]
call fcn.005079e3
mov dword [ebp - 0xc4], edx
mov dword [ebp - 0xc8], eax
mov ecx, dword [ebp - 0x18]
mov dword [ecx], eax
mov eax, dword [ebp - 0x1c]
mov dword [ecx + 4], edx
mov ecx, dword [ebp - 0x14]
mov edi, dword [ebp - 0x58]
add ebx, 0x14
mov esi, dword [ebp - 0x2c]
jmp 0x441a2d
mov ecx, dword [ebp - 0x44]
lea edx, [ebp - 0x6c]
call fcn.00474b9a
mov edx, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x6c]
movzx eax, al
add dword [ebp - 0x44], eax
mov eax, dword [ebp - 0x5c]
mov dword [eax + edx], ecx
mov ecx, dword [ebp - 0x6c]
call fcn.004778b6
add dword [ebp - 0x34], eax
adc dword [ebp - 0x4c], 0
jmp 0x4425ce
mov edx, ebx
mov ecx, esi
call fcn.00464fc1
mov ecx, dword [ebp - 0xd0]
mov edx, dword [ebp - 0xcc]
mov dword [eax], ecx
mov ecx, dword [ebp - 0x14]
mov dword [eax + 4], edx
mov eax, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x58]
add ebx, 0x14
mov esi, dword [ebp - 0x2c]
jmp 0x441a2d
mov eax, dword [ebx + 4]
mov ecx, dword [ebp - 0x24]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 8], 4
lea ecx, [ecx + eax*8]
je 0x441abb
call fcn.0050e14c
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x58]
add ebx, 0x14
mov esi, dword [ebp - 0x2c]
jmp 0x441a2d
mov eax, dword [esi + 0x60]
xor edx, edx
mov ecx, dword [ebx + 4]
mov edi, dword [ebp - 0x24]
mov ebx, dword [eax + ecx*4]
mov eax, dword [ebp - 0x4c]
mov ecx, dword [ebx + 0x28]
mov eax, dword [eax + 0xc]
mov dword [ebp - 0xb4], 0
lea eax, [eax + eax*4]
mov esi, dword [edi + eax*8]
mov edi, dword [edi + eax*8 + 4]
lea eax, [ebp - 0xb4]
push eax
push 0
push edi
push esi
call fcn.0043f5d0
mov dword [ebx + 0x40], esi
mov edx, eax
mov dword [ebx + 0x44], edi
add esp, 0x10
mov word [ebx + 2], 0
mov dword [ebx + 0x1c], 0
mov eax, dword [ebp - 0xb4]
mov dword [ebx + 0x20], eax
cmp dword [ebp - 0xb4], 0
mov ebx, dword [ebp - 0x4c]
mov dword [ebp - 0x20], edx
jne 0x49a582
test edx, edx
je 0x441abb
jmp 0x49b5f4
cmp byte [ebx + 1], 0xfa
mov eax, dword [ebx + 8]
mov ecx, dword [ebx + 4]
mov dword [ebp - 0x3c], eax
mov eax, dword [esi + 0x60]
mov esi, dword [eax + ecx*4]
jne 0x442ee9
cmp dword [edi + 0xec], 0
jne 0x49a76c
xor eax, eax
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x18], eax
mov dl, byte [ebx + 2]
mov ecx, dword [esi + 0x28]
call fcn.0045c362
mov edx, eax
mov dword [esi + 0x1c], 0
mov dword [ebp - 0x20], edx
mov dword [esi + 0x20], 0
test edx, edx
jne 0x49b5f7
test byte [ebp - 0x3c], 1
je 0x441abb
mov eax, dword [ebp - 0x2c]
inc dword [eax + 0x2c]
mov ecx, dword [edi + 0xec]
test ecx, ecx
je 0x441abb
jmp 0x49a7a8
mov edx, ebx
mov ecx, esi
call fcn.00464fc1
mov ecx, eax
mov eax, dword [ebx + 4]
cdq
mov dword [ecx], eax
mov eax, dword [ebp - 0x1c]
mov dword [ecx + 4], edx
mov ecx, dword [ebp - 0x14]
mov edi, dword [ebp - 0x58]
add ebx, 0x14
mov esi, dword [ebp - 0x2c]
jmp 0x441a2d
mov edx, ebx
mov ecx, esi
call fcn.00464fc1
mov esi, dword [ebx + 0xc]
sub esi, dword [ebx + 8]
cmp dword [ebx + 4], 0
jne 0x498ff3
mov edi, 1
mov word [eax + 8], di
add eax, 0xc
mov dword [ebp - 0x18], eax
mov dword [eax], 0
test esi, esi
jle 0x441abb
mov ebx, eax
mov edi, edi
lea ebx, [ebx + 0x28]
lea ecx, [ebx - 0xc]
call fcn.0045ea00
dec esi
mov word [ebx - 4], di
mov dword [ebx], 0
test esi, esi
jg 0x442fa0
mov ebx, dword [ebp - 0x4c]
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x58]
add ebx, 0x14
mov esi, dword [ebp - 0x2c]
jmp 0x441a2d
xor eax, eax
jmp 0x441ef3
call fcn.00477924
test eax, eax
je 0x4426c4
jmp 0x499dd6
mov ecx, dword [ebx + 4]
movzx eax, byte [edi + 0x4f]
mov edx, dword [ebx + 8]
mov dword [ebp - 0x70], ecx
cmp ecx, eax
je 0x49bddd
test edx, edx
jne 0x49bd81
test ecx, ecx
je 0x443017
cmp dword [edi + 0xb4], edx
jg 0x49bd94
mov edx, 1
mov ecx, esi
call fcn.00472884
mov dword [ebp - 0x20], eax
test eax, eax
jne 0x441b50
mov al, byte [ebp - 0x70]
mov byte [ebp - 0x70], al
mov ecx, esi
mov byte [edi + 0x4f], al
call fcn.0043ef30
cmp eax, 5
je 0x49bda9
mov ecx, edi
call fcn.00477608
cmp dword [esi + 0x28], 0
je 0x441b44
jmp 0x49bb53
mov eax, dword [ebx + 4]
mov ecx, dword [ebp - 0x24]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 8], 0x10
lea eax, [ecx + eax*8]
mov dword [ebp - 0x3c], eax
je 0x44310b
mov ecx, dword [eax + 0x10]
lea edx, [ebp - 0x130]
call fcn.0045e6ec
test eax, eax
je 0x443108
mov eax, dword [ebx + 0xc]
push dword [ebp - 0x12c]
mov ecx, dword [ebp - 0x24]
push dword [ebp - 0x130]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
call fcn.00463d80
add esp, 8
jmp 0x4420fa
mov dword [ebp - 0x78], 0
push 0
push dword [edx + 0x28]
call fcn.0045cefc
mov edx, eax
add esp, 8
mov dword [ebp - 0x20], edx
test edx, edx
je 0x442a8d
jmp 0x49a49f
cmp dword [ebx + 4], 0
jne 0x49aea1
mov eax, dword [esi + 0x40]
or eax, dword [esi + 0x44]
jne case.0x441a43.86
mov eax, dword [edi + 0x1e0]
or eax, dword [edi + 0x1e4]
je 0x442091
jmp case.0x441a43.86
xor ecx, ecx
jmp 0x4422d5
mov eax, dword [ebp - 0x3c]
mov ecx, eax
call fcn.0045ea00
jmp 0x4420ed
mov eax, dword [edx + 4]
mov ecx, edx
dec dword [esi + 0xd0]
mov dword [esi + 0xc8], eax
mov eax, dword [esi + 0x2c]
add dword [edi + 0x68], eax
mov dword [edi + 0x64], eax
call fcn.004642b5
cmp dword [ebx + 8], 4
mov ecx, eax
je 0x498f32
mov eax, dword [esi + 0x68]
mov dword [ebp - 0x14], eax
mov eax, dword [esi + 0x58]
mov dword [ebp - 0x24], eax
lea eax, [ecx + ecx*4]
mov ecx, dword [ebp - 0x14]
lea ebx, [ecx + eax*4]
mov eax, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x58]
add ebx, 0x14
mov esi, dword [ebp - 0x2c]
jmp 0x441a2d
mov eax, dword [esi + 0x2c]
add dword [edi + 0x68], eax
mov dword [edi + 0x64], eax
mov eax, dword [ebp - 0x1c]
mov dword [esi + 0x2c], 0
mov edi, dword [ebp - 0x58]
add ebx, 0x14
mov esi, dword [ebp - 0x2c]
jmp 0x441a2d
cmp word [ebx + 2], 0
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebp - 0x24]
mov edx, dword [ebx + 0x10]
mov dword [ebp - 0x18], edx
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov dword [ebp - 0x28], ecx
jne 0x49ae4d
mov eax, dword [esi + 0xd0]
cmp eax, dword [edi + 0x94]
jge 0x49bc65
test byte [ecx + 8], 0x10
je 0x44395d
mov edx, dword [ecx + 0x10]
mov ebx, dword [ebp - 0x18]
inc eax
mov dword [esi + 0xd0], eax
mov eax, dword [esi + 0xc8]
mov dword [edx + 4], eax
mov eax, dword [edi + 0x28]
mov ecx, dword [edi + 0x2c]
mov dword [edx + 0x20], eax
mov dword [edx + 0x24], ecx
mov eax, dword [esi + 0x2c]
mov dword [edx + 0x44], eax
mov eax, dword [esi]
mov eax, dword [eax + 0x64]
mov dword [edx + 0x48], eax
mov eax, dword [esi + 0xdc]
mov dword [edx + 0x28], eax
lea eax, [edx + 0x50]
mov dword [esi + 0x58], eax
mov dword [esi + 0xc8], edx
mov dword [esi + 0xdc], 0
mov dword [esi + 0x2c], 0
mov ecx, dword [edx + 0x3c]
mov dword [esi + 0x18], ecx
add ecx, 2
mov dword [ebp - 0x24], eax
movzx eax, word [edx + 0x40]
mov dword [esi + 0x1c], eax
lea eax, [ecx + ecx*4]
lea ecx, [edx + eax*8]
mov dword [esi + 0x60], ecx
mov eax, dword [ebx + 0xc]
lea ecx, [ecx + eax*4]
mov dword [edx + 0x18], ecx
mov eax, dword [ebx + 4]
add eax, 7
cdq
and edx, 7
add eax, edx
sar eax, 3
push eax
push 0
push ecx
call sub.VCRUNTIME140.dll_memset
mov ecx, dword [ebx]
add esp, 0xc
mov dword [esi + 0x68], ecx
mov eax, dword [ebx + 4]
mov dword [ebp - 0x14], ecx
mov dword [esi + 0x6c], eax
lea ebx, [ecx - 0x14]
jmp 0x4420fa
mov edx, ebx
mov ecx, esi
call fcn.00464fc1
mov esi, eax
mov eax, dword [ebp - 0x2c]
push 0x1000
mov eax, dword [eax + 0xc8]
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]
add ecx, dword [ebx + 4]
lea ecx, [ecx + ecx*4]
lea edx, [eax + ecx*8]
mov ecx, esi
call fcn.004413d0
mov ecx, dword [ebp - 0x14]
add esp, 4
mov eax, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x58]
add ebx, 0x14
mov esi, dword [ebp - 0x2c]
jmp 0x441a2d
cmp byte [edi + 0x4f], 0
jne 0x443ba4
mov eax, dword [esi + 0x30]
test eax, eax
jne 0x4432e7
mov eax, dword [edi + 0x1cc]
inc dword [edi + 0x1d0]
add eax, dword [edi + 0x1d0]
mov dword [esi + 0x30], eax
dec eax
xor edx, edx
push eax
mov ecx, edi
call fcn.00453ce1
mov edx, eax
add esp, 4
mov dword [ebp - 0x20], edx
test edx, edx
jne 0x44330e
mov edx, dword [esi + 0x30]
mov ecx, dword [ebp - 0x3c]
call fcn.0045dae9
mov edx, eax
mov dword [ebp - 0x20], edx
mov eax, dword [edi + 0x1d8]
mov ecx, dword [edi + 0x1dc]
mov dword [esi + 0x48], eax
mov dword [esi + 0x4c], ecx
mov eax, dword [edi + 0x1e0]
mov ecx, dword [edi + 0x1e4]
mov dword [esi + 0x50], eax
mov dword [esi + 0x54], ecx
jmp 0x4421c4
mov edx, dword [ebp - 0x20]
jmp 0x4421c4
mov eax, dword [ebx + 4]
mov edx, dword [ebp - 0x24]
lea eax, [eax + eax*4]
lea ecx, [edx + eax*8]
mov eax, dword [ebx + 0xc]
mov dword [ebp - 0x4c], ecx
lea eax, [eax + eax*4]
lea edx, [edx + eax*8]
movzx eax, word [ecx + 8]
movzx ecx, word [edx + 8]
mov di, ax
mov dword [ebp - 0x38], eax
mov si, cx
movzx eax, di
mov dword [ebp - 0x18], eax
movzx eax, si
mov dword [ebp - 0x28], eax
mov eax, ecx
or eax, dword [ebp - 0x38]
mov dword [ebp - 0x34], edx
mov dword [ebp - 0x44], ecx
mov dword [ebp - 0x30], eax
test al, 1
jne 0x4996e9
mov al, byte [ebx + 2]
and al, 0x47
cmp al, 0x43
jae 0x499784
cmp al, 0x42
je 0x499825
push dword [ebx + 0x10]
mov edx, dword [ebp - 0x4c]
mov ecx, dword [ebp - 0x34]
call fcn.00474550
add esp, 4
mov ecx, eax
movzx edx, byte [ebx]
movzx eax, si
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x28], ecx
movzx eax, di
test ecx, ecx
js 0x499735
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x18]
movzx eax, ax
mov dword [ebp - 0x44], eax
mov eax, ecx
test eax, eax
je 0x443528
mov si, word [ebp - 0x44]
mov di, word [ebp - 0x38]
mov al, byte [edx + 0x40fa58]
movzx edx, al
mov eax, dword [ebp - 0x4c]
mov word [eax + 8], di
mov eax, dword [ebp - 0x34]
mov word [eax + 8], si
movzx eax, word [ebx + 2]
test al, 0x20
jne 0x4998a6
test edx, edx
jne 0x44208e
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x58]
add ebx, 0x14
mov esi, dword [ebp - 0x2c]
jmp 0x441a2d
mov eax, dword [ebx + 4]
mov edx, dword [ebp - 0x24]
lea eax, [eax + eax*4]
test byte [edx + eax*8 + 8], 0x10
lea ecx, [edx + eax*8]
mov eax, dword [ebx + 8]
mov dword [ebp - 0x3c], ecx
lea eax, [eax + eax*4]
mov dword [ebp - 0x54], eax
je 0x44350d
push dword [edx + eax*8 + 4]
mov ecx, dword [ecx + 0x10]
push dword [edx + eax*8]
call fcn.00474e76
mov ecx, dword [ebp - 0x14]
add esp, 8
mov eax, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x58]
add ebx, 0x14
mov esi, dword [ebp - 0x2c]
jmp 0x441a2d
mov eax, dword [edi + 0x20]
and eax, 0x80000
or eax, 0
mov eax, dword [ebx + 8]
cdq
jne 0x49ae7f
cmp dword [ebx + 4], 0
jne 0x49ae90
add dword [esi + 0x40], eax
mov eax, dword [ebp - 0x1c]
adc dword [esi + 0x44], edx
mov edi, dword [ebp - 0x58]
add ebx, 0x14
mov esi, dword [ebp - 0x2c]
jmp 0x441a2d
mov edx, ebx
mov ecx, esi
call fcn.00464fc1
mov ecx, dword [ebx + 0x10]
mov esi, eax
mov byte [ebx], 0x48
call fcn.00455372
cmp byte [ebp - 0x60], 1
mov dword [ebx + 4], eax
jne 0x498f65
mov eax, dword [ebx + 4]
mov esi, dword [ebp - 0x2c]
cmp eax, dword [edi + 0x6c]
jg 0x49bd3a
mov edx, ebx
mov ecx, esi
call fcn.00464fc1
mov esi, eax
mov eax, 0xa02
mov word [esi + 8], ax
mov ecx, dword [ebx + 0x10]
mov al, byte [ebp - 0x60]
mov dword [esi + 0x10], ecx
mov ecx, dword [ebx + 4]
mov dword [esi + 0xc], ecx
mov byte [esi + 0xa], al
mov eax, dword [ebx + 0xc]
test eax, eax
jle 0x441abb
jmp 0x498fc7
call fcn.00477d61
test eax, eax
jne 0x499dd6
mov ecx, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x54]
mov edx, dword [ebp - 0x24]
jmp 0x443449
mov di, word [ebp - 0x38]
mov si, word [ebp - 0x44]
mov al, byte [edx + 0x411f90]
jmp 0x4433ed
cmp edx, 0x65
jne 0x49be1c
mov dword [ebp - 0x20], 0
mov byte [eax + 2], 1
jmp 0x4420fa
inc dword [esi + 0xac]
mov ecx, dword [ebx + 4]
lea edx, [ebp - 0xa8]
mov eax, dword [esi + 0x60]
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0xa8], 1
mov dword [ebp - 0x18], eax
cmp byte [eax], 1
je 0x443636
mov ecx, dword [eax + 0x28]
call fcn.0045cede
mov ecx, dword [ebp - 0x18]
mov byte [ecx + 3], 0
mov dword [ecx + 0x1c], 0
mov edx, eax
mov dword [ebp - 0x20], edx
test edx, edx
jne 0x49be1c
mov al, byte [ebp - 0xa8]
mov byte [ecx + 2], al
cmp dword [ebp - 0xa8], edx
je 0x441abb
jmp 0x44208e
mov edx, dword [ebx + 4]
mov ecx, esi
push 1
push 0xffffffffffffffff
push dword [ebx + 8]
call fcn.00441640
add esp, 0xc
test eax, eax
je 0x499dd6
mov ecx, dword [ebx + 0x10]
mov dword [eax + 0x2c], ecx
mov ecx, edi
mov edx, dword [ebx + 0xc]
push eax
call fcn.0047c8d5
add esp, 4
jmp 0x442b75
mov edx, dword [ebx + 4]
mov ecx, esi
push 3
push 0xffffffffffffffff
push dword [ebx + 0xc]
call fcn.00441640
add esp, 0xc
test eax, eax
je 0x499dd6
mov byte [eax + 2], 1
mov ecx, dword [ebx + 8]
mov dword [eax + 0x20], ecx
mov ecx, dword [ebp - 0x14]
mov byte [eax + 4], 1
mov dword [eax + 0x28], 0x545504
mov eax, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x58]
add ebx, 0x14
mov esi, dword [ebp - 0x2c]
jmp 0x441a2d
mov ecx, eax
call fcn.0045eba4
mov ecx, dword [ebp - 0x18]
jmp 0x443595
mov ecx, dword [ebx + 4]
mov eax, dword [esi + 0x60]
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0x54], eax
mov ecx, dword [eax + 0x28]
mov dword [ebp - 0x3c], ecx
mov dword [ebp - 0xb8], 0
cmp dl, 0x82
je 0x49a92f
lea edx, [ebp - 0xb8]
call fcn.0043ede0
mov ecx, dword [ebp - 0x54]
mov edx, eax
mov al, byte [ebp - 0xb8]
mov dword [ebp - 0x20], edx
mov byte [ecx + 2], al
mov byte [ecx + 3], 0
mov dword [ecx + 0x1c], 0
test edx, edx
jne 0x49be1c
cmp dword [ebx + 8], edx
jle 0x441abb
cmp dword [ebp - 0xb8], edx
je 0x441abb
jmp 0x44208e
mov eax, dword [ebx + 4]
mov ecx, dword [ebp - 0x24]
mov edx, dword [ebx + 0x10]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov eax, dword [ebx + 0xc]
mov dword [ebp - 0x18], ecx
test eax, eax
jne 0x49b0dd
call fcn.0045fef3
mov ecx, eax
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x20], ecx
test ecx, ecx
jne 0x49bc84
movzx edx, byte [ebp - 0x60]
mov ecx, eax
call fcn.00480ca3
mov ecx, dword [ebp - 0x18]
call fcn.00441760
test eax, eax
je 0x441abb
jmp 0x49bd3a
mov eax, dword [ebx + 4]
test eax, eax
je case.0x441a43.86
jmp 0x4994b1
mov dword [ebp - 0x80], 1
mov dword [ebp - 0x7c], 0
jmp 0x4423da
movzx eax, word [ebx + 2]
mov ecx, edi
mov dword [ebp - 0x18], eax
push 0
lea eax, [eax*4 + 0x44]
push eax
call fcn.004584c7
mov esi, eax
add esp, 8
test esi, esi
je 0x499dd3
mov eax, dword [ebp - 0x18]
add eax, 7
mov dword [esi + 8], 0
lea ecx, [esi + eax*4]
mov eax, 1
mov dword [esi], ecx
mov word [ecx + 8], ax
mov dword [ecx + 0x20], edi
mov dword [ecx + 0x18], 0
mov ecx, ebx
mov eax, dword [ebx + 0x10]
sub ecx, dword [ebp - 0x14]
mov dword [esi + 4], eax
mov eax, 0x66666667
imul ecx
mov byte [esi + 0x18], 0
sar edx, 3
mov eax, edx
mov dword [esi + 0x14], 0
shr eax, 0x1f
add eax, edx
mov dword [esi + 0x10], eax
mov eax, dword [ebp - 0x2c]
mov dword [esi + 0xc], eax
mov eax, dword [ebp - 0x18]
mov byte [esi + 0x19], al
mov word [ebx], 0xf09b
mov dword [ebx + 0x10], esi
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebp - 0x24]
mov esi, dword [ebx + 0x10]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov dword [ebp - 0x54], ecx
cmp dword [esi + 8], ecx
je 0x4437fd
movzx edx, byte [esi + 0x19]
sub edx, 1
mov dword [esi + 8], ecx
js 0x4437fd
mov ecx, dword [ebp - 0x24]
lea eax, [edx + 7]
lea eax, [esi + eax*4]
mov dword [ebp - 0x3c], eax
mov edi, eax
mov eax, dword [ebx + 8]
lea edi, [edi - 4]
add eax, edx
sub edx, 1
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov dword [edi + 4], eax
jns 0x4437e1
mov edi, dword [ebp - 0x58]
mov ecx, dword [ebp - 0x54]
inc dword [ecx + 0xc]
lea eax, [esi + 0x1c]
cmp dword [ebx + 4], 0
movzx edx, byte [esi + 0x19]
mov ecx, dword [esi + 4]
push eax
push edx
push esi
jne 0x49b063
mov eax, dword [ecx + 0x10]
call eax
mov eax, dword [esi + 0x14]
add esp, 0xc
test eax, eax
je 0x441abb
jmp 0x49b06b
mov edx, ebx
mov ecx, esi
call fcn.00464fc1
mov edx, eax
mov eax, dword [ebx + 0x10]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [edx], ecx
mov ecx, dword [ebp - 0x14]
mov dword [edx + 4], eax
mov eax, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x58]
add ebx, 0x14
mov esi, dword [ebp - 0x2c]
jmp 0x441a2d
mov edx, ebx
mov ecx, esi
call fcn.00464fc1
mov edx, dword [ebx + 4]
mov ecx, dword [edi + 0x10]
add edx, edx
mov esi, dword [ebx + 0xc]
mov dword [ebp - 0x54], eax
mov eax, dword [ecx + edx*8 + 4]
mov dword [ebp - 0x3c], eax
mov ecx, dword [eax + 4]
mov eax, dword [ecx]
mov dword [ebp - 0x34], eax
mov cl, byte [eax + 5]
mov byte [ebp - 0x4d], cl
movzx ecx, cl
mov dword [ebp - 0x18], ecx
cmp esi, 0xffffffff
je 0x49b17f
mov ecx, eax
call fcn.00480faf
test eax, eax
je 0x49b186
mov ecx, dword [ebp - 0x34]
mov edx, 1
call fcn.0048101f
cmp esi, 5
jne 0x4438d6
mov ecx, eax
call fcn.00455372
test eax, eax
je 0x49b18e
mov ecx, dword [ebp - 0x34]
call fcn.004803e3
test eax, eax
je 0x49b18e
mov eax, dword [ebp - 0x18]
cmp esi, eax
jne 0x49b196
mov eax, dword [ebp - 0x20]
test eax, eax
jne 0x49b20f
mov ecx, dword [ebp - 0x34]
mov edx, esi
call fcn.00480e8a
mov esi, dword [ebp - 0x54]
mov ecx, 0xa02
mov word [esi + 8], cx
mov ecx, eax
call fcn.00481190
mov ecx, eax
mov dword [esi + 0x10], eax
call fcn.00455372
movzx edx, byte [ebp - 0x60]
mov ecx, esi
mov dword [esi + 0xc], eax
mov byte [esi + 0xa], 1
call fcn.00480ca3
mov edx, dword [ebp - 0x20]
test edx, edx
je 0x441abb
jmp 0x49b5f7
cmp dword [ebx + 4], 0
jne 0x49b274
mov edx, dword [ebx + 8]
mov ecx, edi
call fcn.004612d9
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x58]
add ebx, 0x14
mov esi, dword [ebp - 0x2c]
jmp 0x441a2d
mov ecx, dword [edx + 0xc]
mov eax, dword [edx + 8]
add eax, ecx
mov dword [ebp - 0x30], eax
test ecx, ecx
je 0x49ae76
lea eax, [eax + eax*4]
lea eax, [eax + 0xa]
lea ecx, [ecx + eax*2]
mov eax, dword [edx + 4]
add eax, 7
cdq
and edx, 7
add eax, edx
sar eax, 3
lea eax, [eax + ecx*4]
mov ecx, edi
mov dword [ebp - 0x3c], eax
cdq
push edx
push eax
call fcn.0044aa5e
add esp, 8
mov dword [ebp - 0x48], eax
test eax, eax
je 0x499dd6
mov ecx, dword [ebp - 0x28]
call fcn.00481110
mov eax, dword [ebp - 0x28]
mov ecx, 0x410
mov edx, dword [ebp - 0x48]
sub ebx, dword [ebp - 0x14]
mov word [eax + 8], cx
mov ecx, dword [ebp - 0x3c]
mov dword [eax + 0xc], ecx
mov ecx, dword [ebp - 0x30]
mov dword [eax + 0x10], edx
mov dword [eax + 0x24], 0x45fd06
mov eax, dword [ebp - 0x18]
mov dword [edx + 0x3c], ecx
add ecx, 2
mov dword [edx], esi
mov eax, dword [eax + 0xc]
mov dword [edx + 0x40], eax
mov eax, 0x66666667
imul ebx
mov ebx, dword [ebp - 0x18]
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [ebp - 0x48]
mov dword [edx + 0x30], eax
mov eax, dword [esi + 0x58]
mov dword [edx + 0x10], eax
mov eax, dword [esi + 0x18]
mov dword [edx + 0x38], eax
mov eax, dword [esi + 0x60]
mov dword [edx + 0x14], eax
mov eax, dword [esi + 0x1c]
mov dword [edx + 0x2c], eax
mov eax, dword [esi + 0x68]
mov dword [edx + 8], eax
mov eax, dword [esi + 0x6c]
mov dword [edx + 0x34], eax
mov eax, dword [ebx + 0x14]
mov dword [edx + 0x1c], eax
lea eax, [ecx + ecx*4]
lea ecx, [edx + eax*8]
lea eax, [edx + 0x50]
cmp eax, ecx
je 0x443a56
jmp 0x443a40
mov esi, 0x80
mov dword [eax + 0x20], edi
mov word [eax + 8], si
add eax, 0x28
cmp eax, ecx
jne 0x443a40
mov esi, dword [ebp - 0x2c]
mov eax, dword [esi + 0xd0]
jmp 0x4431cb
mov eax, dword [ebx + 4]
mov edx, dword [ebp - 0x24]
mov esi, dword [ebp - 0x14]
lea ecx, [eax + eax*4]
mov eax, dword [edx + ecx*8]
lea eax, [eax + eax*4]
lea ebx, [esi + eax*4]
mov eax, 0x80
mov word [edx + ecx*8 + 8], ax
jmp 0x441abb
cmp dword [esi + 0xc8], 0
jne 0x499b16
mov ecx, dword [esi + 0x68]
mov eax, dword [ecx + 4]
cmp eax, dword [ebx + 4]
je 0x44208e
mov eax, dword [ecx + 4]
mov ecx, dword [ebp - 0x14]
mov dword [ebx + 4], eax
mov eax, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x58]
add ebx, 0x14
mov esi, dword [ebp - 0x2c]
jmp 0x441a2d
mov edx, dword [ebx + 4]
mov eax, dword [esi + 0x60]
push 0
mov ecx, dword [eax + edx*4]
test ecx, ecx
jne 0x49a355
push 0xffffffffffffffff
push dword [ebx + 8]
mov ecx, esi
call fcn.00441640
mov esi, eax
add esp, 0xc
test esi, esi
je 0x499dd3
or dword [esi + 8], 1
lea ecx, [esi + 0xc]
mov byte [esi + 2], 1
xor edx, edx
movzx eax, word [ebx + 2]
push 0x41e
or eax, 5
push eax
push ecx
mov ecx, dword [edi]
push edi
call fcn.0045d5fa
mov edx, eax
add esp, 0x10
mov dword [ebp - 0x20], edx
test edx, edx
jne 0x443b7d
mov ecx, dword [esi + 0xc]
lea edx, [eax + 1]
push eax
call fcn.00455da0
mov edx, eax
add esp, 4
mov dword [ebp - 0x20], edx
test edx, edx
jne 0x443b7d
mov eax, dword [ebx + 0x10]
mov ecx, dword [esi + 0xc]
mov dword [ebp - 0x3c], eax
mov dword [esi + 0x2c], eax
test eax, eax
je 0x49a36d
movzx eax, word [ebx + 2]
lea edx, [esi + 0x34]
or eax, 2
push eax
call fcn.00480835
mov edx, eax
add esp, 4
mov dword [ebp - 0x20], edx
test edx, edx
jne 0x443b79
push dword [esi + 0x28]
mov edx, dword [esi + 0x34]
push dword [ebp - 0x3c]
mov ecx, dword [esi + 0xc]
push 4
call fcn.00441560
mov edx, eax
add esp, 0xc
mov dword [ebp - 0x20], edx
mov byte [esi + 4], 0
cmp word [ebx + 2], 8
je 0x443bb6
mov ecx, 4
mov eax, dword [esi + 8]
and eax, 0xfffffffb
or eax, ecx
mov dword [esi + 8], eax
mov esi, dword [ebp - 0x2c]
test edx, edx
je 0x441abb
jmp 0x49be1c
cmp dword [edi + 0xb0], 1
jle 0x4421c4
jmp 0x4432cb
xor ecx, ecx
jmp 0x443b89
mov ecx, dword [edi + 0x150]
xor edx, edx
mov eax, dword [esi + 0xb4]
div ecx
sub ecx, edx
mov dword [ebp - 0x88], ecx
jmp 0x4419e2
mov eax, dword [ebx + 4]
mov ecx, ebx
mov edi, dword [ebp - 0x24]
sub ecx, dword [ebp - 0x14]
lea esi, [eax + eax*4]
mov eax, 4
mov word [edi + esi*8 + 8], ax
mov eax, 0x66666667
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cdq
mov dword [edi + esi*8], eax
mov dword [edi + esi*8 + 4], edx
jmp 0x44208e
mov eax, dword [ebx + 4]
mov esi, dword [ebp - 0x24]
lea ecx, [eax + eax*4]
mov eax, dword [ebx + 0xc]
dec eax
cdq
mov dword [esi + ecx*8], eax
mov eax, 4
mov dword [esi + ecx*8 + 4], edx
mov word [esi + ecx*8 + 8], ax
cmp dword [ebx + 8], 0
jne 0x44208e
jmp 0x441abb
mov eax, dword [ebx + 4]
mov edx, dword [ebp - 0x24]
mov ebx, dword [ebp - 0x14]
lea ecx, [eax + eax*4]
mov eax, dword [edx + ecx*8]
lea eax, [eax + eax*4]
mov eax, dword [ebx + eax*4 + 8]
lea eax, [eax + eax*4]
lea ebx, [ebx + eax*4]
add ebx, 0xffffffec
jmp 0x443a76
mov eax, dword [ebx + 4]
mov edi, dword [ebp - 0x24]
sub ebx, dword [ebp - 0x14]
lea esi, [eax + eax*4]
mov eax, 4
mov ecx, dword [edi + esi*8]
mov word [edi + esi*8 + 8], ax
mov eax, 0x66666667
imul ebx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cdq
mov dword [edi + esi*8], eax
lea eax, [ecx + ecx*4]
mov ecx, dword [ebp - 0x14]
mov dword [edi + esi*8 + 4], edx
lea ebx, [ecx + eax*4]
jmp case.0x441a43.86
mov edx, dword [esi + 0x68]
lea eax, [ecx + ecx*4]
mov dword [ebp - 0x14], edx
mov ecx, dword [edx + eax*4 + 8]
dec ecx
jmp 0x443148
mov edx, ebx
mov ecx, esi
call fcn.00464fc1
mov ecx, eax
mov eax, 8
mov word [ecx + 8], ax
mov eax, dword [ebx + 0x10]
fld qword [eax]
fstp qword [ecx]
jmp 0x441abb
mov edx, dword [ebx + 0x10]
mov ecx, esi
push 0
push 1
push 0xffffffffffffffff
call fcn.0043ea70
add esp, 0xc
mov dword [ebp - 0x20], eax
test eax, eax
jne 0x49bd37
movzx edx, byte [ebp - 0x60]
mov ecx, esi
call fcn.00480ca3
test eax, eax
jne 0x499dd3
mov dword [esi + 0x18], eax
mov eax, 0x800
or word [esi + 8], ax
cmp byte [ebx + 1], 0xf9
jne 0x498fb2
mov edx, dword [ebx + 0x10]
mov ecx, edi
call fcn.00508acb
mov byte [ebx + 1], 0xf9
mov eax, dword [esi + 0x10]
mov dword [ebx + 0x10], eax
mov eax, dword [esi + 0xc]
mov dword [ebx + 4], eax
jmp 0x4434c8
mov edi, dword [ebp - 0x24]
lea ecx, [eax + eax*4]
movzx eax, word [ebx + 2]
cdq
cmp dword [edi + ecx*8], eax
jne 0x441abb
cmp dword [edi + ecx*8 + 4], edx
jne 0x441abb
mov eax, 0xa10
mov word [esi + 8], ax
jmp 0x441abb
mov edi, 0x101
jmp 0x442f84
mov eax, dword [ebx + 4]
mov esi, 0xff61
mov edx, dword [ebp - 0x24]
lea ecx, [eax + eax*4]
mov ax, word [edx + ecx*8 + 8]
and ax, si
or ax, 1
jmp 0x443a7b
mov edx, ebx
mov ecx, esi
call fcn.00464fc1
mov edx, dword [ebx + 0x10]
mov esi, eax
push 0
push 0
push dword [ebx + 4]
mov ecx, esi
call fcn.0043ea70
mov al, byte [ebp - 0x60]
add esp, 0xc
mov byte [esi + 0xa], al
jmp 0x441abb
mov ecx, esi
call fcn.0045ea00
jmp 0x441a84
mov eax, dword [ebx + 0xc]
mov edx, dword [ebp - 0x24]
mov dword [ebp - 0x30], eax
mov eax, dword [ebx + 4]
lea eax, [eax + eax*4]
lea ecx, [edx + eax*8]
mov eax, dword [ebx + 8]
mov dword [ebp - 0x28], ecx
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
mov dword [ebp - 0x18], eax
mov edx, ecx
mov ecx, eax
call fcn.0050e07a
mov eax, dword [ebp - 0x18]
mov ecx, 0x1000
test word [eax + 8], cx
je 0x49909c
mov ecx, eax
call fcn.00477924
test eax, eax
jne 0x499dd6
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x28]
add eax, 0x28
add ecx, 0x28
mov dword [ebp - 0x18], eax
sub dword [ebp - 0x30], 1
mov dword [ebp - 0x28], ecx
jne 0x499073
jmp 0x441abb
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x30]
add eax, 0x28
add ecx, 0x28
jmp 0x44269b
mov eax, dword [ebx + 4]
mov esi, dword [ebp - 0x24]
lea eax, [eax + eax*4]
lea edx, [esi + eax*8]
mov eax, dword [ebx + 8]
mov dword [ebp - 0x34], edx
lea eax, [eax + eax*4]
lea ecx, [esi + eax*8]
mov eax, dword [ebx + 0xc]
mov dword [ebp - 0x4c], ecx
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
movzx eax, word [edx + 8]
mov dword [ebp - 0x18], eax
mov al, byte [ecx + 8]
or al, byte [ebp - 0x18]
test al, 1
jne 0x49921f
movzx eax, word [edx + 8]
test eax, 0x4000
je 0x499120
mov ecx, edx
call fcn.0050df35
test eax, eax
jne 0x499dd3
mov ecx, dword [ebp - 0x4c]
mov edx, dword [ebp - 0x34]
mov eax, 0x4000
test word [ecx + 8], ax
je 0x49913e
call fcn.0050df35
test eax, eax
jne 0x499dd3
mov ecx, dword [ebp - 0x4c]
mov edx, dword [ebp - 0x34]
test byte [edx + 8], 0x12
jne 0x499162
mov dl, byte [ebp - 0x60]
mov ecx, dword [ebp - 0x34]
push 0
call fcn.00449f47
add esp, 4
test eax, eax
jne 0x499dd3
mov ecx, dword [ebp - 0x4c]
mov edx, dword [ebp - 0x34]
test byte [ecx + 8], 0x12
jne 0x499180
mov dl, byte [ebp - 0x60]
push 0
call fcn.00449f47
add esp, 4
test eax, eax
jne 0x499dd3
mov edx, dword [ebp - 0x34]
mov ecx, dword [edx + 0xc]
mov edx, dword [ebp - 0x4c]
add ecx, dword [edx + 0xc]
mov dword [ebp - 0x18], ecx
cmp ecx, dword [edi + 0x6c]
jg 0x49bd37
xor eax, eax
cmp esi, edx
lea edx, [ecx + 2]
mov ecx, esi
sete al
push eax
call fcn.00441430
add esp, 4
test eax, eax
jne 0x499dd3
mov ax, word [esi + 8]
mov ecx, 0x3e20
mov edi, dword [ebp - 0x4c]
and ax, cx
or ax, 2
mov word [esi + 8], ax
cmp esi, edi
je 0x4991de
push dword [edi + 0xc]
push dword [edi + 0x10]
push dword [esi + 0x10]
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [ebp - 0x34]
push dword [eax + 0xc]
push dword [eax + 0x10]
mov eax, dword [esi + 0x10]
add eax, dword [edi + 0xc]
push eax
call sub.VCRUNTIME140.dll_memcpy
mov eax, dword [esi + 0x10]
add esp, 0xc
mov ecx, dword [ebp - 0x18]
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 - 0x60]
mov dword [esi + 0xc], ecx
mov byte [esi + 0xa], al
jmp 0x441abb
mov ecx, esi
call fcn.0045ea00
jmp 0x441abb
mov eax, dword [ebx + 4]
mov esi, dword [ebp - 0x24]
lea eax, [eax + eax*4]
lea edi, [esi + eax*8]
mov ecx, edi
mov dword [ebp - 0x30], edi
call fcn.005008b1
movzx eax, ax
mov dword [ebp - 0x28], eax
mov eax, dword [ebx + 8]
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
mov ecx, eax
mov dword [ebp - 0x48], eax
call fcn.005008b1
movzx edx, ax
mov eax, dword [ebx + 0xc]
mov dword [ebp - 0x64], edx
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
mov eax, dword [ebp - 0x48]
mov ax, word [eax + 8]
or ax, word [edi + 8]
movzx ecx, ax
mov al, dl
and al, byte [ebp - 0x28]
test al, 4
je 0x4993b2
mov ecx, dword [edi]
mov edx, dword [edi + 4]
mov edi, dword [ebp - 0x48]
mov byte [ebp - 0x4d], 1
mov eax, dword [edi]
mov edi, dword [edi + 4]
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x98], eax
movzx eax, byte [ebx]
add eax, 0xffffff9c
mov dword [ebp - 0x94], edi
cmp eax, 3
ja case.default.0x4992b3
jmp dword [eax*4 + 0x49bef9]
push edx
push ecx
lea ecx, [ebp - 0x98]
call fcn.00505fb0
add esp, 8
test eax, eax
je 0x499388
mov edi, dword [ebp - 0x30]
mov ecx, edi
call fcn.004749b0
mov ecx, dword [ebp - 0x48]
fstp qword [ebp - 0x40]
call fcn.004749b0
movzx eax, byte [ebx]
add eax, 0xffffff9c
cmp eax, 3
ja case.default.0x4992f6
jmp dword [eax*4 + 0x49bf09]
push edx
push ecx
lea ecx, [ebp - 0x98]
call fcn.0050c78e
add esp, 8
test eax, eax
je 0x499388
jmp 0x4992d2
push edx
push ecx
lea ecx, [ebp - 0x98]
call fcn.0050ac90
add esp, 8
test eax, eax
je 0x499388
jmp 0x4992d2
mov eax, ecx
or eax, edx
je 0x4994a5
mov eax, ecx
and eax, edx
cmp eax, 0xffffffff
mov eax, dword [ebp - 0x18]
jne 0x49934b
test eax, eax
jne 0x49934b
cmp edi, 0x80000000
je 0x4992d2
push edx
push ecx
push edi
push eax
call fcn.00483410
jmp 0x49937c
mov eax, ecx
or eax, edx
je 0x4994a5
mov eax, ecx
and eax, edx
cmp eax, 0xffffffff
jne 0x499370
mov ecx, 1
xor edx, edx
mov eax, dword [ebp - 0x18]
push edx
push ecx
push edi
push eax
call fcn.004835e0
mov dword [ebp - 0x94], edx
mov dword [ebp - 0x98], eax
mov eax, dword [ebp - 0x98]
mov ecx, dword [ebp - 0x94]
mov dword [esi], eax
mov ax, word [esi + 8]
mov dword [esi + 4], ecx
mov ecx, 0x3e20
and ax, cx
or ax, 4
mov word [esi + 8], ax
jmp 0x441abb
test cl, 1
jne 0x4994a5
mov byte [ebp - 0x4d], 0
jmp 0x4992d5
fadd qword [ebp - 0x40]
jmp 0x49944f
fsub qword [ebp - 0x40]
jmp 0x49944f
fmul qword [ebp - 0x40]
jmp 0x49944f
fld qword [ebp - 0x40]
fld qword [ebp - 0x178]
fucomp st(1)
fnstsw ax
test ah, 0x44
jnp 0x4994a1
fdivp st(1)
jmp 0x49944f
mov ecx, edi
fstp st(0)
call fcn.004713e9
mov ecx, dword [ebp - 0x48]
mov edi, eax
mov dword [ebp - 0x18], edx
call fcn.004713e9
mov dword [ebp - 0x98], eax
mov ecx, edi
mov eax, dword [ebp - 0x18]
or ecx, eax
mov dword [ebp - 0x94], edx
je 0x4994a5
mov ecx, edi
and ecx, eax
cmp ecx, 0xffffffff
jne 0x49942f
mov edi, 1
xor eax, eax
push eax
push edi
push edx
push dword [ebp - 0x98]
call fcn.004835e0
mov dword [ebp - 0x128], eax
mov dword [ebp - 0x124], edx
fild qword [ebp - 0x128]
sub esp, 8
fst qword [ebp - 0x40]
fstp qword [esp]
call fcn.0045e9d7
add esp, 8
test eax, eax
jne 0x4994a5
mov ax, word [esi + 8]
mov ecx, 0x3e20
fld qword [ebp - 0x40]
and ax, cx
or ax, 8
mov word [esi + 8], ax
mov eax, dword [ebp - 0x64]
or al, byte [ebp - 0x28]
fstp qword [esi]
test al, 8
jne 0x441abb
cmp byte [ebp - 0x4d], 0
jne 0x441abb
mov ecx, esi
call fcn.004644a8
jmp 0x441abb
fstp st(1)
fstp st(0)
mov ecx, esi
call fcn.0045ea00
jmp 0x441abb
mov ecx, dword [ebp - 0x24]
lea eax, [eax + eax*4]
push 0
push 0
lea ecx, [ecx + eax*8]
call fcn.00463d80
add esp, 8
jmp 0x441abb
mov eax, dword [ebx + 4]
mov edx, dword [ebp - 0x24]
lea eax, [eax + eax*4]
lea esi, [edx + eax*8]
mov eax, dword [ebx + 8]
lea eax, [eax + eax*4]
lea ecx, [edx + eax*8]
mov eax, dword [ebx + 0xc]
lea eax, [eax + eax*4]
lea edx, [edx + eax*8]
mov al, byte [ecx + 8]
or al, byte [esi + 8]
mov dword [ebp - 0x30], edx
test al, 1
je 0x499502
mov ecx, edx
call fcn.0045ea00
jmp 0x441abb
call fcn.004713e9
mov ecx, esi
mov dword [ebp - 0x4c], eax
mov edi, edx
call fcn.004713e9
mov cl, byte [ebx]
mov esi, eax
cmp cl, 0x60
jne 0x499528
mov eax, dword [ebp - 0x4c]
and eax, esi
and edi, edx
jmp 0x4995e3
cmp cl, 0x61
jne 0x499539
mov eax, dword [ebp - 0x4c]
or eax, esi
or edi, edx
jmp 0x4995e3
mov eax, esi
or eax, edx
je 0x4995e0
test edx, edx
jg 0x499571
jl 0x49954d
test esi, esi
jae 0x499566
mov al, 0xc5
sub al, cl
mov cl, al
cmp edx, 0xffffffff
jl 0x499571
jg 0x49955f
cmp esi, 0xffffffc0
jbe 0x499571
neg esi
adc edx, 0
neg edx
test edx, edx
jl 0x49958f
jg 0x499571
cmp esi, 0x40
jb 0x49958f
test edi, edi
jg 0x499589
jl 0x49957d
cmp dword [ebp - 0x4c], 0
jae 0x499589
cmp cl, 0x62
je 0x499589
or eax, 0xffffffff
or edi, eax
jmp 0x4995e3
xor eax, eax
xor edi, edi
jmp 0x4995e3
mov eax, dword [ebp - 0x4c]
cmp cl, 0x62
mov edx, edi
mov ecx, esi
jne 0x4995a4
call fcn.004836a0
mov ecx, eax
jmp 0x4995da
call fcn.00483850
mov dword [ebp - 0x18], edx
mov ecx, eax
mov dword [ebp - 0x28], ecx
test edi, edi
jg 0x4995da
jl 0x4995bd
cmp dword [ebp - 0x4c], 0
jae 0x4995da
mov ecx, 0x40
or eax, 0xffffffff
sub ecx, esi
or edx, 0xffffffff
call fcn.004836a0
mov ecx, dword [ebp - 0x28]
or ecx, eax
or dword [ebp - 0x18], edx
mov edx, dword [ebp - 0x18]
mov eax, ecx
mov edi, edx
jmp 0x4995e3
mov eax, dword [ebp - 0x4c]
mov ecx, dword [ebp - 0x30]
mov edx, 0x3e20
mov dword [ecx], eax
mov ax, word [ecx + 8]
and ax, dx
mov dword [ecx + 4], edi
or ax, 4
mov word [ecx + 8], ax
jmp 0x441abb
mov eax, dword [ebx + 4]
mov ecx, dword [ebp - 0x24]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov ecx, esi
call fcn.0050e055
mov eax, dword [ebx + 8]
cdq
add dword [esi], eax
adc dword [esi + 4], edx
jmp 0x441abb
mov eax, dword [ebx + 4]
mov ecx, dword [ebp - 0x24]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov dword [ebp - 0x18], eax
movzx eax, word [eax + 8]
mov ecx, eax
test al, 4
jne 0x499672
push dword [ebp - 0x60]
mov ecx, dword [ebp - 0x18]
mov dl, 0x43
call fcn.00441790
mov eax, dword [ebp - 0x18]
add esp, 4
movzx eax, word [eax + 8]
mov ecx, eax
test al, 4
jne 0x499672
cmp dword [ebx + 8], 0
jne 0x44208e
mov edx, 0x14
mov dword [ebp - 0x20], edx
jmp 0x49be1c
mov eax, dword [ebp - 0x18]
and ecx, 0x3e20
or ecx, 4
mov word [eax + 8], cx
jmp 0x441abb
mov eax, dword [ebx + 4]
mov ecx, dword [ebp - 0x24]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov ecx, 0x4000
test word [eax + 8], cx
mov ecx, eax
mov dword [ebp - 0x18], eax
je 0x4996cc
call fcn.0050df35
push dword [ebp - 0x60]
mov dl, byte [ebx + 8]
mov ecx, dword [ebp - 0x18]
mov dword [ebp - 0x20], eax
call fcn.0050de6b
mov edx, dword [ebp - 0x20]
add esp, 4
test edx, edx
jne 0x49be19
jmp 0x441abb
push dword [ebp - 0x10c]
mov dl, byte [ebx + 8]
mov dword [ebp - 0x20], 0
call fcn.0050de6b
add esp, 4
jmp 0x441abb
movzx eax, word [ebx + 2]
test al, al
jns 0x49974a
and ecx, dword [ebp - 0x38]
xor eax, eax
bt cx, ax
mov eax, 8
setb cl
bt si, ax
setae al
test al, cl
je 0x499729
mov eax, dword [ebp - 0x18]
xor ecx, ecx
movzx edx, byte [ebx]
movzx eax, ax
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x28]
movzx eax, ax
mov dword [ebp - 0x44], eax
jmp 0x443528
test byte [ebp - 0x44], 1
je 0x499740
movzx edx, byte [ebx]
or ecx, 0xffffffff
mov al, byte [edx + 0x411f98]
jmp 0x4433ed
mov ecx, 1
jmp 0x4433b2
test al, 0x20
je 0x499777
mov eax, dword [ebx + 8]
mov esi, 0x3e20
mov edx, dword [ebp - 0x24]
mov dword [ebp - 0x8c], 1
lea ecx, [eax + eax*4]
mov ax, word [edx + ecx*8 + 8]
and ax, si
or ax, 1
jmp 0x443a7b
test al, 0x10
jne 0x44208e
jmp 0x441abb
test byte [ebp - 0x30], 2
movzx ecx, word [edx + 8]
je 0x4997cb
mov al, byte [ebp - 0x38]
and al, 0xe
cmp al, 2
jne 0x4997ae
mov ecx, dword [ebp - 0x4c]
xor edx, edx
call fcn.004f8028
mov edx, dword [ebp - 0x34]
movzx eax, word [edx + 8]
mov dword [ebp - 0x44], eax
mov si, ax
mov al, byte [ebp - 0x44]
and al, 0xe
movzx ecx, si
cmp al, 2
jne 0x4997cb
mov ecx, dword [ebp - 0x34]
xor edx, edx
call fcn.004f8028
mov edx, dword [ebp - 0x34]
movzx ecx, word [edx + 8]
mov eax, dword [ebp - 0x4c]
mov al, byte [eax + 8]
and al, cl
test al, 4
je 0x44339f
mov eax, dword [ebp - 0x4c]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [ebp - 0x30], eax
cmp dword [edx + 4], eax
jl 0x499800
jg 0x4997f3
mov eax, dword [edx]
cmp eax, ecx
jbe 0x499802
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x4433e7
mov eax, dword [edx]
mov edx, dword [edx + 4]
cmp edx, dword [ebp - 0x30]
jg 0x49981b
jl 0x499810
cmp eax, ecx
jae 0x49981b
movzx edx, byte [ebx]
or ecx, 0xffffffff
jmp 0x499735
movzx edx, byte [ebx]
xor ecx, ecx
jmp 0x443530
test byte [ebp - 0x38], 0xc
mov eax, 1
setne cl
bt di, ax
setae al
test al, cl
je 0x499861
mov dl, byte [ebp - 0x60]
mov ecx, dword [ebp - 0x4c]
push 1
call fcn.00449f47
mov eax, dword [ebp - 0x4c]
mov ecx, 0x3e20
add esp, 4
mov ax, word [eax + 8]
xor ax, di
and ax, cx
xor di, ax
test byte [ebp - 0x44], 0xc
mov eax, 1
setne cl
bt si, ax
setae al
test al, cl
je 0x44339f
mov dl, byte [ebp - 0x60]
mov ecx, dword [ebp - 0x34]
push 1
call fcn.00449f47
mov eax, dword [ebp - 0x34]
mov ecx, 0x3e20
add esp, 4
mov ax, word [eax + 8]
xor ax, si
and ax, cx
xor si, ax
jmp 0x44339f
mov eax, dword [ebx + 8]
mov dword [ebp - 0x8c], ecx
lea esi, [eax + eax*4]
movzx eax, word [ebx + 2]
test al, 8
je 0x4998ca
xor eax, eax
cmp byte [ebx], 0x35
sete al
cmp eax, edx
je 0x441abb
mov edi, dword [ebp - 0x24]
mov eax, 0x3e20
mov cx, word [edi + esi*8 + 8]
and cx, ax
mov eax, edx
cdq
or cx, 4
mov word [edi + esi*8 + 8], cx
mov dword [edi + esi*8], eax
mov dword [edi + esi*8 + 4], edx
jmp 0x441abb
cmp dword [ebp - 0x8c], 0
jne 0x442091
jmp case.0x441a43.86
test byte [ebx + 2], 1
jne 0x49990e
xor esi, esi
jmp 0x499914
mov esi, dword [ebx - 4]
add esi, 4
mov ecx, dword [ebx + 4]
xor edx, edx
mov eax, dword [ebx + 0xc]
mov edi, dword [ebx + 0x10]
mov dword [ebp - 0x64], ecx
mov ecx, dword [ebx + 8]
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x48], ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x441abb
lea ecx, [edi + 0x14]
mov dword [ebp - 0x30], ecx
test esi, esi
je 0x499948
mov eax, dword [esi + edx*4]
mov dword [ebp - 0x18], eax
jmp 0x49994b
mov dword [ebp - 0x18], edx
mov eax, dword [edi + 0x10]
push dword [ecx]
mov ecx, dword [ebp - 0x24]
mov al, byte [edx + eax]
mov edx, dword [ebp - 0x24]
mov byte [ebp - 0x4d], al
mov eax, dword [ebp - 0x48]
add eax, dword [ebp - 0x18]
lea eax, [eax + eax*4]
lea edx, [edx + eax*8]
mov eax, dword [ebp - 0x64]
add eax, dword [ebp - 0x18]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
call fcn.00474550
add esp, 4
mov dword [ebp - 0x8c], eax
test eax, eax
jne 0x4999a0
mov edx, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x30]
inc edx
add ecx, 4
mov dword [ebp - 0x28], edx
mov dword [ebp - 0x30], ecx
cmp edx, dword [ebp - 0x34]
jl 0x49993c
jmp 0x441abb
cmp byte [ebp - 0x4d], 0
je 0x441abb
neg eax
mov dword [ebp - 0x8c], eax
jmp 0x441abb
mov eax, dword [ebp - 0x8c]
test eax, eax
jns 0x4999c6
mov eax, dword [ebx + 4]
jmp 0x4999d0
jne 0x4999cd
mov eax, dword [ebx + 8]
jmp 0x4999d0
mov eax, dword [ebx + 0xc]
lea eax, [eax + eax*4]
lea ebx, [ecx + eax*4]
add ebx, 0xffffffec
jmp case.0x441a43.86
mov eax, dword [ebx + 4]
mov edx, 2
mov edi, dword [ebp - 0x24]
lea eax, [eax + eax*4]
lea ecx, [edi + eax*8]
call fcn.0050d71b
mov ecx, dword [ebx + 8]
mov edx, 2
mov esi, eax
lea ecx, [ecx + ecx*4]
lea ecx, [edi + ecx*8]
call fcn.0050d71b
cmp byte [ebx], 0x2c
lea eax, [eax + esi*2]
jne 0x499a1a
mov dl, byte [esi + eax + 0x40faf4]
jmp 0x499a21
mov dl, byte [esi + eax + 0x4105bc]
mov eax, dword [ebx + 0xc]
mov ecx, 0x3e20
lea esi, [eax + eax*4]
mov ax, word [edi + esi*8 + 8]
and ax, cx
movzx ecx, ax
cmp dl, 2
jne 0x499a41
or ecx, 1
jmp 0x499a4f
movzx eax, dl
or ecx, 4
cdq
mov dword [edi + esi*8], eax
mov dword [edi + esi*8 + 4], edx
movzx eax, cx
mov word [edi + esi*8 + 8], ax
jmp 0x441abb
mov eax, dword [ebx + 4]
mov esi, dword [ebp - 0x24]
mov edx, dword [ebx + 0xc]
lea eax, [eax + eax*4]
lea ecx, [esi + eax*8]
call fcn.0050d71b
xor eax, dword [ebx + 0x10]
cdq
push edx
push eax
mov eax, dword [ebx + 8]
lea eax, [eax + eax*4]
lea ecx, [esi + eax*8]
call fcn.00463d80
add esp, 8
jmp 0x441abb
mov eax, dword [ebx + 4]
mov edx, dword [ebp - 0x24]
lea eax, [eax + eax*4]
test byte [edx + eax*8 + 8], 1
lea ecx, [edx + eax*8]
mov eax, dword [ebx + 8]
lea eax, [eax + eax*4]
lea esi, [edx + eax*8]
jne 0x49921f
xor edx, edx
call fcn.0050d71b
test eax, eax
jne 0x499abe
mov eax, 1
jmp 0x499ac0
xor eax, eax
push 0
push eax
mov ecx, esi
call fcn.00463d80
add esp, 8
jmp 0x441abb
mov eax, dword [ebx + 4]
mov ecx, dword [ebp - 0x24]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov eax, dword [ebx + 8]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov ecx, esi
call fcn.0045ea00
test byte [edi + 8], 1
jne 0x441abb
mov eax, 4
mov ecx, edi
mov word [esi + 8], ax
call fcn.004713e9
not eax
not edx
mov dword [esi], eax
mov dword [esi + 4], edx
jmp 0x441abb
mov ecx, ebx
mov eax, 0x66666667
sub ecx, dword [esi + 0x68]
imul ecx
mov eax, dword [esi + 0xc8]
sar edx, 3
mov ecx, edx
shr ecx, 0x1f
mov eax, dword [eax + 0x18]
add ecx, edx
mov edi, ecx
mov dword [ebp - 0x18], eax
shr edi, 3
and ecx, 7
movzx edx, byte [edi + eax]
mov eax, 1
shl eax, cl
test edx, eax
jne 0x44208e
mov eax, dword [ebp - 0x18]
bts edx, ecx
mov byte [edi + eax], dl
mov ecx, dword [esi + 0x68]
jmp 0x443aa1
mov eax, dword [ebx + 4]
mov ecx, dword [ebp - 0x24]
mov edx, dword [ebx + 0xc]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
call fcn.0050d71b
test eax, eax
jne 0x44208e
jmp 0x441abb
mov eax, dword [ebx + 4]
xor edx, edx
mov ecx, dword [ebp - 0x24]
cmp dword [ebx + 0xc], edx
lea eax, [eax + eax*4]
sete dl
lea ecx, [ecx + eax*8]
call fcn.0050d71b
test eax, eax
jne 0x441abb
jmp 0x44208e
mov eax, dword [ebx + 4]
mov ecx, dword [ebp - 0x24]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 8], 1
mov ecx, dword [ebp - 0x14]
je 0x442091
jmp case.0x441a43.86
mov ecx, dword [ebx + 4]
mov eax, dword [esi + 0x60]
mov eax, dword [eax + ecx*4]
cmp byte [eax + 2], 0
je 0x441abb
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebp - 0x24]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
call fcn.0045ea00
jmp 0x44208e
mov eax, dword [ebp - 0x38]
mov edx, eax
call fcn.00474b9a
mov edx, dword [ebp - 0x38]
jmp 0x442845
mov dword [ecx + 0x4c], 0
mov eax, dword [ebp - 0x5c]
mov dword [eax + 0x54], 0
mov eax, dword [edx]
cmp eax, 0x18003
ja 0x499ca4
mov ecx, dword [ebp - 0x5c]
mov dword [ebp - 0x28], ecx
cmp eax, dword [ecx + 0x50]
jbe 0x442479
jmp 0x499ca4
xor eax, eax
lea edi, [ebp - 0x220]
mov ecx, 0xa
rep stosd dword es:[edi], eax
mov ecx, dword [ebp - 0x28]
lea eax, [ebp - 0x220]
push eax
push dword [edx]
xor edx, edx
mov ecx, dword [ecx + 0x28]
call fcn.0050df80
mov edx, eax
add esp, 8
mov dword [ebp - 0x20], edx
test edx, edx
jne 0x49b5f4
mov edx, dword [ebp - 0x38]
mov eax, dword [ebp - 0x210]
mov ecx, dword [ebp - 0x5c]
mov dword [ebp - 0x48], eax
mov eax, dword [edx]
mov dword [ebp - 0x18], eax
jmp 0x44256d
cmp dword [edx], 0
jne 0x499c93
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x64], 0
jmp 0x4424bf
cmp dword [ecx + 0x4c], 0
jne 0x499ca4
lea ecx, [ebp - 0x220]
call fcn.00481110
mov ecx, dword [ebp - 0x14]
mov eax, dword [ecx + 0xc]
test eax, eax
jle 0x49bb5f
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea ebx, [ecx + eax*4]
jmp case.0x441a43.86
lea ecx, [ebp - 0x220]
call fcn.00481110
mov ecx, dword [ebp - 0x5c]
mov edx, dword [ebp - 0x38]
jmp 0x4424e2
mov dword [ebp - 0x6c], 0
jmp 0x4424e2
cmp byte [ebx + 1], 0xf5
mov ecx, esi
jne 0x499221
mov edx, dword [ebx + 0x10]
push 0x800
call fcn.004413d0
add esp, 4
jmp 0x441abb
mov ecx, esi
call fcn.0045ea00
mov ecx, dword [ebp - 0x5c]
mov edx, dword [ebp - 0x38]
jmp 0x442504
mov al, byte [ebp - 0x60]
mov byte [esi + 0xa], al
movzx eax, word [ebx + 2]
mov edx, dword [ebp - 0x6c]
test al, 0xc0
je 0x499d34
cmp edx, 0xc
jb 0x499d30
test dl, 1
je 0x499d42
test al, al
js 0x499d42
mov ecx, edx
call fcn.004778b6
test eax, eax
jne 0x499d55
mov edx, dword [ebp - 0x6c]
push esi
mov ecx, 0x546af0
call fcn.0045e53c
add esp, 4
jmp 0x441abb
mov edx, dword [ebp - 0x84]
mov ecx, dword [ebp - 0x5c]
push esi
push eax
mov eax, dword [ebp - 0x38]
mov ecx, dword [ecx + 0x28]
mov edx, dword [eax + edx*4]
call fcn.0050df80
mov edx, eax
add esp, 8
mov dword [ebp - 0x20], edx
test edx, edx
jne 0x49b5f7
mov edx, dword [ebp - 0x6c]
mov ecx, dword [esi + 0x10]
push esi
call fcn.0045e53c
mov eax, 0xefff
add esp, 4
and word [esi + 8], ax
jmp 0x441abb
test eax, eax
jne 0x499dbd
mov edx, dword [ebp - 0xa0]
xor ecx, ecx
add edx, dword [ebp - 0x74]
mov eax, 0xa
mov dword [ebp - 0x38], edx
adc ecx, dword [ebp - 0x3c]
mov dword [ebp - 0x34], ecx
jmp 0x441d19
mov eax, dword [ebp - 0x38]
or eax, dword [ebp - 0x34]
je 0x499df8
mov ecx, esi
call fcn.0050df35
test eax, eax
je 0x499e09
mov edi, dword [ebp - 0x58]
mov esi, dword [ebp - 0x2c]
mov ecx, edi
call fcn.0050ae7e
push 0x40bf94
push esi
call fcn.0050d74c
mov edx, 7
add esp, 8
mov dword [ebp - 0x20], edx
jmp 0x49be1c
mov ecx, dword [esi]
mov eax, ecx
cdq
add dword [ebp - 0x18], eax
adc dword [ebp - 0x28], edx
sub dword [ebp - 0xa0], ecx
mov eax, dword [ebp - 0x48]
jmp 0x441d00
mov eax, ecx
cdq
push edx
push eax
call fcn.0045872f
mov esi, eax
mov eax, dword [ebp - 0x44]
add eax, esi
mov dword [ebp - 0x44], eax
cdq
push edx
push eax
call fcn.0045872f
mov ecx, dword [ebp - 0x44]
add esp, 0x10
cmp esi, eax
jge 0x441d45
jmp 0x441d41
push dword [ebp - 0x3c]
mov ecx, ebx
push dword [ebp - 0x54]
call fcn.004715aa
mov ecx, dword [ebp - 0x44]
add esp, 8
jmp 0x441dc9
mov eax, 0x4010
mov dword [ecx], edx
mov word [ecx + 8], ax
jmp 0x441abb
mov ecx, dword [ebx + 4]
lea edx, [ebp - 0xf0]
mov eax, dword [esi + 0x60]
mov eax, dword [eax + ecx*4]
mov ecx, dword [eax + 0x28]
mov dword [ebp - 0xf0], 0
mov dword [ebp - 0xec], 0
call fcn.00507761
mov edx, eax
mov dword [ebp - 0x20], edx
test edx, edx
jne 0x49be1c
mov edx, ebx
mov ecx, esi
call fcn.00464fc1
mov ecx, dword [ebp - 0xf0]
mov edx, dword [ebp - 0xec]
mov dword [eax], ecx
mov dword [eax + 4], edx
jmp 0x441abb
mov eax, dword [ebx + 4]
mov ecx, dword [ebx + 0x10]
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x18], ecx
test eax, eax
jne 0x499f8d
cmp dword [edi + 0xb4], eax
jg 0x49bb73
call fcn.00455372
mov ecx, dword [edi + 0x1d0]
xor edx, edx
add ecx, dword [edi + 0x1cc]
push ecx
mov ecx, edi
mov dword [ebp - 0x28], eax
call fcn.00453ce1
mov edx, eax
add esp, 4
mov dword [ebp - 0x20], edx
test edx, edx
jne 0x49be1c
mov eax, dword [ebp - 0x28]
mov ecx, edi
add eax, 0x21
push edx
push eax
call fcn.004584c7
mov esi, eax
add esp, 8
test esi, esi
je 0x441abb
mov ecx, dword [ebp - 0x28]
lea edx, [esi + 0x20]
inc ecx
mov dword [esi], edx
push ecx
push dword [ebp - 0x18]
push edx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
cmp byte [edi + 0x4f], 0
je 0x499f4f
mov byte [edi + 0x4f], 0
mov byte [edi + 0x57], 1
jmp 0x499f55
inc dword [edi + 0x1cc]
mov eax, dword [edi + 0x1c4]
mov dword [esi + 0x18], eax
mov eax, dword [edi + 0x1d8]
mov ecx, dword [edi + 0x1dc]
mov dword [edi + 0x1c4], esi
mov dword [esi + 8], eax
mov dword [esi + 0xc], ecx
mov eax, dword [edi + 0x1e0]
mov ecx, dword [edi + 0x1e4]
mov dword [esi + 0x10], eax
mov dword [esi + 0x14], ecx
jmp 0x441abb
mov eax, dword [edi + 0x1c4]
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x38], eax
test eax, eax
je 0x499fc1
mov edx, ecx
mov ecx, dword [eax]
call fcn.0044c1e2
test eax, eax
je 0x499fda
mov eax, dword [ebp - 0x38]
inc dword [ebp - 0x34]
mov ecx, dword [ebp - 0x18]
mov eax, dword [eax + 0x18]
mov dword [ebp - 0x38], eax
test eax, eax
jne 0x499fa1
push ecx
push 0x40bd78
push esi
call fcn.0050d74c
add esp, 0xc
mov edx, 1
jmp 0x499df0
cmp dword [edi + 0xb4], 0
mov eax, dword [ebp - 0x44]
jle 0x499ff5
cmp eax, 1
jne 0x499ff5
push 0x40be0c
jmp 0x49bd99
mov edx, dword [ebp - 0x38]
cmp dword [edx + 0x18], 0
jne 0x49a047
cmp byte [edi + 0x57], 0
je 0x49a047
mov dword [ebp - 0x30], 1
cmp eax, 1
jne 0x49a04e
mov edx, eax
mov ecx, esi
call fcn.00472884
mov dword [ebp - 0x20], eax
test eax, eax
jne 0x441b50
mov ecx, esi
mov byte [edi + 0x4f], 1
call fcn.0043ef30
cmp eax, 5
je 0x49bb7d
mov byte [edi + 0x57], 0
mov eax, dword [esi + 0x28]
mov dword [ebp - 0x20], eax
jmp 0x49a131
mov dword [ebp - 0x30], 0
mov eax, dword [edi + 0x1cc]
sub eax, dword [ebp - 0x34]
mov ecx, dword [edi + 0x14]
dec eax
cmp dword [ebp - 0x44], 2
mov dword [ebp - 0x34], eax
jne 0x49a0c7
mov eax, dword [edi + 0x18]
and eax, 1
mov dword [ebp - 0x48], 0
mov dword [ebp - 0x28], eax
test ecx, ecx
jle 0x49a0cc
xor eax, 1
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x3c], eax
mov ecx, dword [edi + 0x10]
mov edx, 0x204
push eax
mov eax, dword [ebp - 0x18]
mov ecx, dword [ecx + eax + 4]
call fcn.0050816e
mov edx, eax
add esp, 4
mov dword [ebp - 0x20], edx
test edx, edx
jne 0x49be1c
mov eax, dword [ebp - 0x48]
add dword [ebp - 0x18], 0x10
inc eax
mov ecx, dword [edi + 0x14]
cmp eax, ecx
mov dword [ebp - 0x48], eax
mov eax, dword [ebp - 0x3c]
jl 0x49a085
mov edx, dword [ebp - 0x38]
mov eax, dword [ebp - 0x28]
jmp 0x49a0cc
xor eax, eax
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x18], 0
test ecx, ecx
jle 0x49a119
xor eax, eax
mov dword [ebp - 0x48], eax
mov ecx, dword [edi + 0x10]
push dword [ebp - 0x34]
mov edx, dword [ebp - 0x44]
mov ecx, dword [ecx + eax + 4]
call fcn.00453d07
mov edx, eax
add esp, 4
mov dword [ebp - 0x20], edx
test edx, edx
jne 0x49be1c
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x48]
inc ecx
add eax, 0x10
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x48], eax
cmp ecx, dword [edi + 0x14]
jl 0x49a0dc
mov edx, dword [ebp - 0x38]
mov eax, dword [ebp - 0x28]
test eax, eax
je 0x49a134
xor edx, edx
mov ecx, edi
call fcn.004612d9
mov ecx, edi
call fcn.0050bc6d
or dword [edi + 0x18], 1
mov edx, dword [ebp - 0x38]
cmp dword [edi + 0x1c4], edx
je 0x49a169
mov esi, dword [ebp - 0x38]
mov edx, dword [edi + 0x1c4]
mov ecx, edi
mov eax, dword [edx + 0x18]
mov dword [edi + 0x1c4], eax
call fcn.00508acb
dec dword [edi + 0x1cc]
cmp dword [edi + 0x1c4], esi
jne 0x49a13f
mov esi, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x38]
cmp dword [ebp - 0x44], 1
jne 0x49a19f
mov eax, dword [edx + 0x18]
mov ecx, edi
mov dword [edi + 0x1c4], eax
call fcn.00508acb
cmp dword [ebp - 0x30], 0
jne 0x49a1d1
dec dword [edi + 0x1cc]
mov eax, dword [ebp - 0x44]
push dword [ebp - 0x34]
mov edx, eax
mov ecx, edi
call fcn.00453ce1
jmp 0x4435e9
cmp dword [ebp - 0x30], 0
mov eax, dword [edx + 8]
mov ecx, dword [edx + 0xc]
mov dword [edi + 0x1d8], eax
mov dword [edi + 0x1dc], ecx
mov eax, dword [edx + 0x10]
mov ecx, dword [edx + 0x14]
mov dword [edi + 0x1e0], eax
mov dword [edi + 0x1e4], ecx
je 0x49a18b
mov eax, dword [ebp - 0x44]
cmp eax, 2
je 0x49a18e
mov edx, dword [ebp - 0x20]
test edx, edx
jne 0x49be1c
jmp 0x441abb
mov ecx, dword [edi + 0x10]
lea eax, [ebp - 0xfc]
mov edx, dword [ebx + 0xc]
push eax
mov eax, dword [ebx + 4]
add eax, eax
mov ecx, dword [ecx + eax*8 + 4]
call fcn.00444f1e
add esp, 4
mov edx, ebx
mov ecx, esi
call fcn.00464fc1
mov ecx, eax
mov eax, dword [ebp - 0xfc]
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp 0x441abb
mov eax, dword [ebx + 4]
push dword [ebx + 0xc]
mov edx, dword [ebx + 8]
shl eax, 4
add eax, dword [edi + 0x10]
mov dword [ebp - 0x18], eax
mov ecx, dword [eax + 4]
call fcn.00508209
mov edx, eax
add esp, 4
mov eax, dword [ebx + 8]
mov dword [ebp - 0x20], edx
cmp eax, 1
jne 0x49a256
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebx + 0xc]
mov ecx, dword [ecx + 0xc]
mov dword [ecx], eax
or dword [edi + 0x18], 1
jmp 0x49a267
cmp eax, 2
jne 0x49a267
mov ecx, dword [ebp - 0x18]
mov al, byte [ebx + 0xc]
mov ecx, dword [ecx + 0xc]
mov byte [ecx + 0x4c], al
cmp dword [ebx + 4], 1
jne 0x49a280
xor edx, edx
mov ecx, edi
call fcn.004612d9
and dword [esi + 0x98], 0xfffffffc
mov edx, dword [ebp - 0x20]
test edx, edx
jne 0x49be1c
jmp 0x441abb
mov ecx, dword [ebx + 4]
mov eax, dword [esi + 0x60]
mov esi, dword [eax + ecx*4]
test esi, esi
je 0x49a2aa
mov eax, dword [esi + 0x34]
cmp eax, dword [ebx + 8]
jne 0x49a2aa
mov edx, dword [ebp - 0x20]
jmp 0x441c5b
mov esi, dword [ebp - 0x2c]
jmp case.0x441a43.108
lea eax, [ecx + ecx*4]
mov ecx, dword [ebp - 0x24]
lea esi, [ecx + eax*8]
mov ecx, esi
call fcn.0050e055
mov eax, dword [esi]
mov esi, dword [ebp - 0x2c]
mov dword [ebp - 0x18], eax
jmp 0x441bf0
mov eax, dword [ebp - 0x3c]
jmp 0x441c05
mov ecx, dword [ebx + 8]
mov eax, dword [esi + 0x60]
mov edx, dword [ebx + 4]
push 0
push 0xffffffffffffffff
mov eax, dword [eax + ecx*4]
mov ecx, esi
mov dword [ebp - 0x18], eax
movsx eax, word [eax + 0x38]
push eax
call fcn.00441640
mov edx, eax
add esp, 0xc
mov dword [ebp - 0x3c], edx
test edx, edx
je 0x499dd6
or dword [edx + 8], 1
mov edi, dword [ebp - 0x18]
mov ecx, dword [edx + 8]
mov byte [edx + 2], 1
mov esi, dword [edi + 0x2c]
mov dword [edx + 0x2c], esi
mov al, byte [edi + 4]
mov byte [edx + 4], al
mov edx, dword [edi + 0x34]
mov edi, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x18]
push dword [edi + 0x28]
mov dword [edi + 0x34], edx
mov eax, dword [eax + 8]
xor eax, ecx
and eax, 4
xor eax, ecx
mov dword [edi + 8], eax
mov eax, dword [ebp - 0x18]
push esi
push 4
mov ecx, dword [eax + 0xc]
call fcn.00441560
add esp, 0xc
mov dword [ebp - 0x20], eax
jmp 0x441abb
mov edx, dword [ecx + 0x34]
mov ecx, dword [ecx + 0xc]
call fcn.00507595
mov edx, eax
add esp, 4
mov dword [ebp - 0x20], edx
jmp 0x443b97
push dword [esi + 0x28]
mov edx, 1
mov dword [esi + 0x34], 1
push 0
push 4
call fcn.00441560
mov edx, eax
mov byte [esi + 4], 1
add esp, 0xc
mov dword [ebp - 0x20], edx
jmp 0x443b7d
mov eax, dword [esi + 0x60]
mov ecx, dword [ebx + 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 dword [edx + 0x14], eax
je 0x44208e
jmp 0x441abb
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebp - 0x24]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov al, byte [ecx + 8]
and al, 0xe
mov dword [ebp - 0x30], ecx
cmp al, 2
jne 0x49a3e4
xor edx, edx
call fcn.004f8028
mov ecx, dword [ebp - 0x30]
call fcn.004713e9
mov ecx, dword [ebp - 0x30]
mov dword [ebp - 0xe0], eax
mov dword [ebp - 0xdc], edx
movzx eax, word [ecx + 8]
test al, 4
jne 0x49a441
test al, 8
je 0x44208e
fild qword [ebp - 0xe0]
fstp qword [ebp - 0x40]
fld qword [ebp - 0x40]
fld qword [ecx]
fcom st(1)
fnstsw ax
test ah, 5
jp 0x49a42d
mov eax, dword [ebp - 0x34]
fstp st(0)
fstp st(0)
test al, 1
je 0x49a441
dec eax
jmp 0x49a43e
fcompp
fnstsw ax
test ah, 0x41
jne 0x49a441
mov eax, dword [ebp - 0x34]
test al, 1
jne 0x49a441
inc eax
mov dword [ebp - 0x34], eax
mov ecx, dword [ebp - 0x18]
lea eax, [ebp - 0x78]
push eax
push 0
push edx
push dword [ebp - 0xe0]
mov ecx, dword [ecx + 0x28]
xor edx, edx
call fcn.0043f5d0
mov ecx, dword [ebp - 0xe0]
mov edx, eax
mov eax, dword [ebp - 0x18]
add esp, 0x10
mov dword [ebp - 0x20], edx
mov dword [eax + 0x40], ecx
mov ecx, dword [ebp - 0xdc]
mov dword [eax + 0x44], ecx
test edx, edx
jne 0x49be1c
jmp 0x442c14
mov byte [ebp - 0x112], 0xff
jmp 0x442a37
cmp eax, 0x19
je 0x4430ae
jmp 0x442c3f
cmp edx, 0x65
jne 0x49be1c
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x78], 1
jmp 0x44208e
test ecx, ecx
jg 0x49a4d6
jne 0x49a4c6
cmp eax, 0x16
je 0x49a4d6
mov ecx, dword [edx + 0x28]
call fcn.00507873
mov dword [ebp - 0x78], eax
jmp 0x442a90
mov dword [ebp - 0x78], 0
push 0
push dword [edx + 0x28]
call fcn.0045ce2e
jmp 0x4430bf
mov eax, dword [esi + 0x60]
mov ecx, dword [ebx + 4]
mov ecx, dword [eax + ecx*4]
mov eax, dword [ebx + 8]
shl eax, 3
xor eax, dword [ecx + 8]
and eax, 8
xor dword [ecx + 8], eax
jmp 0x441abb
mov ecx, dword [ebx + 4]
mov eax, dword [esi + 0x60]
mov eax, dword [eax + ecx*4]
test byte [eax + 8], 8
jne 0x441abb
jmp case.0x441a43.27
call fcn.0050df35
test eax, eax
jne 0x499dd6
jmp 0x44271a
mov dword [ebp - 0x48], 1
jmp 0x441fe1
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebp - 0x24]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
movzx eax, word [edi + 8]
mov dword [ebp - 0x18], eax
test al, 4
jne case.0x441a43.31
push dword [ebp - 0x60]
mov dl, 0x43
mov ecx, edi
call fcn.00441790
mov ecx, dword [ebp - 0x18]
add esp, 4
test byte [edi + 8], 4
movzx eax, cx
mov word [edi + 8], ax
je 0x44208e
jmp case.0x441a43.31
cmp dword [ebx + 8], 0
jne 0x44208e
mov ecx, 0x157a1
call fcn.005088ce
mov edx, eax
mov dword [ebp - 0x20], edx
jmp 0x442eba
mov edx, ebx
mov ecx, esi
call fcn.00464fc1
mov edx, dword [ebx + 4]
mov ecx, dword [esi + 0x60]
mov ecx, dword [ecx + edx*4]
mov edx, dword [ecx + 0x10]
mov ecx, dword [ecx + 0x14]
mov dword [eax], edx
mov dword [eax + 4], ecx
mov ecx, dword [ebx + 4]
mov eax, dword [esi + 0x60]
mov eax, dword [eax + ecx*4]
add dword [eax + 0x10], 1
adc dword [eax + 0x14], 0
jmp 0x441abb
mov eax, dword [ebp - 0x38]
or dword [eax + 8], 2
jmp 0x4423da
mov eax, dword [esi + 0xc8]
test eax, eax
je 0x49a604
mov edx, dword [eax + 4]
test edx, edx
je 0x49a5f9
mov eax, edx
mov edx, dword [eax + 4]
test edx, edx
jne 0x49a5f0
mov eax, dword [eax + 0x10]
lea ecx, [ecx + ecx*4]
lea ecx, [eax + ecx*8]
jmp 0x49a60d
lea eax, [ecx + ecx*4]
mov ecx, dword [ebp - 0x24]
lea ecx, [ecx + eax*8]
mov dword [ebp - 0x18], ecx
call fcn.0050e055
mov ecx, dword [ebp - 0x18]
mov edx, dword [ecx]
mov eax, dword [ecx + 4]
cmp edx, 0xffffffff
jne 0x49a62d
cmp eax, 0x7fffffff
je 0x49a6e1
mov esi, dword [ebp - 0x38]
test byte [esi + 8], 2
mov esi, dword [ebp - 0x2c]
jne 0x49a6e1
mov edi, dword [ebp - 0x7c]
add edx, 1
mov dword [ebp - 0x18], edi
adc eax, 0
cmp edi, eax
mov dword [ebp - 0x3c], eax
mov edi, dword [ebp - 0x58]
jg 0x49a669
jl 0x49a65c
mov eax, dword [ebp - 0x80]
cmp eax, edx
jae 0x49a66c
mov eax, edx
mov edx, dword [ebp - 0x3c]
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x7c], edx
jmp 0x49a66f
mov eax, dword [ebp - 0x80]
mov edx, dword [ebp - 0x18]
mov dword [ecx], eax
mov eax, dword [ebp - 0x38]
mov dword [ecx + 4], edx
jmp 0x4423e5
mov dword [ebp - 0x18], 0
lea eax, [ebp - 0x80]
push eax
push 8
call fcn.00461481
mov eax, dword [ebp - 0x7c]
lea edx, [ebp - 0xa4]
mov ecx, dword [ebp - 0x80]
and eax, 0x3fffffff
add ecx, 1
push edx
adc eax, 0
mov dword [ebp - 0x80], ecx
push 0
mov dword [ebp - 0x7c], eax
xor edx, edx
push eax
mov eax, dword [ebp - 0x38]
push ecx
mov ecx, dword [eax + 0x28]
call fcn.0043f5d0
mov edx, eax
add esp, 0x18
mov dword [ebp - 0x20], edx
test edx, edx
jne 0x49be1c
cmp dword [ebp - 0xa4], eax
jne 0x49a6ee
mov eax, dword [ebp - 0x18]
inc eax
mov dword [ebp - 0x18], eax
cmp eax, 0x64
jl 0x49a683
mov edx, 0xd
mov dword [ebp - 0x20], edx
jmp 0x49be1c
mov eax, dword [ebp - 0x38]
jmp 0x4423ef
movsx ecx, byte [ecx + 1]
mov eax, dword [edi + 0x10]
add ecx, ecx
mov edx, dword [eax + ecx*8]
mov ecx, dword [ebx + 0x10]
mov dword [ebp - 0x48], edx
mov edx, dword [ebp - 0x3c]
mov dword [ebp - 0x30], ecx
mov ecx, dword [ebp - 0x28]
jmp 0x442275
mov eax, dword [ebp - 0x3c]
jmp 0x442290
mov eax, dword [ebp - 0x24]
mov eax, dword [eax + edx*8]
mov dword [ebp - 0x190], eax
mov eax, dword [ebp - 0x18]
jmp 0x4422f8
push dword [ebp - 0x1a4]
push dword [ebp - 0x1a8]
push dword [eax]
mov al, byte [ebx + 2]
push dword [ebp - 0x48]
and al, 4
movzx eax, al
neg eax
sbb eax, eax
and eax, 5
add eax, 0x12
push eax
push dword [edi + 0xe8]
mov eax, dword [edi + 0xec]
call eax
add esp, 0x18
jmp 0x441abb
movsx ecx, byte [esi + 1]
mov eax, dword [edi + 0x10]
add ecx, ecx
test byte [ebx + 2], 2
mov eax, dword [eax + ecx*8]
mov dword [ebp - 0x28], eax
mov eax, dword [ebx + 0x10]
mov dword [ebp - 0x18], eax
je 0x442ef5
cmp byte [esi + 4], 0
je 0x442ef5
mov ecx, dword [esi + 0x28]
call fcn.005079e3
mov dword [esi + 0x40], eax
mov dword [esi + 0x44], edx
jmp 0x442ef5
mov eax, dword [ebp - 0x18]
test byte [eax + 0x24], 0x20
jne 0x441abb
push dword [esi + 0x44]
push dword [esi + 0x40]
push dword [eax]
push dword [ebp - 0x28]
push 9
push dword [edi + 0xe8]
call ecx
add esp, 0x18
jmp 0x441abb
mov eax, dword [esi + 0x60]
mov ecx, dword [ebx + 4]
mov edx, dword [ebp - 0x24]
mov ecx, dword [eax + ecx*4]
mov eax, dword [ebx + 0xc]
mov dword [ebp - 0xd8], 0
lea eax, [eax + eax*4]
lea edx, [edx + eax*8]
lea eax, [ebp - 0xd8]
push eax
push dword [ebx + 0x10]
call fcn.0050e6d3
mov edx, eax
add esp, 8
mov dword [ebp - 0x20], edx
test edx, edx
jne 0x49be1c
cmp dword [ebp - 0xd8], eax
jne 0x44208e
jmp 0x441abb
mov edx, ebx
mov ecx, esi
call fcn.00464fc1
mov edx, dword [ebx + 4]
mov ecx, dword [esi + 0x60]
mov dword [ebp - 0x18], eax
mov ecx, dword [ecx + edx*4]
mov eax, dword [ecx + 0x28]
mov ecx, eax
mov dword [ebp - 0x3c], eax
call fcn.00507ece
cmp eax, dword [edi + 0x6c]
ja 0x49bd3a
push dword [ebp - 0x18]
mov ecx, dword [ebp - 0x3c]
xor edx, edx
push eax
call fcn.0050df80
mov edx, eax
add esp, 8
mov dword [ebp - 0x20], edx
test edx, edx
jne 0x49be1c
cmp dword [ebx + 0xc], eax
jne 0x441abb
mov eax, dword [ebp - 0x18]
mov ecx, 0x1000
test word [eax + 8], cx
je 0x441abb
mov ecx, eax
call fcn.00477924
test eax, eax
jne 0x499dd6
jmp 0x441abb
mov ecx, 1
mov word [eax + 8], cx
jmp 0x441abb
mov eax, dword [esi + 0x40]
mov edx, dword [esi + 0x44]
jmp 0x442d94
mov ecx, dword [esi + 0x28]
lea edx, [ebp - 0xc8]
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 - 0x20], eax
mov edx, esi
mov esi, dword [ebp - 0x2c]
mov ecx, esi
call fcn.0050edf1
mov edx, dword [ebp - 0x20]
test edx, edx
jne 0x49be1c
mov edx, dword [ebp - 0xc4]
mov eax, dword [ebp - 0xc8]
jmp 0x442da0
mov ecx, dword [ebp - 0x18]
mov eax, 1
mov word [ecx + 8], ax
jmp 0x441abb
mov ecx, dword [ebx + 4]
mov eax, dword [esi + 0x60]
mov ecx, dword [eax + ecx*4]
cmp byte [ecx], 0
mov byte [ecx + 2], 1
mov dword [ecx + 0x1c], 0
jne 0x441abb
mov ecx, dword [ecx + 0x28]
call fcn.00507580
jmp 0x441abb
mov dword [eax + 0x20], 0xffffffff
call fcn.00507824
test eax, eax
jne 0x441abb
mov ecx, dword [ebp - 0x3c]
jmp 0x44366a
mov ecx, dword [ebx + 4]
lea edx, [ebp - 0xbc]
mov eax, dword [esi + 0x60]
mov eax, dword [eax + ecx*4]
mov eax, dword [eax + 0x28]
mov ecx, eax
mov dword [ebp - 0x3c], eax
call fcn.0045cede
mov edx, eax
mov dword [ebp - 0x20], edx
test edx, edx
jne 0x49be1c
cmp dword [ebp - 0xbc], eax
jne 0x44208e
mov ecx, dword [ebp - 0x3c]
call fcn.00507f2b
test edx, edx
jl 0x49a9b1
jg 0x49a992
test eax, eax
jb 0x49a9b1
push edx
push eax
call fcn.0044d26e
cwde
add esp, 8
cmp eax, dword [ebx + 0xc]
jge 0x49a9b1
mov dword [ebp - 0xbc], 1
jmp 0x44208e
cmp dword [ebp - 0xbc], 0
jne 0x44208e
jmp 0x441abb
inc dword [esi + 0x2c]
jmp 0x441e92
call fcn.0050df35
mov edx, eax
mov dword [ebp - 0x20], edx
test edx, edx
jne 0x49be1c
mov ecx, dword [ebp - 0x3c]
jmp 0x441ea1
mov eax, dword [ebx + 8]
mov ecx, dword [ebp - 0x24]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
call fcn.0045ea00
jmp 0x441abb
mov byte [ebp - 0x13e], 0
jmp 0x442945
neg eax
jmp 0x442990
mov edx, ebx
mov ecx, esi
call fcn.00464fc1
mov ecx, 1
mov dword [ebp - 0x3c], eax
mov word [eax + 8], cx
mov ecx, dword [edi + 0xbc]
inc ecx
cmp dword [edi + 0xb0], ecx
jg 0x49bc45
mov eax, dword [ebx + 0xc]
lea ecx, [ebp - 0xc0]
mov edx, dword [ebx + 4]
push ecx
mov ecx, dword [edi + 0x10]
mov dword [ebp - 0x18], eax
add eax, eax
mov dword [ebp - 0xc0], 0
mov ecx, dword [ecx + eax*8 + 4]
call fcn.0050782c
mov ecx, dword [ebp - 0x3c]
add esp, 4
mov dword [ebp - 0x20], eax
mov eax, 4
mov word [ecx + 8], ax
mov eax, dword [ebp - 0xc0]
cdq
mov dword [ecx + 4], edx
mov edx, dword [ebp - 0x20]
mov dword [ecx], eax
test edx, edx
jne 0x49be1c
mov eax, dword [ebp - 0xc0]
test eax, eax
je 0x441abb
push dword [ebx + 4]
mov edx, dword [ebp - 0x18]
mov ecx, edi
push eax
call fcn.0050bdf5
mov al, byte [ebp - 0x18]
add esp, 8
inc al
mov byte [ebp - 0x65], al
jmp 0x441abb
mov eax, dword [ebx + 0xc]
lea ecx, [ebp - 0xe4]
mov edx, dword [ebx + 4]
neg eax
mov dword [ebp - 0xe4], 0
sbb eax, eax
and eax, ecx
mov ecx, dword [edi + 0x10]
push eax
mov eax, dword [ebx + 8]
add eax, eax
mov ecx, dword [ecx + eax*8 + 4]
call fcn.00507595
add esp, 4
mov edx, eax
cmp dword [ebx + 0xc], 0
mov dword [ebp - 0x20], edx
je 0x441f1b
mov eax, dword [ebp - 0xe4]
add dword [esi + 0x2c], eax
mov ecx, dword [ebx + 0xc]
test ecx, ecx
jle 0x441f1b
mov edi, dword [ebp - 0x24]
lea ecx, [ecx + ecx*4]
cdq
add dword [edi + ecx*8], eax
mov eax, edi
mov edi, dword [ebp - 0x58]
adc dword [eax + ecx*8 + 4], edx
mov edx, dword [ebp - 0x20]
jmp 0x441f1b
mov ecx, dword [ebx + 4]
mov eax, dword [esi + 0x60]
mov ecx, dword [eax + ecx*4]
cmp byte [ecx], 1
jne 0x49ab3f
mov edx, dword [ecx + 0x28]
mov ecx, edi
call fcn.0047be96
jmp 0x441abb
mov ecx, dword [ecx + 0x28]
call fcn.00507623
jmp 0x442b75
mov edx, ebx
mov ecx, esi
call fcn.00464fc1
mov ecx, dword [ebx + 4]
lea edx, [ebp - 0x9c]
push dword [ebx + 0xc]
shl ecx, 4
add ecx, dword [edi + 0x10]
mov dword [ebp - 0x9c], 0
mov dword [ebp - 0x3c], eax
mov ecx, dword [ecx + 4]
call fcn.00480835
mov edx, eax
add esp, 4
mov dword [ebp - 0x20], edx
test edx, edx
jne 0x49be1c
mov eax, dword [ebp - 0x9c]
mov ecx, dword [ebp - 0x3c]
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp 0x441abb
inc byte [edi + 0x5a]
push 0
push 0
push 0
push dword [ebx + 0x10]
push edi
call fcn.004478e5
add esp, 0x14
dec byte [edi + 0x5a]
jmp 0x442b75
mov edx, dword [ebx + 0x10]
mov ecx, dword [ebx + 4]
mov dword [ebp - 0x3c], ecx
test edx, edx
jne 0x49ac05
mov eax, dword [edi + 0x10]
add ecx, ecx
push dword [eax + ecx*8 + 0xc]
call fcn.0045fc37
mov edx, dword [ebp - 0x3c]
lea eax, [esi + 0x7c]
and dword [edi + 0x18], 0xffffffef
add esp, 4
mov ecx, edi
push 1
push eax
call fcn.00444c6c
or dword [edi + 0x18], 1
add esp, 8
and dword [esi + 0x98], 0xfffffffc
mov dword [ebp - 0x20], eax
jmp 0x49acbb
lea eax, [esi + 0x7c]
mov dword [ebp - 0x158], ecx
mov dword [ebp - 0x15c], eax
add ecx, ecx
mov eax, dword [edi + 0x10]
push edx
push 0x401d68
mov dword [ebp - 0x160], edi
mov dword [ebp - 0x150], 0
push dword [eax + ecx*8]
push 0x40be80
push edi
call fcn.00449ecd
add esp, 0x14
mov dword [ebp - 0x3c], eax
test eax, eax
je 0x49bc59
push 0
lea ecx, [ebp - 0x160]
mov byte [edi + 0xa5], 1
push ecx
push fcn.00447baf
push eax
push edi
mov dword [ebp - 0x154], 0
mov dword [ebp - 0x14c], 0
call fcn.004478e5
add esp, 0x14
mov dword [ebp - 0x20], eax
test eax, eax
jne 0x49aca7
mov eax, dword [ebp - 0x154]
mov dword [ebp - 0x20], eax
test eax, eax
jne 0x49aca7
cmp dword [ebp - 0x14c], eax
jne 0x49aca7
mov ecx, 0x15d22
call fcn.005088ce
mov dword [ebp - 0x20], eax
mov edx, dword [ebp - 0x3c]
mov ecx, edi
call fcn.00458df5
mov eax, dword [ebp - 0x20]
mov byte [edi + 0xa5], 0
test eax, eax
je 0x441abb
mov ecx, edi
call fcn.0050bc6d
mov edx, dword [ebp - 0x20]
cmp edx, 7
je 0x499dd6
mov dword [ebp - 0x20], edx
jmp 0x49be1c
mov edx, dword [ebx + 4]
mov ecx, edi
call fcn.004481b9
jmp 0x442b75
push dword [ebx + 0x10]
mov edx, dword [ebx + 4]
mov ecx, edi
call fcn.0050cf38
add esp, 4
jmp 0x441abb
push dword [ebx + 0x10]
mov edx, dword [ebx + 4]
mov ecx, edi
call fcn.0050ced9
add esp, 4
jmp 0x441abb
push dword [ebx + 0x10]
mov edx, dword [ebx + 4]
mov ecx, edi
call fcn.0050cf65
add esp, 4
jmp 0x441abb
mov eax, dword [ebx + 0xc]
mov esi, dword [ebp - 0x24]
mov edx, dword [ebx + 0x10]
add edx, 4
lea ecx, [eax + eax*4]
mov eax, dword [ebx + 4]
mov dword [ebp - 0x3c], ecx
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
mov dword [ebp - 0x18], eax
lea eax, [ebp - 0x104]
push eax
mov eax, esi
mov eax, dword [eax + ecx*8]
mov ecx, dword [edi + 0x10]
inc eax
push eax
movzx eax, word [ebx + 2]
push dword [ebx + 8]
add eax, eax
mov ecx, dword [ecx + eax*8 + 4]
call fcn.005079f3
mov ecx, dword [ebp - 0x18]
add esp, 0xc
mov dword [ebp - 0x28], eax
call fcn.0045ea00
mov eax, dword [ebp - 0x104]
mov esi, dword [ebp - 0x2c]
test eax, eax
je 0x49adb8
cmp dword [ebp - 0x28], 0
je 0x499dd6
mov ecx, dword [ebp - 0x3c]
dec eax
mov esi, dword [ebp - 0x24]
cdq
push fcn.0045984d
push 1
sub dword [esi + ecx*8], eax
push 0xffffffffffffffff
sbb dword [esi + ecx*8 + 4], edx
mov edx, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x18]
call fcn.0043ea70
add esp, 0xc
movzx edx, byte [ebp - 0x60]
mov ecx, dword [ebp - 0x18]
call fcn.00480ca3
jmp 0x441abb
mov eax, dword [ebx + 4]
mov ecx, dword [ebp - 0x24]
mov edx, dword [ebx + 0x10]
mov dword [ebp - 0x30], edx
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 8], 0x10
lea ecx, [ecx + eax*8]
mov eax, dword [ebx + 0xc]
mov dword [ebp - 0x18], ecx
lea eax, [eax + eax*4]
mov dword [ebp - 0x28], eax
jne 0x49ae04
call fcn.00477d61
test eax, eax
jne 0x499dd6
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x28]
mov edx, dword [ebp - 0x30]
mov edi, dword [ebp - 0x24]
test edx, edx
je 0x49ae30
push dword [edi + eax*8 + 4]
mov ecx, dword [ecx + 0x10]
push dword [edi + eax*8]
call fcn.0050be41
add esp, 8
test eax, eax
jne 0x44208e
mov edx, dword [ebp - 0x30]
test edx, edx
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x28]
js 0x441abb
push dword [edi + eax*8 + 4]
mov ecx, dword [ecx + 0x10]
push dword [edi + eax*8]
call fcn.00474e76
add esp, 8
jmp 0x441abb
mov eax, dword [esi + 0xc8]
test eax, eax
je 0x4431a9
mov edi, dword [edx + 0x14]
cmp dword [eax + 0x1c], edi
mov edi, dword [ebp - 0x58]
je 0x441abb
mov eax, dword [eax + 4]
test eax, eax
jne 0x49ae5b
jmp 0x4431a9
inc eax
mov dword [ebp - 0x30], eax
jmp 0x443970
add dword [edi + 0x1e0], eax
adc dword [edi + 0x1e4], edx
jmp case.0x441a43.86
add dword [edi + 0x1d8], eax
adc dword [edi + 0x1dc], edx
jmp case.0x441a43.86
mov eax, dword [edi + 0x1d8]
or eax, dword [edi + 0x1dc]
jmp 0x4430e4
mov edx, dword [esi + 0xc8]
test edx, edx
je 0x49aeda
mov eax, dword [edx + 4]
test eax, eax
je 0x49aecc
mov edx, eax
mov eax, dword [edx + 4]
test eax, eax
jne 0x49aec3
mov eax, dword [ebx + 4]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0x10]
lea edi, [eax + ecx*8]
jmp 0x49aee6
mov eax, dword [ebx + 4]
mov ecx, dword [ebp - 0x24]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov ecx, edi
call fcn.0050e055
mov eax, dword [ebx + 8]
mov ecx, dword [ebp - 0x24]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov ecx, esi
call fcn.0050e055
mov ecx, dword [esi + 4]
mov eax, dword [esi]
cmp dword [edi + 4], ecx
jg 0x441abb
jl 0x49af18
cmp dword [edi], eax
jae 0x441abb
mov dword [edi], eax
mov dword [edi + 4], ecx
jmp 0x441abb
mov eax, dword [ebx + 4]
lea esi, [eax + eax*4]
mov eax, dword [ebp - 0x24]
mov edi, dword [eax + esi*8 + 4]
mov ecx, dword [eax + esi*8]
test edi, edi
jl 0x441abb
jg 0x49af44
test ecx, ecx
je 0x441abb
mov eax, dword [ebx + 0xc]
cdq
sub ecx, eax
mov eax, dword [ebp - 0x24]
sbb edi, edx
mov dword [eax + esi*8], ecx
mov dword [eax + esi*8 + 4], edi
jmp 0x44208e
mov eax, dword [ebx + 4]
mov edx, ebx
mov ecx, dword [ebp - 0x2c]
lea esi, [eax + eax*4]
mov eax, dword [ebx + 0xc]
lea eax, [eax + eax*4]
mov dword [ebp - 0x3c], eax
call fcn.00464fc1
mov edx, dword [ebp - 0x24]
mov edi, eax
mov ecx, dword [edx + esi*8 + 4]
mov eax, dword [edx + esi*8]
mov dword [ebp - 0xf8], eax
mov dword [ebp - 0xf4], ecx
test ecx, ecx
jl 0x49afd8
jg 0x49af96
test eax, eax
je 0x49afd8
mov ecx, dword [ebp - 0x3c]
mov eax, dword [edx + ecx*8]
mov ecx, dword [edx + ecx*8 + 4]
test ecx, ecx
jl 0x49afaa
jg 0x49afae
test eax, eax
jne 0x49afae
xor eax, eax
xor ecx, ecx
push ecx
push eax
lea ecx, [ebp - 0xf8]
call fcn.00505fb0
add esp, 8
test eax, eax
jne 0x49afd8
mov eax, dword [ebp - 0xf8]
mov ecx, dword [ebp - 0xf4]
mov dword [edi], eax
mov dword [edi + 4], ecx
jmp 0x441abb
mov dword [edi], 0xffffffff
mov dword [edi + 4], 0xffffffff
jmp 0x441abb
mov eax, dword [ebx + 4]
mov edi, dword [ebp - 0x24]
lea esi, [eax + eax*4]
mov ecx, dword [edi + esi*8]
mov eax, ecx
mov edx, dword [edi + esi*8 + 4]
or eax, edx
je 0x441abb
test edx, edx
jl 0x44208e
jg 0x49b016
test ecx, ecx
je 0x44208e
sub ecx, 1
mov dword [edi + esi*8], ecx
sbb edx, 0
mov dword [edi + esi*8 + 4], edx
jmp 0x44208e
mov eax, dword [ebx + 4]
mov edi, dword [ebp - 0x24]
lea edx, [eax + eax*4]
mov ecx, dword [edi + edx*8 + 4]
mov eax, dword [edi + edx*8]
cmp ecx, 0x80000000
jl 0x49b053
jg 0x49b046
test eax, eax
je 0x49b053
sub eax, 1
mov dword [edi + edx*8], eax
sbb ecx, 0
mov dword [edi + edx*8 + 4], ecx
or eax, ecx
mov ecx, dword [ebp - 0x14]
je 0x442091
jmp case.0x441a43.86
mov eax, dword [ecx + 0x1c]
jmp 0x44381a
jle 0x49b08e
push dword [esi]
call fcn.0051474b
add esp, 4
push eax
push 0x401e58
push dword [ebp - 0x2c]
call fcn.0050d74c
mov eax, dword [esi + 0x14]
add esp, 0xc
mov dword [ebp - 0x20], eax
cmp byte [esi + 0x18], 0
je 0x49b0b4
mov eax, dword [ebx - 0x10]
test eax, eax
je 0x49b0b0
mov ecx, dword [ebp - 0x24]
lea eax, [eax + eax*4]
push 0
push 1
lea ecx, [ecx + eax*8]
call fcn.00463d80
add esp, 8
mov byte [esi + 0x18], 0
mov ecx, dword [esi]
call fcn.00481110
mov eax, dword [esi]
mov ecx, 1
mov edx, dword [ebp - 0x20]
mov word [eax + 8], cx
mov dword [esi + 0x14], 0
test edx, edx
jne 0x49b5f7
jmp 0x441abb
push edx
mov edx, dword [ebp - 0x24]
lea eax, [eax + eax*4]
lea edx, [edx + eax*8]
call fcn.0050de2c
mov edx, dword [ebp - 0x24]
mov ecx, eax
mov eax, dword [ebx + 0xc]
add esp, 4
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
mov dword [ebp - 0x18], eax
jmp 0x4436da
mov edx, dword [ebx + 4]
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0xc]
mov dword [ebp - 0x10], 0
push eax
push dword [ebx + 8]
mov ecx, edi
mov dword [ebp - 8], 0xffffffff
mov dword [ebp - 0xc], 0xffffffff
call fcn.00452c7e
mov edx, eax
add esp, 0xc
mov dword [ebp - 0x20], edx
test edx, edx
je 0x49b152
cmp edx, 5
jne 0x49be1c
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x10], 1
mov eax, dword [ebx + 0xc]
xor esi, esi
mov ecx, dword [ebp - 0x24]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov eax, dword [ebp + esi*4 - 0x10]
mov ecx, edi
cdq
push edx
push eax
call fcn.00463d80
inc esi
add esp, 8
add edi, 0x28
cmp esi, 3
jl 0x49b160
jmp 0x441abb
mov esi, ecx
jmp 0x443896
mov esi, dword [ebp - 0x18]
jmp 0x4438a5
mov esi, dword [ebp - 0x18]
jmp 0x4438e1
cmp eax, 5
je 0x49b1a4
cmp esi, 5
jne 0x4438e1
cmp byte [edi + 0x4f], 0
je 0x49bcc2
cmp dword [edi + 0xb0], 1
jg 0x49bcc2
mov al, byte [ebp - 0x4d]
cmp al, 5
jne 0x49b1df
mov ecx, dword [ebp - 0x34]
mov edx, edi
call fcn.0050b064
mov dword [ebp - 0x20], eax
test eax, eax
jne 0x49b20f
mov ecx, dword [ebp - 0x34]
mov edx, esi
call fcn.00480e8a
jmp 0x49b1f6
cmp al, 4
jne 0x49b1f0
mov ecx, dword [ebp - 0x34]
mov edx, 2
call fcn.00480e8a
cmp dword [ebp - 0x20], 0
jne 0x49b20f
mov ecx, dword [ebp - 0x3c]
xor edx, edx
cmp esi, 5
sete dl
inc edx
call fcn.005080f0
mov dword [ebp - 0x20], eax
jmp 0x4438e4
mov esi, dword [ebp - 0x18]
jmp 0x4438ec
mov eax, dword [ebx + 8]
test eax, eax
je 0x49b229
mov ecx, dword [ebp - 0x24]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
jmp 0x49b22b
xor eax, eax
push eax
push dword [ebx + 4]
lea ecx, [esi + 0x7c]
mov edx, edi
call fcn.0050bfa0
add esp, 8
jmp 0x442b75
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x10]
add ecx, ecx
mov ecx, dword [eax + ecx*8 + 4]
call fcn.005078fb
mov edx, eax
mov dword [ebp - 0x20], edx
test edx, edx
je 0x441abb
cmp edx, 0x65
jne 0x49be1c
mov dword [ebp - 0x20], 0
jmp 0x44208e
mov eax, dword [ebx + 8]
inc eax
xor eax, dword [esi + 0x98]
and eax, 3
xor dword [esi + 0x98], eax
jmp case.0x441a43.86
mov al, byte [ebx + 0xc]
mov byte [ebp - 0x108], al
test al, al
jne 0x49b2aa
mov eax, dword [edi + 0x20]
and eax, 0x400
mov dword [ebp - 0x40], eax
jne case.0x441a43.86
mov eax, dword [ebx + 4]
mov ecx, dword [edi + 0x10]
add eax, eax
push dword [ebp - 0x108]
mov edx, dword [ebx + 8]
mov ecx, dword [ecx + eax*8 + 4]
call fcn.00507d8d
mov edx, eax
add esp, 4
mov dword [ebp - 0x20], edx
test edx, edx
je 0x441abb
cmp dl, 6
jne 0x49be1c
push dword [ebx + 0x10]
push 0x40bfa4
push esi
call fcn.0050d74c
mov edx, dword [ebp - 0x20]
add esp, 0xc
jmp 0x49be1c
mov eax, dword [ebx + 0x10]
mov ecx, edi
mov edx, eax
mov dword [ebp - 0x3c], eax
call fcn.0050e82a
mov edx, eax
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x20], edx
test eax, eax
je 0x441f1b
mov edx, dword [eax + 8]
mov ecx, esi
call fcn.0050edf1
mov edx, dword [ebp - 0x20]
jmp 0x441f1b
xor eax, eax
lea edi, [ebp - 0x248]
mov ecx, 0xa
rep stosd dword es:[edi], eax
mov eax, dword [ebx + 8]
mov ecx, dword [ebp - 0x24]
mov edi, dword [ebp - 0x58]
mov dword [ebp - 0x228], edi
lea eax, [eax + eax*4]
lea edx, [ecx + eax*8]
lea ecx, [ebp - 0x248]
call fcn.0045fea5
mov dword [ebp - 0x20], eax
lea eax, [ebp - 0x248]
push eax
call fcn.0051474b
add esp, 4
test eax, eax
je 0x49b381
mov edx, dword [ebx + 4]
lea ecx, [esi + 0x7c]
push ecx
push eax
mov ecx, edi
call fcn.0050e98c
add esp, 8
mov dword [ebp - 0x20], eax
lea ecx, [ebp - 0x248]
call fcn.00481110
mov edx, dword [ebp - 0x20]
jmp 0x441f1b
inc dword [edi + 0xbc]
mov ecx, edi
push dword [ebx + 0x10]
mov edx, dword [ebx + 4]
call fcn.0050ea53
add esp, 4
dec dword [edi + 0xbc]
jmp 0x442b75
mov eax, dword [ebx + 0x10]
mov dword [ebp - 0xb0], 0
mov esi, dword [eax + 8]
test esi, esi
je 0x49bd08
mov eax, dword [esi]
mov dword [ebp - 0x3c], eax
test eax, eax
je 0x49bd08
mov eax, dword [eax + 0x18]
lea ecx, [ebp - 0xb0]
push ecx
push esi
call eax
mov ecx, dword [ebp - 0x2c]
add esp, 8
mov edx, esi
mov dword [ebp - 0x20], eax
call fcn.0050edf1
mov edx, dword [ebp - 0x20]
test edx, edx
jne 0x49b5f7
mov eax, dword [ebp - 0xb0]
mov ecx, dword [ebp - 0x2c]
push 2
push 0xffffffffffffffff
mov dword [eax], esi
push edx
mov edx, dword [ebx + 4]
call fcn.00441640
add esp, 0xc
test eax, eax
je 0x49bcf2
mov ecx, dword [ebp - 0xb0]
mov dword [eax + 0x28], ecx
inc dword [esi + 4]
jmp 0x441abb
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebx + 4]
mov dword [ebp - 0x54], 0
lea edx, [eax + eax*4]
mov eax, dword [esi + 0x60]
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0x34], eax
mov eax, dword [eax + 0x28]
mov dword [ebp - 0x30], eax
mov ecx, dword [eax]
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x64], ecx
mov ecx, dword [ecx]
mov edi, dword [eax + edx*8 + 0x28]
test edi, edi
mov eax, dword [eax + edx*8]
mov dword [ebp - 0x74], eax
mov eax, dword [esi + 0x5c]
mov dword [ebp - 0x18], edi
mov edi, dword [ebp - 0x58]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x48], ecx
jle 0x49b4ad
mov ecx, dword [ebp - 0x24]
mov edi, dword [ebp - 0x28]
add ecx, 0x50
lea edx, [ecx + edx*8]
mov ecx, dword [ebp - 0x54]
mov dword [ebp - 0x3c], edx
mov edx, dword [ebp - 0x18]
mov esi, dword [ebp - 0x3c]
mov dword [edi + ecx*4], esi
inc ecx
add esi, 0x28
cmp ecx, edx
jl 0x49b497
mov edi, dword [ebp - 0x58]
mov esi, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x48]
jmp 0x49b4b0
mov edx, dword [ebp - 0x18]
push dword [ebp - 0x28]
push edx
push dword [ebx + 0x10]
push dword [ebp - 0x74]
push eax
mov eax, dword [ecx + 0x20]
call eax
mov edx, dword [ebp - 0x64]
add esp, 0x14
mov ecx, esi
mov dword [ebp - 0x20], eax
call fcn.0050edf1
mov edx, dword [ebp - 0x20]
test edx, edx
jne 0x49be1c
mov eax, dword [ebp - 0x48]
push dword [ebp - 0x30]
mov eax, dword [eax + 0x28]
call eax
mov ecx, dword [ebp - 0x34]
add esp, 4
mov byte [ecx + 2], 0
test eax, eax
je 0x441abb
jmp 0x44208e
mov eax, dword [esi + 0x60]
mov ecx, dword [ebx + 4]
mov edx, dword [ebp - 0x24]
mov ecx, dword [eax + ecx*4]
mov eax, dword [ebx + 0xc]
mov dword [ebp - 0x3c], ecx
cmp byte [ecx + 2], 0
lea eax, [eax + eax*4]
lea esi, [edx + eax*8]
je 0x49b527
mov ecx, esi
call fcn.0045ea00
jmp 0x441abb
mov eax, dword [ecx + 0x28]
lea edi, [ebp - 0x1d0]
mov ecx, 8
mov eax, dword [eax]
mov dword [ebp - 0x74], eax
mov eax, dword [eax]
mov dword [ebp - 0x54], eax
xor eax, eax
test byte [ebx + 2], 1
rep stosd dword es:[edi], eax
mov dword [ebp - 0x1d0], esi
je 0x49b563
mov ecx, esi
call fcn.0045ea00
mov dword [esi], 0
mov eax, 0x4001
jmp 0x49b576
mov ax, word [esi + 8]
mov ecx, 0x3e20
and ax, cx
or ax, 1
movzx eax, ax
mov word [esi + 8], ax
lea eax, [ebp - 0x1d0]
push dword [ebx + 8]
push eax
mov eax, dword [ebp - 0x3c]
push dword [eax + 0x28]
mov eax, dword [ebp - 0x54]
mov eax, dword [eax + 0x2c]
call eax
mov edi, dword [ebp - 0x2c]
add esp, 0xc
mov edx, dword [ebp - 0x74]
mov ecx, edi
mov dword [ebp - 0x20], eax
call fcn.0050edf1
cmp dword [ebp - 0x1bc], 0
jle 0x49b5cf
push esi
call fcn.0051474b
add esp, 4
push eax
push 0x401e58
push edi
call fcn.0050d74c
mov eax, dword [ebp - 0x1bc]
add esp, 0xc
mov dword [ebp - 0x20], eax
movzx edx, byte [ebp - 0x60]
mov ecx, esi
call fcn.00480ca3
mov ecx, esi
call fcn.00441760
test eax, eax
jne 0x49bd34
mov edx, dword [ebp - 0x20]
test edx, edx
je 0x441abb
mov edi, dword [ebp - 0x58]
mov esi, dword [ebp - 0x2c]
jmp 0x49be1c
mov ecx, dword [ebx + 4]
mov eax, dword [esi + 0x60]
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0x3c], eax
cmp byte [eax + 2], 0
jne 0x441abb
mov eax, dword [eax + 0x28]
push eax
mov esi, dword [eax]
mov ecx, dword [esi]
mov dword [ebp - 0x54], ecx
mov eax, dword [ecx + 0x24]
call eax
add esp, 4
mov dword [ebp - 0x20], eax
mov edx, esi
mov esi, dword [ebp - 0x2c]
mov ecx, esi
call fcn.0050edf1
mov edx, dword [ebp - 0x20]
test edx, edx
jne 0x49be1c
mov eax, dword [ebp - 0x3c]
push dword [eax + 0x28]
mov eax, dword [ebp - 0x54]
mov eax, dword [eax + 0x28]
call eax
add esp, 4
test eax, eax
jne 0x4420fa
jmp 0x4420ed
mov eax, dword [edi + 0x148]
test eax, eax
je 0x441abb
add ecx, dword [edi + 0x150]
push dword [edi + 0x14c]
mov dword [ebp - 0x88], ecx
call eax
add esp, 4
test eax, eax
jne 0x49be0a
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x88]
cmp eax, ecx
jae 0x49b660
mov ecx, dword [ebp - 0x14]
jmp 0x441ac1
mov eax, dword [edi + 0x20]
mov edx, 1
or dword [edi + 0x20], 0x4000000
and eax, 0x4000000
mov ecx, dword [ebp - 0x24]
mov dword [ebp - 0x54], eax
mov eax, dword [edi + 0x24]
mov dword [edi + 0x24], eax
mov eax, dword [ebx + 0x10]
mov eax, dword [eax + 8]
mov dword [ebp - 0x18], eax
mov eax, dword [ebx + 4]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov ecx, eax
mov dword [ebp - 0x3c], eax
call fcn.00480ca3
mov edx, eax
mov dword [ebp - 0x20], edx
test edx, edx
jne 0x49be1c
mov ecx, dword [ebp - 0x18]
mov edx, dword [ebp - 0x3c]
mov eax, dword [ecx]
push dword [edx + 0x10]
push ecx
mov eax, dword [eax + 0x4c]
call eax
add esp, 8
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x54], 0
jne 0x49b715
mov eax, dword [edi + 0x24]
and dword [edi + 0x20], 0xfbffffff
mov dword [edi + 0x24], eax
mov edx, dword [ebp - 0x18]
mov ecx, esi
call fcn.0050edf1
and dword [esi + 0x98], 0xfffffffc
mov edx, dword [ebp - 0x20]
jmp 0x441f1b
cmp byte [edi + 0x51], 0
jne 0x499dd6
mov eax, dword [ebx + 0x10]
mov ecx, dword [eax + 8]
mov dword [ebp - 0x18], ecx
test ecx, ecx
je 0x49bd27
mov edx, dword [ecx]
test edx, edx
je 0x49bd27
cmp dword [edx + 0x34], 0
mov eax, dword [ebx + 8]
mov dword [ebp - 0x30], eax
je 0x441abb
mov al, byte [edi + 0x56]
mov ecx, dword [ebp - 0x24]
mov byte [ebp - 0x4d], al
mov eax, dword [esi + 0x5c]
mov dword [ebp - 0x28], eax
mov eax, dword [ebx + 0xc]
mov dword [ebp - 0x3c], 0
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov ecx, dword [ebp - 0x18]
mov dword [ebp - 0x54], eax
mov eax, dword [ebp - 0x30]
test eax, eax
jle 0x49b7ac
mov ecx, dword [ebp - 0x28]
mov esi, dword [ebp - 0x3c]
mov edi, dword [ebp - 0x54]
mov dword [ecx + esi*4], edi
inc esi
add edi, 0x28
cmp esi, eax
jl 0x49b798
mov edi, dword [ebp - 0x58]
mov esi, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x18]
mov al, byte [ebx + 2]
mov byte [edi + 0x56], al
lea eax, [ebp - 0x138]
push eax
push dword [ebp - 0x28]
mov eax, dword [edx + 0x34]
push dword [ebp - 0x30]
push ecx
call eax
mov edx, dword [ebp - 0x18]
add esp, 0x10
mov dword [ebp - 0x20], eax
mov ecx, esi
mov al, byte [ebp - 0x4d]
mov byte [edi + 0x56], al
call fcn.0050edf1
mov edx, dword [ebp - 0x20]
test edx, edx
jne 0x49b801
cmp dword [ebx + 4], edx
je 0x49b7f9
mov eax, dword [ebp - 0x138]
mov ecx, dword [ebp - 0x134]
mov dword [edi + 0x28], eax
mov dword [edi + 0x2c], ecx
inc dword [esi + 0x2c]
jmp 0x441f1b
cmp dl, 0x13
jne 0x49b7f9
mov eax, dword [ebx + 0x10]
cmp byte [eax + 0x10], 0
je 0x49b7f9
movzx eax, word [ebx + 2]
cmp eax, 4
jne 0x49bd15
mov dword [ebp - 0x20], 0
jmp 0x441abb
mov edx, ebx
mov ecx, esi
call fcn.00464fc1
mov edx, dword [ebx + 4]
mov ecx, dword [edi + 0x10]
add edx, edx
mov ecx, dword [ecx + edx*8 + 4]
mov ecx, dword [ecx + 4]
mov ecx, dword [ecx + 0x2c]
mov dword [eax], ecx
mov dword [eax + 4], 0
jmp 0x441abb
mov edx, ebx
mov ecx, esi
call fcn.00464fc1
mov edx, dword [ebx + 4]
mov ecx, dword [edi + 0x10]
add edx, edx
mov dword [ebp - 0x3c], eax
mov esi, dword [ecx + edx*8 + 4]
xor edx, edx
mov ecx, dword [ebx + 0xc]
test ecx, ecx
je 0x49b87e
mov eax, dword [esi + 4]
mov edx, dword [eax + 0x2c]
cmp edx, ecx
jae 0x49b87e
mov edx, ecx
mov ecx, esi
call fcn.00507df2
mov ecx, dword [ebp - 0x3c]
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp 0x441abb
movzx eax, word [ebx + 2]
mov ecx, edi
mov dword [ebp - 0x3c], eax
push 0
lea eax, [eax*4 + 0x1c]
push eax
call fcn.004584c7
mov esi, eax
add esp, 8
test esi, esi
je 0x499dd3
mov dword [esi], 0
mov eax, 0x66666667
mov ecx, dword [ebx + 0x10]
mov dword [esi + 4], ecx
mov ecx, ebx
sub ecx, dword [ebp - 0x14]
imul ecx
mov dword [esi + 0x14], 0
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esi + 0x10], eax
mov eax, dword [ebp - 0x2c]
mov dword [esi + 0xc], eax
mov eax, dword [ebp - 0x3c]
mov byte [esi + 0x19], al
add byte [ebx], 2
mov byte [ebx + 1], 0xf0
mov dword [ebx + 0x10], esi
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebp - 0x24]
mov esi, dword [ebx + 0x10]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov dword [ebp - 0x18], ecx
cmp dword [esi], ecx
je 0x49b945
movzx edx, byte [esi + 0x19]
sub edx, 1
mov dword [esi], ecx
js 0x49b945
mov ecx, dword [ebp - 0x24]
lea eax, [edx + 7]
lea eax, [esi + eax*4]
mov dword [ebp - 0x3c], eax
mov edi, eax
mov eax, dword [ebx + 8]
lea edi, [edi - 4]
add eax, edx
sub edx, 1
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov dword [edi + 4], eax
jns 0x49b929
mov edi, dword [ebp - 0x58]
mov ecx, dword [ebp - 0x18]
mov ax, word [ecx + 8]
mov edx, 0x3e20
and ax, dx
or ax, 1
mov word [ecx + 8], ax
lea eax, [esi + 0x1c]
mov ecx, dword [esi + 4]
push eax
movzx eax, byte [esi + 0x19]
push eax
mov eax, dword [ecx + 0x10]
push esi
call eax
mov eax, dword [esi + 0x14]
add esp, 0xc
test eax, eax
je 0x49b9c4
jle 0x49b999
push dword [ebp - 0x18]
call fcn.0051474b
add esp, 4
push eax
push 0x401e58
push dword [ebp - 0x2c]
call fcn.0050d74c
mov eax, dword [esi + 0x14]
add esp, 0xc
mov dword [ebp - 0x20], eax
push dword [ebx + 4]
mov edx, dword [ebp - 0x2c]
mov ecx, edi
push dword [esi + 0x10]
lea edx, [edx + 0xdc]
call fcn.00464334
mov edx, dword [ebp - 0x20]
add esp, 8
mov dword [esi + 0x14], 0
test edx, edx
jne 0x49b5f7
mov esi, dword [ebp - 0x18]
test byte [esi + 8], 0x12
je 0x441abb
movzx edx, byte [ebp - 0x60]
mov ecx, esi
call fcn.00480ca3
mov ecx, esi
call fcn.00441760
test eax, eax
jne 0x49bd37
jmp 0x441abb
test byte [esi + 0x98], 0x10
jne 0x442075
mov eax, dword [ebx + 0x10]
test eax, eax
jne 0x49ba12
mov eax, dword [esi + 0xc0]
test eax, eax
je 0x442075
test cl, 0x40
je 0x49ba45
mov edi, dword [edi + 0xc8]
mov edx, eax
mov ecx, esi
call fcn.0050d778
mov esi, eax
mov eax, dword [ebp - 0x58]
push esi
push dword [eax + 0xcc]
call edi
push esi
call fcn.0045984d
mov esi, dword [ebp - 0x2c]
add esp, 0xc
jmp 0x442075
cmp dword [edi + 0xb8], 1
push eax
jle 0x49ba87
push 0x40bfc4
push edi
call fcn.00449ecd
mov ecx, dword [edi + 0xc8]
add esp, 0xc
mov esi, eax
push esi
push dword [ebp - 0x2c]
push dword [edi + 0xcc]
push 1
call ecx
add esp, 0x10
mov edx, esi
mov ecx, edi
call fcn.00508acb
mov esi, dword [ebp - 0x2c]
jmp 0x442075
mov eax, dword [edi + 0xc8]
push esi
push dword [edi + 0xcc]
push 1
call eax
add esp, 0x10
jmp 0x442075
cmp byte [ebx], 0xa8
je 0x441abb
mov ecx, 1
cmp dword [esi + 0x6c], ecx
jle 0x49bad2
mov eax, 0x14
mov edx, dword [esi + 0x68]
cmp byte [eax + edx], 0x11
jne 0x49bac9
mov dword [eax + edx + 4], 0
inc ecx
add eax, 0x14
cmp ecx, dword [esi + 0x6c]
jl 0x49bab8
xor eax, eax
jmp 0x442084
movzx eax, word [ebx + 2]
test ax, ax
je 0x49bb15
push dword [eax*4 + 0x40ffd0]
push 0x40bd2c
push esi
call fcn.0050d74c
mov eax, dword [ebx + 0x10]
add esp, 0xc
test eax, eax
je 0x49bb26
push eax
push dword [esi + 0x7c]
push 0x40bd90
push edi
call fcn.00449ecd
add esp, 0x10
mov dword [esi + 0x7c], eax
jmp 0x49bb26
push dword [ebx + 0x10]
push 0x401e58
push esi
call fcn.0050d74c
add esp, 0xc
push dword [esi + 0x7c]
push dword [esi + 0xc0]
push dword [ebp - 0x18]
push 0x40bd98
push dword [ebx + 4]
call fcn.00512fdf
add esp, 0x14
jmp 0x441b27
mov dword [esi + 0x28], 5
jmp 0x441b50
mov dword [ebp - 0x20], 1
jmp 0x441b50
mov ecx, 0x1512e
call fcn.005088ce
mov edx, eax
mov dword [ebp - 0x20], edx
jmp 0x49b5f7
push 0x40bd44
jmp 0x49bd99
mov ecx, ebx
mov dword [ebp - 0x20], 5
sub ecx, dword [ebp - 0x14]
mov eax, 0x66666667
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esi + 0x24], eax
mov byte [edi + 0x4f], 0
mov dword [esi + 0x28], 5
jmp 0x441b50
mov edx, 8
mov dword [ebp - 0x20], edx
jmp 0x49be1c
cmp dl, 5
jne 0x49be1c
mov ecx, ebx
mov eax, 0x66666667
sub ecx, dword [ebp - 0x14]
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esi + 0x24], eax
mov eax, dword [ebp - 0x20]
mov dword [esi + 0x28], eax
jmp 0x441b50
mov edx, dword [esi + 0x7c]
mov ecx, edi
call fcn.00508acb
mov edx, 0x40beec
mov ecx, edi
call fcn.0044e20f
mov dword [esi + 0x7c], eax
mov edx, dword [ebx + 4]
mov ecx, edx
mov eax, dword [edi + 0x10]
add ecx, ecx
mov eax, dword [eax + ecx*8 + 0xc]
mov eax, dword [eax]
cmp eax, dword [ebp - 0x70]
je 0x49bc1c
mov ecx, edi
call fcn.0050bce1
mov eax, dword [esi + 0x98]
mov edx, 0x11
and eax, 0xfffffffd
or eax, 1
mov dword [esi + 0x98], eax
jmp 0x499df0
mov edx, 0x204
mov dword [ebp - 0x20], edx
jmp 0x49be1c
mov edx, 6
mov byte [esi + 0x92], 2
mov dword [ebp - 0x20], edx
jmp 0x49be1c
mov ecx, edi
call fcn.0050bc6d
jmp 0x499dd6
push 0x40bf44
push esi
mov dword [ebp - 0x20], 1
call fcn.0050d74c
add esp, 8
mov edx, 1
jmp 0x49be1c
push eax
call fcn.0051474b
add esp, 4
jmp 0x49bcab
xor eax, eax
cmp byte [edi + 0x51], al
sete al
lea eax, [eax*2 + 7]
mov ecx, eax
mov dword [ebp - 0x20], eax
mov dword [esi + 0x28], eax
call fcn.005090fd
push eax
push 0x401e58
push esi
call fcn.0050d74c
mov edx, dword [ebp - 0x20]
add esp, 0xc
jmp 0x49be1c
mov dword [ebp - 0x20], 1
mov eax, 0x40bf6c
cmp esi, 5
je 0x49bcd8
mov eax, 0x40bf08
mov esi, dword [ebp - 0x2c]
push eax
push 0x40bf10
push esi
call fcn.0050d74c
mov edx, dword [ebp - 0x20]
add esp, 0xc
jmp 0x49be1c
mov eax, dword [ebp - 0x3c]
push dword [ebp - 0xb0]
mov eax, dword [eax + 0x1c]
call eax
add esp, 4
jmp 0x499dd3
mov edx, 6
mov dword [ebp - 0x20], edx
jmp 0x49b5f7
cmp eax, 5
jne 0x49bd1c
mov al, 2
mov byte [esi + 0x92], al
jmp 0x49be1c
mov edx, 6
mov dword [ebp - 0x20], edx
jmp 0x49be1c
mov edi, dword [ebp - 0x58]
mov esi, dword [ebp - 0x2c]
push 0x40bcd0
push esi
call fcn.0050d74c
mov edx, 0x12
jmp 0x499ded
mov ecx, eax
call fcn.00477924
test eax, eax
jne 0x499dd6
mov eax, dword [ebp - 0x70]
jmp 0x442b0f
mov eax, dword [edi + 0xc8]
push 0
push esi
push dword [edi + 0xcc]
push 4
call eax
add esp, 0x10
jmp 0x442b45
mov edx, 0x204
mov ecx, edi
call fcn.0047e694
mov al, 1
jmp 0x443034
push 0x40be44
push esi
call fcn.0050d74c
mov edx, 5
jmp 0x499ded
mov ecx, ebx
mov dword [ebp - 0x20], 5
sub ecx, dword [ebp - 0x14]
mov eax, 0x66666667
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esi + 0x24], eax
mov al, 1
sub al, byte [ebp - 0x70]
mov byte [edi + 0x4f], al
mov dword [esi + 0x28], 5
jmp 0x441b50
test ecx, ecx
jne 0x49bde8
mov eax, 0x40bdb0
jmp 0x49bdf6
mov eax, 0x40bde0
test edx, edx
jne 0x49bdf6
mov eax, 0x40bec0
push eax
push esi
call fcn.0050d74c
mov edx, 1
add esp, 8
mov dword [ebp - 0x20], edx
jmp 0x49be1c
mov dword [ebp - 0x88], 0xffffffff
mov edx, 9
mov dword [ebp - 0x20], edx
cmp byte [edi + 0x51], 0
je 0x49be2a
mov edx, 7
mov dword [ebp - 0x20], edx
cmp dword [esi + 0x7c], 0
jne 0x49be51
cmp edx, 0xc0a
je 0x49be51
mov ecx, edx
call fcn.005090fd
push eax
push 0x401e58
push esi
call fcn.0050d74c
mov edx, dword [ebp - 0x20]
add esp, 0xc
mov ecx, edi
mov dword [esi + 0x28], edx
call fcn.0050c7da
push dword [esi + 0x7c]
mov ecx, ebx
mov eax, 0x66666667
sub ecx, dword [ebp - 0x14]
push dword [esi + 0xc0]
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
push eax
mov eax, dword [ebp - 0x20]
push 0x40bf74
push eax
call fcn.00512fdf
add esp, 0x14
mov ecx, esi
call fcn.0043ef30
cmp dword [ebp - 0x20], 0xc0a
jne 0x49bea3
mov ecx, edi
call fcn.0050ae7e
mov al, byte [ebp - 0x65]
mov dword [ebp - 0x20], 1
test al, al
je 0x441b50
movzx edx, al
mov ecx, edi
dec edx
call fcn.0050bce1
jmp 0x441b50
mov eax, dword [edi + 0x148]
test eax, eax
je 0x441b61
add edx, dword [edi + 0x150]
push dword [edi + 0x14c]
mov dword [ebp - 0x88], edx
call eax
add esp, 4
test eax, eax
je 0x441b50
jmp 0x49be0a