Function at 0x44c7d0
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x334
mov eax, dword [0x511538]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
mov esi, ecx
mov eax, dword [esi + 4]
mov ebx, dword [esi + 8]
mov dword [ebp - 0x118], eax
mov dword [ebp - 0xe0], eax
xor eax, eax
push edi
mov edi, dword [esi]
mov cl, byte [edi + 0x3e]
mov edx, dword [edi + 0x20]
mov dword [ebp - 0xd8], eax
mov byte [ebp - 0x129], al
mov dword [ebp - 0x198], eax
mov dword [ebp - 0x158], eax
mov dword [ebp - 0x18c], eax
mov dword [ebp - 0x190], eax
mov eax, dword [edi + 0x24]
push esi
mov dword [ebp - 0xec], esi
mov dword [ebp - 0xdc], edi
mov byte [ebp - 0x11d], cl
mov dword [ebp - 0x128], ebx
mov dword [ebp - 0x150], edx
mov dword [ebp - 0x14c], eax
call fcn.004460a0
add esp, 4
cmp dword [esi + 0x50], 7
je 0x451aca
xor eax, eax
mov dword [esi + 0x50], eax
mov dword [esi + 0x88], eax
mov dword [esi + 0x8c], eax
mov dword [esi + 0x14], eax
mov ecx, dword [edi + 0xf0]
mov dword [edi + 0x1c4], eax
test ecx, ecx
jne 0x451b1a
cmp dword [edi + 0x124], eax
je 0x44c8a7
mov ecx, dword [edi + 0x12c]
mov eax, dword [esi + 0x7c]
xor edx, edx
div ecx
sub ecx, edx
mov dword [ebp - 0x18c], ecx
mov eax, dword [esi + 0x4c]
lea edx, [eax + eax*4]
mov eax, dword [ebp - 0x118]
lea ecx, [eax + edx*4]
mov dword [ebp - 0xe0], ecx
lea esp, [esp]
cmp byte [edi + 0x41], 0
jne 0x451aca
mov edi, dword [ebp - 0xe0]
mov dl, byte [edi]
inc dword [ebp - 0x158]
movzx eax, dl
lea ecx, [eax - 1]
cmp ecx, 0x9d
ja case.0x44c8ea.62
jmp dword [ecx*4 + 0x451b50]
mov eax, dword [edi + 4]
lea edx, [eax + eax*4]
lea ebx, [ebx + edx*8]
mov eax, 4
mov word [ebx + 8], ax
mov ecx, edi
sub ecx, dword [ebp - 0x118]
mov eax, 0x66666667
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cdq
mov dword [ebx], eax
mov dword [ebx + 4], edx
jmp 0x45185c
mov edi, dword [edi + 4]
lea ecx, [edi + edi*4]
lea eax, [ebx + ecx*8]
mov ecx, dword [eax]
lea edx, [ecx + ecx*4]
mov ecx, dword [ebp - 0x118]
lea edx, [ecx + edx*4]
mov ecx, 0x80
mov word [eax + 8], cx
jmp 0x45186c
mov eax, dword [edi + 4]
lea edx, [eax + eax*4]
mov eax, dword [edi + 0xc]
lea ecx, [ebx + edx*8]
dec eax
cdq
mov dword [ecx], eax
mov eax, 4
mov dword [ecx + 4], edx
mov word [ecx + 8], ax
cmp dword [edi + 8], 0
jne 0x45185c
jmp case.0x44c8ea.62
mov edi, dword [edi + 4]
lea ecx, [edi + edi*4]
mov eax, dword [ebx + ecx*8]
lea ebx, [ebx + ecx*8]
mov ecx, dword [ebp - 0x118]
lea edx, [eax + eax*4]
mov eax, dword [ecx + edx*4 + 8]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*4 - 0x14]
mov edx, 0x80
mov dword [ebp - 0xe0], ecx
mov word [ebx + 8], dx
jmp 0x451872
mov eax, dword [edi + 4]
mov esi, dword [ebp - 0x118]
lea eax, [eax + eax*4]
lea ebx, [ebx + eax*8]
sub edi, esi
mov eax, 0x66666667
imul edi
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cdq
mov ecx, 4
mov word [ebx + 8], cx
mov ecx, dword [ebx]
mov dword [ebx + 4], edx
lea edx, [ecx + ecx*4]
mov dword [ebx], eax
lea eax, [esi + edx*4]
mov dword [ebp - 0xe0], eax
jmp 0x451872
mov eax, dword [edi + 0xc]
lea ecx, [eax + eax*4]
test byte [ebx + ecx*8 + 8], 1
je case.0x44c8ea.62
mov ecx, edi
sub ecx, dword [ebp - 0x118]
mov eax, 0x66666667
imul ecx
sar edx, 3
mov ebx, edx
shr ebx, 0x1f
add ebx, edx
cmp dword [edi + 4], 0
jne 0x4518a5
mov eax, dword [esi + 0xb0]
test eax, eax
je 0x4518a5
mov edx, dword [eax + 4]
dec dword [esi + 0xb8]
mov ecx, dword [ebp - 0xdc]
mov dword [esi + 0xb0], edx
mov esi, dword [esi + 0x5c]
add dword [ecx + 0x54], esi
mov edi, eax
mov dword [ecx + 0x50], esi
call fcn.00446bc0
mov ecx, dword [ebp - 0xdc]
mov edx, dword [ecx + 0x20]
mov ecx, dword [ecx + 0x24]
mov dword [ebp - 0x150], edx
mov edx, dword [ebp - 0xe0]
cmp dword [edx + 8], 4
mov dword [ebp - 0x14c], ecx
mov ecx, dword [ebp - 0xec]
jne 0x44ca8b
mov edx, dword [ecx + 4]
lea eax, [eax + eax*4]
mov eax, dword [edx + eax*4 + 8]
dec eax
mov edx, dword [ecx + 4]
mov ecx, dword [ecx + 8]
lea eax, [eax + eax*4]
mov dword [ebp - 0x128], ecx
lea ecx, [edx + eax*4]
mov dword [ebp - 0x118], edx
mov dword [ebp - 0xe0], ecx
jmp 0x451872
mov eax, dword [edi + 8]
lea edx, [eax + eax*4]
mov eax, dword [esi + 8]
lea eax, [eax + edx*8]
mov ecx, 0x2460
test word [eax + 8], cx
je 0x44cada
call fcn.0044c790
mov ecx, eax
mov eax, dword [edi + 4]
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp case.0x44c8ea.62
mov edx, 4
mov word [eax + 8], dx
mov ecx, eax
mov eax, dword [edi + 4]
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp case.0x44c8ea.62
mov eax, dword [edi + 8]
mov ecx, dword [esi + 8]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov edx, 0x2460
test word [eax + 8], dx
je 0x44cb21
call fcn.0044c790
mov ecx, dword [edi + 0x10]
mov edx, dword [ecx]
mov dword [eax], edx
mov ecx, dword [ecx + 4]
mov dword [eax + 4], ecx
jmp case.0x44c8ea.62
mov ecx, 4
mov word [eax + 8], cx
mov ecx, dword [edi + 0x10]
mov edx, dword [ecx]
mov dword [eax], edx
mov ecx, dword [ecx + 4]
mov dword [eax + 4], ecx
jmp case.0x44c8ea.62
mov eax, dword [edi + 8]
lea edx, [eax + eax*4]
mov eax, dword [esi + 8]
lea eax, [eax + edx*8]
mov ecx, 0x2460
test word [eax + 8], cx
je 0x44cb5a
call fcn.0044c790
jmp 0x44cb63
mov edx, 4
mov word [eax + 8], dx
mov ecx, 8
mov word [eax + 8], cx
mov edx, dword [edi + 0x10]
fld qword [edx]
fstp qword [eax]
jmp case.0x44c8ea.62
mov eax, dword [edi + 8]
mov ecx, dword [esi + 8]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov edx, 0x2460
test word [eax + 8], dx
je 0x44cb96
call fcn.0044c790
jmp 0x44cb9f
mov ecx, 4
mov word [eax + 8], cx
mov dword [ebp - 0xe4], eax
mov eax, dword [edi + 0x10]
mov byte [edi], 0x19
mov dword [ebp - 0xf4], eax
call fcn.00429250
cmp byte [ebp - 0x11d], 1
mov dword [edi + 4], eax
je 0x44cc4f
mov edx, dword [ebp - 0xf4]
mov ecx, dword [ebp - 0xe4]
push 0
push 1
push edx
or eax, 0xffffffff
call fcn.004447b0
add esp, 0xc
mov dword [ebp - 0xd8], eax
cmp eax, 0x12
je 0x451afd
movzx ecx, byte [ebp - 0x11d]
mov edi, dword [ebp - 0xe4]
mov eax, edi
call fcn.00443bb0
test eax, eax
jne 0x451aca
mov dword [edi + 0x18], eax
mov eax, 0x800
or word [edi + 8], ax
mov edi, dword [ebp - 0xe0]
cmp byte [edi + 1], 0xff
jne 0x44cc33
mov eax, dword [edi + 0x10]
mov ecx, dword [ebp - 0xdc]
call fcn.004267e0
mov eax, dword [ebp - 0xe4]
mov byte [edi + 1], 0xff
mov ecx, dword [eax + 0x10]
mov dword [edi + 0x10], ecx
mov edx, dword [eax + 0xc]
mov dword [edi + 4], edx
mov edi, dword [ebp - 0xe0]
mov eax, dword [edi + 4]
mov ecx, dword [ebp - 0xdc]
cmp eax, dword [ecx + 0x58]
jg 0x451afd
mov eax, dword [edi + 8]
lea edx, [eax + eax*4]
mov eax, dword [esi + 8]
lea eax, [eax + edx*8]
mov ecx, 0x2460
test word [eax + 8], cx
je 0x44cc7f
call fcn.0044c790
jmp 0x44cc88
mov edx, 4
mov word [eax + 8], dx
mov ecx, 0xa02
mov word [eax + 8], cx
mov edx, dword [edi + 0x10]
mov dword [eax + 0x10], edx
mov ecx, dword [edi + 4]
mov dl, byte [ebp - 0x11d]
mov dword [eax + 0xc], ecx
mov byte [eax + 0xa], dl
cmp byte [edi + 3], 0
je case.0x44c8ea.62
mov ecx, dword [edi + 0xc]
lea ecx, [ecx + ecx*4]
mov edx, dword [ebx + ecx*8]
or edx, dword [ebx + ecx*8 + 4]
je case.0x44c8ea.62
mov ecx, 0xa10
mov word [eax + 8], cx
jmp case.0x44c8ea.62
mov eax, dword [edi + 8]
lea edx, [eax + eax*4]
mov eax, dword [esi + 8]
lea eax, [eax + edx*8]
mov ecx, 0x2460
test word [eax + 8], cx
je 0x44ccef
call fcn.0044c790
jmp 0x44ccf8
mov edx, 4
mov word [eax + 8], dx
mov esi, dword [edi + 0xc]
sub esi, dword [edi + 8]
mov ebx, eax
mov eax, dword [edi + 4]
neg eax
sbb eax, eax
and eax, 0x100
inc eax
movzx eax, ax
mov dword [ebp - 0xf4], eax
mov word [ebx + 8], ax
test esi, esi
jle case.0x44c8ea.62
add ebx, 0x28
mov eax, ebx
call fcn.004444d0
mov cx, word [ebp - 0xf4]
dec esi
mov word [ebx + 8], cx
test esi, esi
jg 0x44cd22
jmp case.0x44c8ea.62
mov eax, dword [edi + 4]
lea edx, [eax + eax*4]
mov cx, word [ebx + edx*8 + 8]
lea eax, [ebx + edx*8]
mov edx, 0xff7f
and cx, dx
or cx, 1
mov word [eax + 8], cx
jmp case.0x44c8ea.62
mov eax, dword [edi + 8]
mov ecx, dword [esi + 8]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov edx, 0x2460
test word [eax + 8], dx
je 0x44cd82
call fcn.0044c790
jmp 0x44cd8b
mov ecx, 4
mov word [eax + 8], cx
mov edx, dword [edi + 0x10]
push 0
mov esi, eax
mov eax, dword [edi + 4]
push 0
push edx
mov ecx, esi
call fcn.004447b0
mov al, byte [ebp - 0x11d]
add esp, 0xc
mov byte [esi + 0xa], al
jmp case.0x44c8ea.62
mov eax, dword [edi + 4]
mov edx, dword [esi + 0x3c]
lea ecx, [eax + eax*4]
lea ebx, [edx + ecx*8 - 0x28]
mov ecx, ebx
call fcn.00444620
test eax, eax
jne 0x451afd
mov eax, dword [edi + 8]
mov ecx, dword [esi + 8]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov edx, 0x2460
test word [eax + 8], dx
je 0x44cdfc
call fcn.0044c790
push 0x800
push ebx
push eax
call fcn.00444680
add esp, 0xc
jmp case.0x44c8ea.62
push 0x800
mov ecx, 4
push ebx
push eax
mov word [eax + 8], cx
call fcn.00444680
add esp, 0xc
jmp case.0x44c8ea.62
mov eax, dword [edi + 4]
mov edx, dword [edi + 0xc]
lea eax, [eax + eax*4]
lea ecx, [ebx + eax*8]
mov eax, dword [edi + 8]
mov dword [ebp - 0xe8], edx
lea edx, [eax + eax*4]
mov dword [ebp - 0xe4], ecx
lea esi, [ebx + edx*8]
mov ebx, dword [ebp - 0xe4]
mov eax, esi
call fcn.00444770
mov eax, 0x1000
test word [esi + 8], ax
je 0x44ce67
mov eax, esi
call fcn.00443d00
test eax, eax
jne 0x451aca
mov edi, dword [ebp - 0xe0]
add dword [ebp - 0xe4], 0x28
add esi, 0x28
dec dword [ebp - 0xe8]
jne 0x44ce3a
jmp case.0x44c8ea.62
mov eax, dword [edi + 4]
mov ecx, dword [edi + 0xc]
lea edx, [eax + eax*4]
mov eax, dword [edi + 8]
lea eax, [eax + eax*4]
lea esi, [ebx + edx*8]
mov dword [ebp - 0xe8], ecx
lea ebx, [ebx + eax*8]
lea esp, [esp]
push 0x1000
push esi
push ebx
call fcn.00444680
mov ecx, 0x1000
add esp, 0xc
test word [ebx + 8], cx
je 0x44cecf
mov eax, ebx
call fcn.00443d00
test eax, eax
jne 0x451aca
mov edi, dword [ebp - 0xe0]
mov eax, dword [ebp - 0xe8]
mov edx, eax
dec eax
mov dword [ebp - 0xe8], eax
test edx, edx
je case.0x44c8ea.62
add ebx, 0x28
add esi, 0x28
jmp 0x44cea0
mov eax, dword [edi + 4]
lea eax, [eax + eax*4]
lea ecx, [ebx + eax*8]
mov eax, dword [edi + 8]
push 0x1000
lea edx, [eax + eax*4]
push ecx
lea eax, [ebx + edx*8]
push eax
call fcn.00444680
add esp, 0xc
jmp case.0x44c8ea.62
mov ecx, dword [ebp - 0xdc]
mov eax, dword [ecx + 0x124]
test eax, eax
je 0x44cf46
mov edx, dword [ebp - 0x18c]
cmp dword [ebp - 0x158], edx
jb 0x44cf46
mov edx, dword [ecx + 0x128]
push edx
call eax
add esp, 4
test eax, eax
jne 0x4514c6
mov esi, dword [ebp - 0xec]
push 0
call fcn.004478a0
add esp, 4
mov dword [ebp - 0xd8], eax
test eax, eax
jne case.0x44c8ea.62
push 1
push esi
call fcn.00447780
add esp, 8
mov dword [ebp - 0xd8], eax
test eax, eax
jne case.0x44c8ea.62
mov eax, dword [esi + 0x48]
mov edx, dword [ebp - 0x128]
add eax, 2
or eax, 1
mov dword [esi + 0x48], eax
mov eax, dword [edi + 4]
lea ecx, [eax + eax*4]
lea ebx, [edx + ecx*8]
mov dword [esi + 0x14], ebx
cmp dword [edi + 8], 0
mov dword [ebp - 0xf4], 0
jle 0x44cff2
jmp 0x44cfb0
mov eax, 0x1000
test word [ebx + 8], ax
je 0x44cfd6
mov eax, ebx
call fcn.00443d00
test eax, eax
jne 0x451aca
mov edi, dword [ebp - 0xe0]
mov esi, dword [ebp - 0xec]
mov eax, ebx
call fcn.00443e10
mov eax, dword [ebp - 0xf4]
inc eax
add ebx, 0x28
mov dword [ebp - 0xf4], eax
cmp eax, dword [edi + 8]
jl 0x44cfb0
mov ecx, dword [ebp - 0xdc]
cmp byte [ecx + 0x41], 0
jne 0x451aca
mov ecx, dword [ebp - 0xe0]
sub ecx, dword [ebp - 0x118]
mov eax, 0x66666667
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
lea ecx, [edx + eax + 1]
mov dword [esi + 0x4c], ecx
mov ebx, 0x64
jmp 0x451575
mov eax, dword [edi + 4]
lea eax, [eax + eax*4]
lea ecx, [ebx + eax*8]
mov eax, dword [edi + 8]
lea edx, [eax + eax*4]
mov eax, dword [edi + 0xc]
lea edx, [ebx + edx*8]
lea eax, [eax + eax*4]
lea ebx, [ebx + eax*8]
movzx eax, word [ecx + 8]
mov dword [ebp - 0xe4], ecx
mov cl, byte [edx + 8]
or cl, al
mov dword [ebp - 0xfc], edx
test cl, 1
je 0x44d06f
mov eax, ebx
call fcn.004444d0
jmp case.0x44c8ea.62
test eax, 0x4000
je 0x44d089
mov eax, dword [ebp - 0xe4]
call fcn.00443d70
test eax, eax
jne 0x451aca
mov eax, dword [ebp - 0xfc]
mov edx, 0x4000
test word [eax + 8], dx
je 0x44d0a7
call fcn.00443d70
test eax, eax
jne 0x451aca
mov ecx, dword [ebp - 0xe4]
test byte [ecx + 8], 0x12
jne 0x44d0ce
mov edx, dword [ebp - 0x11d]
push 0
push edx
mov eax, ecx
call fcn.00443e30
add esp, 8
test eax, eax
jne 0x451aca
mov eax, dword [ebp - 0xfc]
test byte [eax + 8], 0x12
jne 0x44d0f3
mov ecx, dword [ebp - 0x11d]
push 0
push ecx
call fcn.00443e30
add esp, 8
test eax, eax
jne 0x451aca
mov edx, dword [ebp - 0xe4]
mov eax, dword [edx + 0xc]
mov ecx, dword [ebp - 0xfc]
add eax, dword [ecx + 0xc]
cdq
mov ecx, edx
mov edx, dword [ebp - 0xdc]
mov edi, eax
mov eax, dword [edx + 0x58]
cdq
mov dword [ebp - 0x2e0], edi
cmp ecx, edx
jg 0x451afd
jl 0x44d12c
cmp edi, eax
ja 0x451afd
mov esi, dword [ebp - 0xfc]
xor eax, eax
cmp ebx, esi
sete al
lea ecx, [edi + 2]
mov edi, ebx
call fcn.00443bd0
test eax, eax
jne 0x451aca
mov ax, word [ebx + 8]
mov ecx, 0xbe02
and ax, cx
or ax, 2
mov word [ebx + 8], ax
cmp ebx, esi
je 0x44d177
mov edx, dword [esi + 0xc]
mov eax, dword [esi + 0x10]
mov ecx, dword [ebx + 0x10]
push edx
push eax
push ecx
call fcn.004d5420
add esp, 0xc
mov eax, dword [ebp - 0xe4]
mov edx, dword [eax + 0xc]
mov ecx, dword [ebx + 0x10]
mov eax, dword [eax + 0x10]
add ecx, dword [esi + 0xc]
push edx
push eax
push ecx
call fcn.004d5420
mov eax, dword [ebp - 0x2e0]
mov edx, dword [ebx + 0x10]
mov byte [eax + edx], 0
mov ecx, dword [ebx + 0x10]
mov byte [ecx + eax + 1], 0
mov dword [ebx + 0xc], eax
mov al, byte [ebp - 0x11d]
mov edx, 0x200
add esp, 0xc
or word [ebx + 8], dx
mov byte [ebx + 0xa], al
jmp 0x451872
mov eax, dword [edi + 4]
lea ecx, [eax + eax*4]
lea esi, [ebx + ecx*8]
mov eax, esi
call fcn.0044c770
movzx edx, ax
mov eax, dword [edi + 8]
lea eax, [eax + eax*4]
lea eax, [ebx + eax*8]
mov dword [ebp - 0x114], edx
mov dword [ebp - 0xfc], eax
call fcn.0044c770
movzx ecx, ax
mov eax, dword [edi + 0xc]
lea edx, [eax + eax*4]
lea eax, [ebx + edx*8]
mov ebx, dword [ebp - 0xfc]
mov dword [ebp - 0xe8], ecx
mov cl, byte [ebx + 8]
or cl, byte [esi + 8]
mov dword [ebp - 0xe4], eax
test cl, 1
jne 0x44d47e
mov dl, byte [ebp - 0xe8]
and dl, byte [ebp - 0x114]
test dl, 4
je 0x44d369
mov edx, dword [ebx]
mov eax, dword [esi]
mov ecx, dword [esi + 4]
mov dword [ebp - 0x148], edx
mov edx, dword [ebx + 4]
mov dword [ebp - 0x144], edx
movzx edx, byte [edi]
add edx, 0xffffffa7
mov byte [ebp - 0x119], 1
cmp edx, 3
ja case.default.0x44d25e
jmp dword [edx*4 + 0x451dc8]
push ecx
push eax
lea eax, [ebp - 0x148]
push eax
call fcn.0042a4e0
add esp, 0xc
test eax, eax
jne 0x44d370
jmp 0x44d339
push ecx
push eax
lea edx, [ebp - 0x148]
call fcn.0042a580
add esp, 8
test eax, eax
jne 0x44d370
jmp 0x44d339
push ecx
push eax
lea ecx, [ebp - 0x148]
push ecx
call fcn.0042a5d0
add esp, 0xc
test eax, eax
jne 0x44d370
jmp 0x44d339
mov edx, eax
or edx, ecx
je 0x44d47e
mov edx, eax
and edx, ecx
cmp edx, 0xffffffff
jne 0x44d2e7
cmp dword [ebp - 0x148], 0
jne 0x44d2e7
cmp dword [ebp - 0x144], 0x80000000
je 0x44d370
push ecx
mov ecx, dword [ebp - 0x148]
push eax
mov eax, dword [ebp - 0x144]
push eax
push ecx
call fcn.004dc670
jmp 0x44d32d
mov edx, eax
or edx, ecx
je 0x44d47e
mov edx, eax
and edx, ecx
cmp edx, 0xffffffff
jne 0x44d318
mov eax, 1
xor ecx, ecx
push ecx
mov ecx, dword [ebp - 0x148]
push eax
mov eax, dword [ebp - 0x144]
push eax
push ecx
call fcn.004dd770
mov dword [ebp - 0x144], edx
mov dword [ebp - 0x148], eax
mov eax, dword [ebp - 0xe4]
mov edx, dword [ebp - 0x148]
mov ecx, dword [ebp - 0x144]
mov dword [eax], edx
mov dx, word [eax + 8]
mov dword [eax + 4], ecx
mov ecx, 0xbe04
and dx, cx
or dx, 4
mov word [eax + 8], dx
jmp case.0x44c8ea.62
mov byte [ebp - 0x119], 0
mov eax, esi
call fcn.004441d0
fstp qword [ebp - 0xf8]
mov eax, ebx
call fcn.004441d0
movzx eax, byte [edi]
add eax, 0xffffffa7
cmp eax, 3
ja case.default.0x44d38f
jmp dword [eax*4 + 0x451dd8]
fadd qword [ebp - 0xf8]
jmp 0x44d412
fsub qword [ebp - 0xf8]
jmp 0x44d412
fmul qword [ebp - 0xf8]
jmp 0x44d412
fld qword [ebp - 0xf8]
fld st(0)
fldz
fucompp
fnstsw ax
test ah, 0x44
jnp 0x44d47a
fdivp st(1)
jmp 0x44d412
fld qword [ebp - 0xf8]
call fcn.004dd866
mov esi, eax
mov ebx, edx
call fcn.004dd866
mov ecx, esi
or ecx, ebx
je 0x44d47e
mov ecx, esi
and ecx, ebx
cmp ecx, 0xffffffff
jne 0x44d3f7
mov esi, 1
xor ebx, ebx
push ebx
push esi
push edx
push eax
call fcn.004dd770
mov dword [ebp - 0x228], eax
mov dword [ebp - 0x224], edx
fild qword [ebp - 0x228]
sub esp, 8
fst qword [ebp - 0xf8]
fstp qword [esp]
call fcn.00429220
add esp, 8
test eax, eax
jne 0x44d47e
mov eax, dword [ebp - 0xe4]
fld qword [ebp - 0xf8]
mov dx, word [eax + 8]
fstp qword [eax]
mov ecx, 0xbe08
and dx, cx
or dx, 8
mov word [eax + 8], dx
mov dl, byte [ebp - 0xe8]
or dl, byte [ebp - 0x114]
test dl, 8
jne case.0x44c8ea.62
cmp byte [ebp - 0x119], 0
jne case.0x44c8ea.62
mov edi, eax
call fcn.00444220
jmp 0x451872
fstp st(0)
fstp st(0)
mov eax, dword [ebp - 0xe4]
call fcn.004444d0
jmp case.0x44c8ea.62
mov eax, dword [edi + 4]
test eax, eax
je case.0x44c8ea.62
lea eax, [eax + eax*4]
push 0
push 0
lea eax, [ebx + eax*8]
call fcn.00444530
add esp, 8
jmp case.0x44c8ea.62
movzx ebx, byte [edi + 3]
mov esi, dword [ebp - 0xdc]
lea ecx, [ebx*4 + 0x1c]
push 0
push ecx
call fcn.00426a60
mov ecx, eax
add esp, 8
test ecx, ecx
je 0x451aca
mov esi, dword [ebp - 0xe0]
mov dword [ecx], 0
mov edx, dword [esi + 0x10]
mov dword [ecx + 4], edx
mov edx, esi
sub edx, dword [ebp - 0x118]
mov eax, 0x66666667
imul edx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [ebp - 0xec]
mov byte [ecx + 0x1a], bl
mov ebx, dword [ebp - 0x128]
mov dword [ecx + 0x10], eax
mov dword [ecx + 0xc], edx
mov dword [esi + 0x10], ecx
mov word [esi], 0xec24
mov edi, esi
mov esi, edx
mov ecx, dword [edi + 0xc]
mov eax, dword [edi + 0x10]
lea ecx, [ecx + ecx*4]
lea ecx, [ebx + ecx*8]
mov dword [ebp - 0x100], eax
mov dword [ebp - 0xe4], ecx
cmp dword [eax], ecx
je 0x44d563
mov dword [eax], ecx
movzx ecx, byte [eax + 0x1a]
dec ecx
js 0x44d563
lea edx, [eax + ecx*4 + 0x1c]
jmp 0x44d550
mov eax, dword [edi + 8]
add eax, ecx
lea eax, [eax + eax*4]
lea eax, [ebx + eax*8]
mov dword [edx], eax
sub edx, 4
dec ecx
jns 0x44d550
mov ebx, dword [ebp - 0x100]
mov eax, dword [ebx]
mov cx, word [eax + 8]
mov edx, 0xbe01
and cx, dx
mov edx, dword [ebp - 0x14c]
or cx, 1
mov word [eax + 8], cx
mov eax, dword [ebp - 0xdc]
mov ecx, dword [ebp - 0x150]
mov byte [ebx + 0x19], 0
mov dword [eax + 0x20], ecx
mov dword [eax + 0x24], edx
movzx edx, byte [ebx + 0x1a]
mov eax, dword [ebx + 4]
mov eax, dword [eax + 0xc]
lea ecx, [ebx + 0x1c]
push ecx
push edx
push ebx
call eax
mov eax, dword [ebp - 0xdc]
mov ecx, dword [eax + 0x20]
mov edx, dword [eax + 0x24]
add esp, 0xc
cmp byte [ebx + 0x19], 0
mov dword [ebp - 0x150], ecx
mov dword [ebp - 0x14c], edx
je 0x44d615
cmp dword [ebx + 0x14], 0
je 0x44d5f7
mov eax, dword [ebx]
push eax
call fcn.00449ec0
add esp, 4
push eax
push 0x5013cc
push esi
call fcn.00445100
mov ecx, dword [ebx + 0x14]
add esp, 0xc
mov dword [ebp - 0xd8], ecx
mov edx, dword [edi + 4]
mov eax, dword [ebp - 0x100]
mov ecx, dword [eax + 0x10]
push edx
push ecx
mov ebx, esi
call fcn.00447e10
mov ebx, dword [ebp - 0x100]
add esp, 8
mov edx, dword [ebp - 0xe4]
test byte [edx + 8], 0x12
je case.0x44c8ea.62
movzx ecx, byte [ebp - 0x11d]
mov eax, dword [ebx]
call fcn.00443bb0
mov ecx, dword [ebx]
call fcn.00444620
test eax, eax
jne 0x451afd
jmp case.0x44c8ea.62
mov eax, dword [edi + 4]
lea eax, [eax + eax*4]
lea esi, [ebx + eax*8]
mov eax, dword [edi + 8]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0xc]
lea edx, [eax + eax*4]
lea eax, [ebx + edx*8]
mov dl, byte [ebx + ecx*8 + 8]
or dl, byte [esi + 8]
lea ecx, [ebx + ecx*8]
mov dword [ebp - 0xe4], eax
test dl, 1
je 0x44d67e
call fcn.004444d0
jmp case.0x44c8ea.62
call fcn.00444160
mov ecx, esi
mov dword [ebp - 0x160], eax
mov ebx, edx
call fcn.00444160
mov esi, eax
mov al, byte [edi]
cmp al, 0x55
jne 0x44d6a7
and dword [ebp - 0x160], esi
and ebx, edx
jmp 0x44d78f
cmp al, 0x56
jne 0x44d6b8
or dword [ebp - 0x160], esi
or ebx, edx
jmp 0x44d78f
mov ecx, esi
or ecx, edx
je 0x44d78f
test edx, edx
jg 0x44d6f0
jl 0x44d6cc
test esi, esi
jae 0x44d6e5
mov cl, 0xaf
sub cl, al
mov al, cl
cmp edx, 0xffffffff
jl 0x44d6f0
jg 0x44d6de
cmp esi, 0xffffffc0
jbe 0x44d6f0
neg esi
adc edx, 0
neg edx
test edx, edx
jl 0x44d71e
jg 0x44d6f0
cmp esi, 0x40
jb 0x44d71e
test ebx, ebx
jg 0x44d711
jl 0x44d6ff
cmp dword [ebp - 0x160], 0
jae 0x44d711
cmp al, 0x57
je 0x44d711
or eax, 0xffffffff
cdq
mov dword [ebp - 0x160], eax
mov ebx, edx
jmp 0x44d78f
xor eax, eax
cdq
mov dword [ebp - 0x160], eax
mov ebx, edx
jmp 0x44d78f
cmp al, 0x57
mov eax, dword [ebp - 0x160]
mov edx, ebx
mov ecx, esi
jne 0x44d73f
call fcn.004f24f0
mov dword [ebp - 0x188], eax
mov dword [ebp - 0x184], edx
jmp 0x44d77d
call fcn.004ee450
mov dword [ebp - 0x188], eax
mov dword [ebp - 0x184], edx
test ebx, ebx
jg 0x44d77d
jl 0x44d75f
cmp dword [ebp - 0x160], 0
jae 0x44d77d
mov ecx, 0x40
sub ecx, esi
or eax, 0xffffffff
or edx, 0xffffffff
call fcn.004f24f0
or dword [ebp - 0x188], eax
or dword [ebp - 0x184], edx
mov edx, dword [ebp - 0x188]
mov ebx, dword [ebp - 0x184]
mov dword [ebp - 0x160], edx
mov eax, dword [ebp - 0xe4]
mov ecx, dword [ebp - 0x160]
mov dx, word [eax + 8]
mov dword [eax], ecx
mov ecx, 0xbe04
and dx, cx
or dx, 4
mov dword [eax + 4], ebx
mov word [eax + 8], dx
jmp case.0x44c8ea.62
mov eax, dword [edi + 4]
lea edx, [eax + eax*4]
mov eax, dword [ebp - 0x128]
lea esi, [eax + edx*8]
call fcn.004442c0
mov eax, dword [edi + 8]
cdq
add dword [esi], eax
adc dword [esi + 4], edx
jmp case.0x44c8ea.62
mov eax, dword [edi + 4]
lea ecx, [eax + eax*4]
movzx eax, word [ebx + ecx*8 + 8]
lea esi, [ebx + ecx*8]
test al, 4
jne 0x44d831
test al, 8
jne 0x44d803
test al, 2
je 0x44d810
push 1
mov eax, esi
call fcn.0044c5b0
add esp, 4
jmp 0x44d810
mov edi, esi
call fcn.00444220
mov edi, dword [ebp - 0xe0]
movzx eax, word [esi + 8]
test al, 4
jne 0x44d831
cmp dword [edi + 8], 0
jne 0x45185c
mov dword [ebp - 0xd8], 0x14
jmp 0x44f87a
and eax, 0xbe04
or eax, 4
mov word [esi + 8], ax
jmp case.0x44c8ea.62
mov eax, dword [edi + 4]
lea edx, [eax + eax*4]
test byte [ebx + edx*8 + 8], 4
lea esi, [ebx + edx*8]
je case.0x44c8ea.62
call fcn.004442f0
jmp case.0x44c8ea.62
mov eax, dword [edi + 4]
lea eax, [eax + eax*4]
lea esi, [ebx + eax*8]
mov ecx, 0x4000
test word [esi + 8], cx
je 0x44d896
mov eax, esi
call fcn.00443d70
mov dl, byte [ebp - 0x11d]
mov cl, byte [edi + 8]
mov dword [ebp - 0xd8], eax
mov eax, esi
call fcn.00444410
jmp case.0x44c8ea.62
mov dl, byte [ebp - 0x11d]
mov cl, byte [edi + 8]
mov eax, esi
mov dword [ebp - 0xd8], 0
call fcn.00444410
jmp case.0x44c8ea.62
mov eax, dword [edi + 4]
lea edx, [eax + eax*4]
mov eax, dword [edi + 0xc]
lea ecx, [ebx + edx*8]
lea eax, [eax + eax*4]
lea esi, [ebx + eax*8]
movzx eax, word [ecx + 8]
mov dword [ebp - 0xe4], ecx
mov ecx, eax
mov dword [ebp - 0x110], ecx
movzx ecx, word [esi + 8]
mov edx, eax
mov dword [ebp - 0xfc], ecx
or cl, dl
test cl, 1
je 0x44d94e
mov al, byte [edi + 3]
test al, al
jns 0x44d91a
test dl, 1
je 0x44d910
mov eax, dword [ebp - 0xfc]
test al, 1
je 0x44d910
test eax, 0x100
jne 0x44d910
xor eax, eax
jmp 0x44da88
mov eax, 1
jmp 0x44da88
test al, 0x20
je 0x44d941
mov eax, dword [edi + 8]
lea edx, [eax + eax*4]
mov cx, word [ebx + edx*8 + 8]
lea eax, [ebx + edx*8]
mov edx, 0xbe01
and cx, dx
or cx, 1
mov word [eax + 8], cx
jmp case.0x44c8ea.62
test al, 0x10
jne 0x45185c
jmp case.0x44c8ea.62
mov cl, byte [edi + 3]
and cl, 0x47
cmp cl, 0x43
jl 0x44d98d
and al, 0xe
cmp al, 2
jne 0x44d96f
mov eax, dword [ebp - 0xe4]
push 0
call fcn.0044c5b0
add esp, 4
mov al, byte [esi + 8]
and al, 0xe
cmp al, 2
jne 0x44da1a
push 0
mov eax, esi
call fcn.0044c5b0
add esp, 4
jmp 0x44da1a
cmp cl, 0x42
jne 0x44da1a
test al, 2
jne 0x44d9db
test al, 0xc
je 0x44d9db
mov ecx, dword [ebp - 0x11d]
mov eax, dword [ebp - 0xe4]
push 1
push ecx
call fcn.00443e30
mov eax, dword [ebp - 0xe4]
mov dx, word [eax + 8]
xor dx, word [ebp - 0x110]
mov ecx, 0x1ff
and dx, cx
add esp, 8
xor dx, word [eax + 8]
movzx edx, dx
mov dword [ebp - 0x110], edx
movzx eax, word [esi + 8]
test al, 2
jne 0x44da1a
test al, 0xc
je 0x44da1a
mov eax, dword [ebp - 0x11d]
push 1
push eax
mov eax, esi
call fcn.00443e30
mov cx, word [esi + 8]
xor cx, word [ebp - 0xfc]
mov edx, 0x1ff
and cx, dx
add esp, 8
xor cx, word [esi + 8]
movzx eax, cx
mov dword [ebp - 0xfc], eax
mov eax, dword [ebp - 0xe4]
mov ecx, 0x4000
test word [eax + 8], cx
je 0x44da3a
call fcn.00443d70
and dword [ebp - 0x110], 0xbfff
mov edx, 0x4000
test word [esi + 8], dx
je 0x44da56
mov eax, esi
call fcn.00443d70
and dword [ebp - 0xfc], 0xbfff
mov eax, dword [ebp - 0xdc]
cmp byte [eax + 0x41], 0
jne 0x451aca
mov ecx, dword [ebp - 0xe0]
mov edx, dword [ecx + 0x10]
mov eax, dword [ebp - 0xe4]
mov ecx, esi
call fcn.00448b60
mov edi, dword [ebp - 0xe0]
mov edx, dword [ebp - 0x110]
movzx ecx, byte [edi]
add ecx, 0xffffffb2
cmp ecx, 4
ja case.default.0x44da93
jmp dword [ecx*4 + 0x451de8]
xor ecx, ecx
test eax, eax
sete cl
jmp 0x44dace
xor ecx, ecx
test eax, eax
setne cl
jmp 0x44dace
xor ecx, ecx
test eax, eax
sets cl
jmp 0x44dace
xor ecx, ecx
test eax, eax
setle cl
jmp 0x44dace
xor ecx, ecx
test eax, eax
setg cl
jmp 0x44dace
xor ecx, ecx
test eax, eax
setns cl
mov eax, ecx
mov ecx, dword [ebp - 0xe4]
mov word [ecx + 8], dx
mov dx, word [ebp - 0xfc]
mov word [esi + 8], dx
test byte [edi + 3], 0x20
je 0x44ddfa
mov ecx, dword [edi + 8]
lea ecx, [ecx + ecx*4]
mov dx, word [ebx + ecx*8 + 8]
lea ecx, [ebx + ecx*8]
mov esi, 0xbe04
and dx, si
or dx, 4
mov word [ecx + 8], dx
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp case.0x44c8ea.62
mov eax, dword [edi + 0x10]
mov dword [ebp - 0x190], eax
jmp case.0x44c8ea.62
test byte [edi + 3], 1
jne 0x44db36
mov dword [ebp - 0x190], 0
mov edx, dword [edi + 4]
mov eax, dword [edi + 0xc]
mov ecx, dword [edi + 0x10]
mov dword [ebp - 0x108], edx
mov edx, dword [edi + 8]
xor esi, esi
mov dword [ebp - 0xe8], eax
mov dword [ebp - 0xf4], ecx
mov dword [ebp - 0x124], edx
test eax, eax
jle 0x44dbf8
add ecx, 0x14
mov dword [ebp - 0x100], ecx
lea ecx, [ecx]
mov eax, dword [ebp - 0x190]
test eax, eax
je 0x44db7f
mov ecx, dword [eax + esi*4]
jmp 0x44db81
mov ecx, esi
mov eax, dword [ebp - 0xf4]
mov edx, dword [eax + 0x10]
movzx eax, byte [esi + edx]
mov edx, dword [ebp - 0x124]
mov dword [ebp - 0x114], eax
lea eax, [ecx + edx]
add ecx, dword [ebp - 0x108]
mov edx, dword [ebp - 0x100]
mov edx, dword [edx]
lea eax, [eax + eax*4]
lea ecx, [ecx + ecx*4]
lea eax, [ebx + eax*8]
lea ecx, [ebx + ecx*8]
call fcn.00448b60
mov dword [ebp - 0x198], eax
test eax, eax
jne 0x44dbe1
add dword [ebp - 0x100], 4
inc esi
cmp esi, dword [ebp - 0xe8]
jl 0x44db70
mov dword [ebp - 0x190], eax
jmp case.0x44c8ea.62
cmp dword [ebp - 0x114], 0
je 0x44dbf8
mov eax, dword [ebp - 0x198]
neg eax
mov dword [ebp - 0x198], eax
mov dword [ebp - 0x190], 0
jmp case.0x44c8ea.62
mov eax, dword [ebp - 0x198]
mov edx, dword [ebp - 0x118]
test eax, eax
jns 0x44dc2c
mov edi, dword [edi + 4]
lea ecx, [edi + edi*4]
lea eax, [edx + ecx*4 - 0x14]
mov dword [ebp - 0xe0], eax
jmp 0x451872
jne 0x44dc43
mov edi, dword [edi + 8]
lea ecx, [edi + edi*4]
lea eax, [edx + ecx*4 - 0x14]
mov dword [ebp - 0xe0], eax
jmp 0x451872
mov edi, dword [edi + 0xc]
lea ecx, [edi + edi*4]
lea eax, [edx + ecx*4 - 0x14]
mov dword [ebp - 0xe0], eax
jmp 0x451872
mov eax, dword [edi + 4]
lea ecx, [eax + eax*4]
test byte [ebx + ecx*8 + 8], 1
lea ecx, [ebx + ecx*8]
je 0x44dc6f
mov esi, 2
jmp 0x44dc81
call fcn.00444160
or eax, edx
je 0x44dc7f
mov esi, 1
jmp 0x44dc81
xor esi, esi
mov eax, dword [edi + 8]
lea edx, [eax + eax*4]
test byte [ebx + edx*8 + 8], 1
lea ecx, [ebx + edx*8]
je 0x44dc98
mov eax, 2
jmp 0x44dcaa
call fcn.00444160
or eax, edx
je 0x44dca8
mov eax, 1
jmp 0x44dcaa
xor eax, eax
cmp byte [edi], 0x48
jne 0x44dcbc
lea eax, [eax + esi*2]
movzx eax, byte [esi + eax + 0x501fd4]
jmp 0x44dcc7
lea ecx, [eax + esi*2]
movzx eax, byte [esi + ecx + 0x502018]
mov ecx, dword [edi + 0xc]
lea edx, [ecx + ecx*4]
lea ebx, [ebx + edx*8]
cmp eax, 2
jne 0x44dcee
mov ax, word [ebx + 8]
mov ecx, 0xbe01
and ax, cx
or ax, 1
mov word [ebx + 8], ax
jmp case.0x44c8ea.62
cdq
mov dword [ebx + 4], edx
mov dx, word [ebx + 8]
mov dword [ebx], eax
mov eax, 0xbe04
and dx, ax
or dx, 4
mov word [ebx + 8], dx
jmp case.0x44c8ea.62
mov eax, dword [edi + 4]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 8]
lea edx, [eax + eax*4]
lea esi, [ebx + ecx*8]
lea ebx, [ebx + edx*8]
mov eax, ebx
call fcn.004444d0
test byte [esi + 8], 1
jne case.0x44c8ea.62
mov eax, 4
mov ecx, esi
mov word [ebx + 8], ax
call fcn.00444160
or eax, edx
jne 0x44dd54
mov eax, 1
cdq
mov dword [ebx], eax
mov dword [ebx + 4], edx
jmp case.0x44c8ea.62
xor eax, eax
cdq
mov dword [ebx], eax
mov dword [ebx + 4], edx
jmp case.0x44c8ea.62
mov eax, dword [edi + 4]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 8]
lea edx, [eax + eax*4]
lea esi, [ebx + ecx*8]
lea ebx, [ebx + edx*8]
mov eax, ebx
call fcn.004444d0
test byte [esi + 8], 1
jne case.0x44c8ea.62
mov eax, 4
mov ecx, esi
mov word [ebx + 8], ax
call fcn.00444160
not eax
not edx
mov dword [ebx], eax
mov dword [ebx + 4], edx
jmp case.0x44c8ea.62
mov eax, dword [esi + 0xc8]
mov edx, dword [edi + 4]
cmp byte [eax + edx], 0
jne 0x45185c
mov byte [eax + edx], 1
jmp case.0x44c8ea.62
mov eax, dword [edi + 4]
lea eax, [eax + eax*4]
test byte [ebx + eax*8 + 8], 1
lea eax, [ebx + eax*8]
je 0x44ddd3
mov eax, dword [edi + 0xc]
jmp 0x44ddfa
call fcn.004441d0
fldz
fucompp
fnstsw ax
test ah, 0x44
jnp 0x44ddea
mov eax, 1
jmp 0x44ddec
xor eax, eax
cmp byte [edi], 0x2e
jne 0x44ddfa
xor ecx, ecx
test eax, eax
sete cl
mov eax, ecx
test eax, eax
jne 0x45185c
jmp case.0x44c8ea.62
mov eax, dword [edi + 4]
lea edx, [eax + eax*4]
test byte [ebx + edx*8 + 8], 1
jne 0x45185c
jmp case.0x44c8ea.62
mov eax, dword [edi + 4]
lea eax, [eax + eax*4]
test byte [ebx + eax*8 + 8], 1
je 0x45185c
jmp case.0x44c8ea.62
mov eax, dword [edi + 0xc]
mov ecx, dword [edi + 8]
lea edx, [eax + eax*4]
lea eax, [ebx + edx*8]
mov edx, dword [esi + 0x38]
mov dword [ebp - 0x10c], ecx
mov ecx, dword [edi + 4]
mov ebx, dword [edx + ecx*4]
cmp byte [ebx + 0x1a], 0
mov dword [ebp - 0xe4], eax
mov eax, dword [ebx + 0x50]
mov dword [ebp - 0xfc], eax
mov eax, dword [ebx]
mov dword [ebp - 0x110], eax
je 0x44ded0
mov esi, ebx
call fcn.00448370
mov dword [ebp - 0xd8], eax
cmp dword [ebp - 0xd8], 0
jne 0x44f87a
mov eax, dword [ebp - 0x110]
mov ecx, dword [ebx + 0x3c]
mov edx, dword [ebp - 0xec]
cmp ecx, dword [edx + 0x48]
je 0x44e014
cmp byte [ebx + 0x19], 0
je 0x44df0d
test eax, eax
jne 0x44defb
mov eax, dword [ebx + 0x10]
mov ecx, dword [ebp - 0x128]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov eax, dword [ecx + 0xc]
mov dword [ebx + 0x44], eax
mov dword [ebx + 0x40], eax
mov edx, dword [ecx + 0x10]
mov dword [ebp - 0x174], eax
mov dword [ebx + 0x4c], edx
jmp 0x44df94
test eax, eax
je 0x44deef
cmp byte [eax + 0x42], 1
je 0x44deef
mov edi, ebx
call fcn.004483d0
mov edi, dword [ebp - 0xe0]
mov dword [ebp - 0xd8], eax
jmp 0x44de78
mov dword [ebp - 0xd8], 0
jmp 0x44de8b
mov esi, dword [ebp - 0xe4]
mov eax, esi
call fcn.004444d0
jmp 0x44e332
test byte [ebx + 0x1c], 4
mov esi, dword [ebp - 0x110]
mov eax, esi
jne 0x44df51
call fcn.0043c5f0
mov eax, dword [esi + 0x10]
mov edx, dword [ebp - 0x110]
mov dword [ebp - 0x1e8], eax
mov ecx, dword [esi + 0x14]
lea esi, [ebp - 0x174]
mov dword [ebp - 0x1e4], ecx
call fcn.0043cb20
mov dword [ebx + 0x4c], eax
mov edx, dword [ebp - 0x1e8]
mov dword [ebx + 0x40], edx
jmp 0x44df70
call fcn.0043c5f0
mov eax, dword [esi + 0x1c]
mov edx, dword [ebp - 0x110]
lea esi, [ebp - 0x174]
mov dword [ebx + 0x40], eax
call fcn.0043cb20
mov dword [ebx + 0x4c], eax
mov eax, dword [ebx + 0x40]
mov ecx, dword [ebp - 0x174]
cmp eax, ecx
ja 0x44df82
mov dword [ebx + 0x44], eax
jmp 0x44df85
mov dword [ebx + 0x44], ecx
mov ecx, dword [ebp - 0xdc]
cmp eax, dword [ecx + 0x58]
ja 0x451af7
mov edx, dword [ebp - 0xec]
mov eax, dword [edx + 0x48]
mov ecx, dword [ebx + 0x4c]
mov dword [ebx + 0x3c], eax
mov al, byte [ecx]
cmp al, 0x80
jae 0x44dfb9
movzx eax, al
mov dword [ebp - 0x154], eax
mov ecx, 1
jmp 0x44dfcd
lea esi, [ebp - 0x154]
call fcn.0042a330
movzx ecx, al
mov eax, dword [ebp - 0x154]
movzx ecx, cl
mov dword [ebx + 0x48], ecx
mov ecx, dword [ebp - 0xfc]
xor edx, edx
mov word [ebx + 0x16], dx
mov dword [ecx], eax
cmp eax, 0x18003
ja 0x44dfff
cmp eax, dword [ebx + 0x40]
ja 0x44dfff
cmp dword [ebp - 0x174], eax
jae 0x44e024
xor eax, eax
mov dword [ebx + 0x4c], eax
mov dword [ebx + 0x44], eax
jmp 0x44e024
mov eax, 0x12315
call fcn.0049cf30
mov dword [ebp - 0xd8], eax
jmp case.0x44c8ea.62
movzx edx, word [ebx + 0x16]
cmp edx, dword [ebp - 0x10c]
jg 0x44e233
mov eax, dword [ebx + 0x48]
mov ecx, dword [ebp - 0xfc]
cmp eax, dword [ecx]
jae 0x44e1f4
mov eax, dword [ebx + 0x4c]
test eax, eax
jne 0x44e0b7
mov dword [ebp - 0x250], eax
mov dword [ebp - 0x24c], eax
mov dword [ebp - 0x248], eax
mov dword [ebp - 0x244], eax
mov dword [ebp - 0x240], eax
mov dword [ebp - 0x23c], eax
mov dword [ebp - 0x238], eax
mov dword [ebp - 0x234], eax
mov dword [ebp - 0x230], eax
mov dword [ebp - 0x22c], eax
mov edx, dword [ebx + 0x1c]
shr edx, 2
not edx
and edx, 1
push edx
mov edx, dword [ecx]
mov ecx, dword [ebp - 0x110]
push eax
lea eax, [ebp - 0x250]
call fcn.00444ab0
add esp, 8
mov dword [ebp - 0xd8], eax
test eax, eax
jne case.0x44c8ea.62
mov edx, dword [ebp - 0x240]
mov dword [ebp - 0x100], edx
jmp 0x44e0bd
mov dword [ebp - 0x100], eax
movzx ecx, word [ebx + 0x16]
mov eax, dword [ebp - 0xfc]
mov edx, dword [eax + ecx*4]
mov esi, dword [ebx + 0x48]
mov eax, dword [eax]
add esi, dword [ebp - 0x100]
add eax, dword [ebp - 0x100]
mov dword [ebp - 0x108], ecx
mov dword [ebp - 0xe8], eax
lea eax, [ebx + ecx*4 + 0x54]
mov dword [ebp - 0x154], edx
mov dword [ebp - 0x104], esi
mov dword [ebp - 0x114], eax
lea ecx, [ecx]
mov al, byte [esi]
cmp al, 0x80
jae 0x44e118
movzx eax, al
inc esi
mov dword [ebp - 0x164], eax
mov dword [ebp - 0x104], esi
jmp 0x44e144
mov ecx, dword [ebp - 0x104]
lea esi, [ebp - 0x164]
call fcn.0042a330
movzx ecx, al
add dword [ebp - 0x104], ecx
mov eax, dword [ebp - 0x164]
mov esi, dword [ebp - 0x104]
mov ecx, dword [ebp - 0x108]
mov edx, dword [ebp - 0x114]
mov dword [edx], eax
call fcn.00448510
mov edx, dword [ebp - 0x154]
add edx, eax
mov dword [ebp - 0x154], edx
cmp edx, eax
jb 0x44e190
add dword [ebp - 0x114], 4
mov eax, dword [ebp - 0xfc]
inc ecx
mov dword [ebp - 0x108], ecx
mov dword [eax + ecx*4], edx
cmp ecx, dword [ebp - 0x10c]
jg 0x44e197
cmp esi, dword [ebp - 0xe8]
jb 0x44e100
jmp 0x44e197
mov esi, dword [ebp - 0xe8]
inc esi
mov word [ebx + 0x16], cx
mov ecx, esi
sub ecx, dword [ebp - 0x100]
cmp dword [ebx + 0x4c], 0
mov dword [ebx + 0x48], ecx
jne 0x44e1c9
lea eax, [ebp - 0x250]
call fcn.004440e0
mov edx, 1
mov word [ebp - 0x248], dx
mov edx, dword [ebp - 0x154]
mov eax, dword [ebp - 0xe8]
cmp esi, eax
jb 0x44e1da
ja 0x44e1df
cmp edx, dword [ebx + 0x40]
jne 0x44e1df
cmp edx, dword [ebx + 0x40]
jbe 0x44e1f4
mov eax, 0x12369
call fcn.0049cf30
mov dword [ebp - 0xd8], eax
jmp case.0x44c8ea.62
movzx eax, word [ebx + 0x16]
cmp eax, dword [ebp - 0x10c]
jg 0x44e233
cmp byte [edi + 1], 0xf8
jne 0x44e223
mov ecx, dword [edi + 0x10]
mov edx, dword [ebp - 0xe4]
push 0x800
push ecx
push edx
call fcn.00444680
add esp, 0xc
jmp 0x44e32c
mov eax, dword [ebp - 0xe4]
call fcn.004444d0
jmp 0x44e32c
mov ecx, dword [ebp - 0xe4]
mov eax, 0x2460
test word [ecx + 8], ax
je 0x44e24b
mov eax, ecx
call fcn.004444d0
mov eax, dword [ebp - 0x10c]
mov ecx, dword [ebx + 0x44]
mov esi, dword [ebp - 0xfc]
mov edx, dword [ebx + eax*4 + 0x54]
mov dword [ebp - 0x164], edx
cmp ecx, dword [esi + eax*4 + 4]
jb 0x44e280
mov ecx, dword [ebx + 0x4c]
add ecx, dword [esi + eax*4]
mov eax, dword [ebp - 0xe4]
call fcn.00448630
jmp 0x44e31d
mov al, byte [edi + 3]
test al, 0xc0
je 0x44e295
cmp edx, 0xc
jb 0x44e291
test dl, 1
je 0x44e2a2
test al, al
js 0x44e2a2
mov eax, edx
call fcn.00448510
mov ecx, eax
test ecx, ecx
jne 0x44e2c2
mov ecx, 0xd
cmp ecx, edx
sbb ecx, ecx
not ecx
lea eax, [ebp - 0x1e8]
and ecx, eax
mov eax, dword [ebp - 0xe4]
call fcn.00448630
jmp 0x44e31d
mov edx, dword [ebx + 0x1c]
mov eax, dword [ebp - 0x10c]
mov esi, dword [ebp - 0xe4]
shr edx, 2
not edx
and edx, 1
push edx
mov edx, dword [ebp - 0xfc]
mov eax, dword [edx + eax*4]
push eax
mov edx, ecx
mov ecx, dword [ebp - 0x110]
mov eax, esi
call fcn.00444ab0
add esp, 8
mov dword [ebp - 0xd8], eax
test eax, eax
jne case.0x44c8ea.62
mov edx, dword [ebp - 0x164]
mov ecx, dword [esi + 0x10]
mov eax, esi
call fcn.00448630
mov ecx, 0xefff
and word [esi + 8], cx
mov dl, byte [ebp - 0x11d]
mov eax, dword [ebp - 0xe4]
mov byte [eax + 0xa], dl
mov esi, dword [ebp - 0xe4]
movzx eax, word [esi + 8]
test eax, 0x1000
je case.0x44c8ea.62
mov ecx, dword [esi + 0x10]
mov dword [ebp - 0xf4], ecx
test ecx, ecx
je case.0x44c8ea.62
mov ebx, dword [esi + 0xc]
mov ecx, eax
and ecx, 0x12
mov dword [ebp - 0x124], ecx
lea ecx, [ebx + 2]
cmp dword [esi + 0x18], ecx
jge 0x44e3b6
xor eax, eax
mov edi, esi
call fcn.00443bd0
test eax, eax
jne 0x451aca
mov edi, dword [ebp - 0xe0]
mov eax, dword [ebp - 0xf4]
mov ecx, dword [esi + 0x10]
push ebx
push eax
push ecx
call fcn.004d5420
mov edx, dword [esi + 0x10]
mov byte [ebx + edx], 0
mov eax, dword [esi + 0x10]
mov byte [eax + ebx + 1], 0
mov eax, dword [ebp - 0x124]
add esp, 0xc
or eax, 0x200
mov word [esi + 8], ax
jmp case.0x44c8ea.62
mov edx, dword [esi + 0x14]
and eax, 0xd
mov dword [esi + 0x10], edx
mov word [esi + 8], ax
jmp 0x44e37f
mov eax, dword [edi + 4]
mov esi, dword [edi + 0x10]
lea ecx, [eax + eax*4]
mov al, byte [esi]
lea ebx, [ebx + ecx*8]
test al, al
je case.0x44c8ea.62
jmp 0x44e3e0
mov edx, dword [ebp - 0x11d]
push edx
mov ecx, ebx
inc esi
call fcn.0044c6d0
mov al, byte [esi]
add esp, 4
add ebx, 0x28
test al, al
jne 0x44e3e0
jmp case.0x44c8ea.62
mov eax, dword [edi + 0x10]
mov dword [ebp - 0xe8], eax
mov eax, dword [edi + 4]
lea edx, [eax + eax*4]
mov eax, dword [edi + 8]
mov edi, dword [edi + 0xc]
lea edx, [ebx + edx*8]
lea eax, [eax + eax*4]
mov dword [ebp - 0x114], edx
lea edx, [edx + eax*8 - 0x28]
movzx eax, byte [esi + 0x57]
xor ecx, ecx
mov dword [ebp - 0x104], edx
lea edx, [edi + edi*4]
mov dword [ebp - 0xf4], eax
lea eax, [ebx + edx*8]
mov dword [ebp - 0x170], ecx
mov dword [ebp - 0x16c], ecx
mov dword [ebp - 0xfc], ecx
mov dword [ebp - 0x180], ecx
mov dword [ebp - 0x17c], ecx
mov dword [ebp - 0xe4], eax
cmp dword [ebp - 0xe8], ecx
je 0x44e49c
mov ecx, dword [ebp - 0xe8]
mov edi, dword [ebp - 0x114]
mov al, byte [ecx]
mov ebx, ecx
lea esp, [esp]
mov edx, dword [ebp - 0x11d]
push edx
mov ecx, edi
call fcn.0044c6d0
mov al, byte [ebx + 1]
inc ebx
add esp, 4
add edi, 0x28
test al, al
jne 0x44e480
mov edi, dword [ebp - 0x104]
mov eax, dword [ebp - 0xf4]
push eax
mov edx, edi
call fcn.00448410
mov ebx, eax
add esp, 4
mov dword [edi + 0x1c], ebx
call fcn.00448510
mov ecx, 0x4000
mov dword [ebp - 0xe8], eax
test word [edi + 8], cx
je 0x44e504
mov edx, dword [ebp - 0x170]
or edx, dword [ebp - 0x16c]
je 0x44e4ed
mov eax, edi
call fcn.00443d70
test eax, eax
jne 0x451aca
jmp 0x44e504
mov eax, dword [edi]
cdq
add dword [ebp - 0x180], eax
mov eax, dword [edi]
adc dword [ebp - 0x17c], edx
sub dword [ebp - 0xe8], eax
mov eax, dword [ebp - 0xe8]
cdq
add dword [ebp - 0x170], eax
adc dword [ebp - 0x16c], edx
cmp ebx, 0x7f
ja 0x44e523
mov eax, 1
jmp 0x44e52e
push 0
push ebx
call fcn.0042a3a0
add esp, 8
add dword [ebp - 0xfc], eax
sub edi, 0x28
cmp edi, dword [ebp - 0x114]
jae 0x44e4a2
cmp dword [ebp - 0xfc], 0x7e
jg 0x44e55a
inc dword [ebp - 0xfc]
mov edi, dword [ebp - 0xfc]
jmp 0x44e58c
mov edi, dword [ebp - 0xfc]
mov eax, edi
cdq
push edx
push eax
call fcn.0042a3a0
mov ebx, eax
add edi, ebx
mov eax, edi
cdq
push edx
push eax
mov dword [ebp - 0xfc], edi
call fcn.0042a3a0
add esp, 0x10
cmp ebx, eax
jge 0x44e58c
inc edi
mov dword [ebp - 0xfc], edi
mov ebx, dword [ebp - 0x170]
mov eax, edi
cdq
mov ecx, eax
mov eax, dword [ebp - 0xdc]
mov eax, dword [eax + 0x58]
add ebx, ecx
mov dword [ebp - 0x1d0], ecx
mov ecx, dword [ebp - 0x16c]
adc ecx, edx
mov edi, ebx
add edi, dword [ebp - 0x180]
mov dword [ebp - 0x1cc], edx
adc ecx, dword [ebp - 0x17c]
cdq
mov dword [ebp - 0x2c0], ebx
cmp ecx, edx
jg 0x451afd
jl 0x44e5dd
cmp edi, eax
ja 0x451afd
mov edi, dword [ebp - 0xe4]
cmp dword [edi + 0x18], ebx
jge 0x44e619
xor eax, eax
mov ecx, ebx
call fcn.00443bd0
test eax, eax
jne 0x451aca
mov ebx, dword [ebp - 0xfc]
mov esi, dword [edi + 0x10]
mov dword [ebp - 0xe8], esi
cmp ebx, 0x80
jae 0x44e626
mov byte [esi], bl
mov eax, 1
jmp 0x44e63c
mov ecx, dword [edi + 0x14]
and word [edi + 8], 0xd
mov dword [edi + 0x10], ecx
jmp 0x44e5f9
mov edx, dword [ebp - 0x1cc]
mov eax, dword [ebp - 0x1d0]
push edx
push eax
call fcn.0042a150
add esp, 8
movzx ecx, al
mov dword [ebp - 0x108], ebx
mov ebx, dword [ebp - 0x114]
mov dword [ebp - 0x100], ecx
mov ecx, dword [ebx + 0x1c]
mov dword [ebp - 0xf4], ecx
cmp ecx, 0x80
jae 0x44e678
mov eax, dword [ebp - 0xe8]
mov edx, dword [ebp - 0x100]
mov byte [edx + eax], cl
mov eax, 1
jmp 0x44e698
mov edx, dword [ebp - 0xe8]
mov esi, dword [ebp - 0x100]
push 0
push ecx
lea esi, [esi + edx]
call fcn.0042a150
mov ecx, dword [ebp - 0xf4]
add esp, 8
mov edx, dword [ebp - 0xe8]
mov esi, dword [ebp - 0x108]
movzx eax, al
add dword [ebp - 0x100], eax
lea edi, [esi + edx]
mov eax, ebx
call fcn.00448530
add esi, eax
add ebx, 0x28
mov dword [ebp - 0x108], esi
cmp ebx, dword [ebp - 0x104]
jbe 0x44e651
mov ecx, dword [ebp - 0x2c0]
mov eax, dword [ebp - 0xe4]
mov edx, 0x10
mov dword [eax + 0xc], ecx
mov ecx, dword [ebp - 0x180]
mov word [eax + 8], dx
mov edx, ecx
or edx, dword [ebp - 0x17c]
je 0x44e6fd
mov dword [eax], ecx
mov ecx, 0x4010
mov word [eax + 8], cx
mov byte [eax + 0xa], 1
jmp 0x451872
mov edx, dword [edi + 4]
mov eax, dword [esi + 0x38]
mov ecx, dword [eax + edx*4]
mov eax, dword [ecx]
xor ecx, ecx
lea edx, [ebp - 0x1b8]
push edx
mov dword [ebp - 0x1b8], ecx
mov dword [ebp - 0x1b4], ecx
call fcn.004416d0
mov ecx, dword [esi + 8]
mov dword [ebp - 0xd8], eax
mov eax, dword [edi + 8]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov edx, 0x2460
add esp, 4
test word [eax + 8], dx
je 0x44e766
call fcn.0044c790
mov edx, dword [ebp - 0x1b8]
mov ecx, dword [ebp - 0x1b4]
mov dword [eax], edx
mov dword [eax + 4], ecx
jmp case.0x44c8ea.62
mov edx, dword [ebp - 0x1b8]
mov ecx, 4
mov word [eax + 8], cx
mov ecx, dword [ebp - 0x1b4]
mov dword [eax], edx
mov dword [eax + 4], ecx
jmp case.0x44c8ea.62
mov ecx, dword [edi + 4]
mov eax, dword [edi + 0x10]
mov dword [ebp - 0x110], ecx
mov dword [ebp - 0xe8], eax
test ecx, ecx
jne 0x44e878
mov edx, dword [ebp - 0xdc]
cmp dword [edx + 0x9c], ecx
jle 0x44e7b7
push 0x507cb8
jmp 0x44e8f9
call fcn.00429250
mov esi, eax
mov eax, dword [ebp - 0xdc]
mov ecx, dword [eax + 0x1f4]
add ecx, dword [eax + 0x1f0]
mov dword [ebp - 0xf4], esi
push ecx
push 0
push eax
call fcn.0048ae50
add esp, 0xc
mov dword [ebp - 0xd8], eax
test eax, eax
jne 0x44f87a
add esi, 0x21
push eax
push esi
mov esi, dword [ebp - 0xdc]
call fcn.00426a60
mov ebx, eax
add esp, 8
test ebx, ebx
je case.0x44c8ea.62
mov edx, dword [ebp - 0xf4]
mov ecx, dword [ebp - 0xe8]
inc edx
push edx
lea eax, [ebx + 0x20]
push ecx
push eax
mov dword [ebx], eax
call fcn.004d5420
add esp, 0xc
cmp byte [esi + 0x3f], 0
je 0x44e83a
mov byte [esi + 0x3f], 0
mov byte [esi + 0x46], 1
jmp 0x44e840
inc dword [esi + 0x1f0]
mov edx, dword [esi + 0x1e8]
mov dword [ebx + 0x18], edx
mov eax, dword [esi + 0x1f8]
mov dword [esi + 0x1e8], ebx
mov dword [ebx + 8], eax
mov ecx, dword [esi + 0x1fc]
mov dword [ebx + 0xc], ecx
mov edx, dword [esi + 0x200]
mov dword [ebx + 0x10], edx
mov eax, dword [esi + 0x204]
mov dword [ebx + 0x14], eax
jmp case.0x44c8ea.62
mov ecx, dword [ebp - 0xdc]
mov ebx, dword [ecx + 0x1e8]
mov dword [ebp - 0x10c], 0
test ebx, ebx
je 0x44e8b5
mov edx, dword [ebx]
push eax
push edx
call fcn.00429540
add esp, 8
test eax, eax
je 0x44e8d3
mov ebx, dword [ebx + 0x18]
inc dword [ebp - 0x10c]
mov eax, dword [ebp - 0xe8]
test ebx, ebx
jne 0x44e892
push eax
push 0x507cec
push esi
call fcn.00445100
add esp, 0xc
mov dword [ebp - 0xd8], 1
jmp case.0x44c8ea.62
mov eax, dword [ebp - 0x110]
mov dword [ebp - 0x100], ebx
mov ebx, dword [ebp - 0xdc]
xor ecx, ecx
cmp dword [ebx + 0x9c], ecx
jle 0x44e911
cmp eax, 1
jne 0x44e911
push 0x507d04
push esi
call fcn.00445100
add esp, 8
mov dword [ebp - 0xd8], 5
jmp case.0x44c8ea.62
mov edx, dword [ebp - 0x100]
cmp dword [edx + 0x18], ecx
jne 0x44e975
cmp byte [ebx + 0x46], cl
je 0x44e975
mov dword [ebp - 0xe8], 1
cmp eax, 1
jne 0x44e97b
mov esi, dword [ebp - 0xec]
push eax
call fcn.004478a0
mov ebx, eax
add esp, 4
test ebx, ebx
jne 0x451575
mov ebx, dword [ebp - 0xdc]
mov eax, esi
mov byte [ebx + 0x3f], 1
call fcn.00447910
cmp eax, 5
je 0x45194d
mov byte [ebx + 0x46], 0
mov eax, dword [esi + 0x50]
mov dword [ebp - 0xd8], eax
jmp 0x44ea7b
mov dword [ebp - 0xe8], ecx
mov edx, dword [ebx + 0x1f0]
sub edx, dword [ebp - 0x10c]
dec edx
mov dword [ebp - 0x10c], edx
cmp eax, 2
jne 0x44ea03
mov eax, dword [ebx + 0x18]
shr eax, 1
and eax, 1
mov dword [ebp - 0x108], eax
mov dword [ebp - 0x104], ecx
cmp dword [ebx + 0x14], ecx
jle 0x44ea09
xor edx, edx
cmp eax, ecx
sete dl
xor esi, esi
mov dword [ebp - 0xf4], edx
jmp 0x44e9c0
mov eax, dword [ebp - 0xf4]
mov ecx, dword [ebx + 0x10]
mov edx, dword [ecx + esi + 4]
push eax
push 0x204
push edx
call fcn.0043c050
add esp, 0xc
mov dword [ebp - 0xd8], eax
test eax, eax
jne 0x44f87a
mov eax, dword [ebp - 0x104]
inc eax
add esi, 0x10
mov dword [ebp - 0x104], eax
cmp eax, dword [ebx + 0x14]
jl 0x44e9c0
xor ecx, ecx
jmp 0x44ea09
mov dword [ebp - 0x108], ecx
mov dword [ebp - 0x104], ecx
cmp dword [ebx + 0x14], ecx
jle 0x44ea60
xor esi, esi
jmp 0x44ea20
mov eax, dword [ebp - 0x10c]
mov ecx, dword [ebp - 0x110]
mov edx, dword [ebx + 0x10]
push eax
mov eax, dword [esi + edx + 4]
push ecx
call fcn.0043c300
add esp, 8
mov dword [ebp - 0xd8], eax
test eax, eax
jne 0x44f87a
mov eax, dword [ebp - 0x104]
inc eax
add esi, 0x10
mov dword [ebp - 0x104], eax
cmp eax, dword [ebx + 0x14]
jl 0x44ea20
cmp dword [ebp - 0x108], 0
je 0x44ea7b
mov eax, ebx
call fcn.004498d0
mov eax, ebx
call fcn.00462620
or dword [ebx + 0x18], 2
mov esi, dword [ebp - 0x100]
cmp dword [ebx + 0x1e8], esi
je 0x44eaee
lea esp, [esp]
cmp dword [ebx + 0x208], 0
mov eax, dword [ebx + 0x1e8]
mov ecx, dword [eax + 0x18]
mov dword [ebx + 0x1e8], ecx
je 0x44eab1
mov ecx, ebx
call fcn.004267a0
jmp 0x44eae0
cmp eax, dword [ebx + 0x114]
jb 0x44ead7
cmp eax, dword [ebx + 0x118]
jae 0x44ead7
mov edx, dword [ebx + 0x110]
mov dword [eax], edx
dec dword [ebx + 0xfc]
mov dword [ebx + 0x110], eax
jmp 0x44eae0
push eax
call fcn.00426730
add esp, 4
dec dword [ebx + 0x1f0]
cmp dword [ebx + 0x1e8], esi
jne 0x44ea90
cmp dword [ebp - 0x110], 1
jne 0x44eb1e
mov eax, dword [esi + 0x18]
mov dword [ebx + 0x1e8], eax
mov eax, esi
mov ecx, ebx
call fcn.004267e0
cmp dword [ebp - 0xe8], 0
jne case.0x44c8ea.62
dec dword [ebx + 0x1f0]
jmp 0x44eb58
cmp dword [ebp - 0xe8], 0
mov ecx, dword [esi + 8]
mov dword [ebx + 0x1f8], ecx
mov edx, dword [esi + 0xc]
mov dword [ebx + 0x1fc], edx
mov eax, dword [esi + 0x10]
mov dword [ebx + 0x200], eax
mov ecx, dword [esi + 0x14]
mov dword [ebx + 0x204], ecx
je 0x44eb58
cmp dword [ebp - 0x110], 2
jne case.0x44c8ea.62
mov edx, dword [ebp - 0x10c]
mov eax, dword [ebp - 0x110]
push edx
push eax
push ebx
call fcn.0048ae50
add esp, 0xc
mov dword [ebp - 0xd8], eax
test eax, eax
jne 0x44f87a
jmp case.0x44c8ea.62
mov eax, dword [edi + 4]
mov ecx, dword [edi + 8]
mov edx, dword [ebp - 0xdc]
mov dword [ebp - 0xf4], eax
test eax, eax
je 0x44ebb4
cmp byte [edx + 0x3f], 0
jne 0x44ebb4
test ecx, ecx
jne 0x44ebb4
cmp dword [edx + 0x9c], ecx
jle 0x44ebb4
push 0x507d3c
jmp 0x44e8f9
movzx edx, byte [edx + 0x3f]
cmp eax, edx
jne 0x451978
test eax, eax
jne 0x44ebcb
mov eax, 0x507d74
jmp 0x44ebd9
mov eax, 0x507da4
test ecx, ecx
jne 0x44ebd9
mov eax, 0x507dd0
push eax
push esi
call fcn.00445100
add esp, 8
mov dword [ebp - 0xd8], 1
jmp case.0x44c8ea.62
mov ecx, dword [edi + 8]
test ecx, ecx
je 0x44ec0c
mov eax, dword [ebp - 0xdc]
test dword [eax + 0x18], 0x2000000
jne 0x451a1d
mov edx, dword [edi + 4]
mov eax, dword [ebp - 0xdc]
mov eax, dword [eax + 0x10]
shl edx, 4
mov eax, dword [edx + eax + 4]
mov dword [ebp - 0x108], eax
test eax, eax
je 0x44ed23
push ecx
push eax
call fcn.0043b2f0
add esp, 8
mov dword [ebp - 0xd8], eax
cmp eax, 5
je 0x451a2c
test eax, eax
jne 0x44f87a
cmp dword [edi + 8], eax
je 0x44ecf4
test byte [esi + 0x58], 0x20
je 0x44ecf4
mov ebx, dword [ebp - 0xdc]
cmp byte [ebx + 0x3f], al
je 0x44ec79
cmp dword [ebx + 0x98], 1
jle 0x44ecfa
cmp dword [esi + 0x68], 0
jne 0x44ec94
mov ecx, dword [ebx + 0x1f0]
inc dword [ebx + 0x1f4]
add ecx, dword [ebx + 0x1f4]
mov dword [esi + 0x68], ecx
mov edx, dword [esi + 0x68]
dec edx
push edx
push 0
push ebx
call fcn.0048ae50
add esp, 0xc
mov dword [ebp - 0xd8], eax
test eax, eax
jne 0x44ecc2
mov eax, dword [esi + 0x68]
mov ecx, dword [ebp - 0x108]
call fcn.0043c2a0
mov dword [ebp - 0xd8], eax
mov eax, dword [ebx + 0x1f8]
mov dword [esi + 0x98], eax
mov ecx, dword [ebx + 0x1fc]
mov dword [esi + 0x9c], ecx
mov edx, dword [ebx + 0x200]
mov dword [esi + 0xa0], edx
mov eax, dword [ebx + 0x204]
mov dword [esi + 0xa4], eax
jmp 0x44ecfa
mov ebx, dword [ebp - 0xdc]
mov eax, dword [ebp - 0x108]
lea ecx, [ebp - 0x19c]
push ecx
push 1
call fcn.004415a0
mov edx, dword [edi + 4]
mov eax, dword [ebx + 0x10]
add esp, 8
shl edx, 4
mov ecx, dword [edx + eax + 0xc]
mov eax, dword [ecx + 4]
jmp 0x44ed2f
mov dword [ebp - 0x19c], 0
xor eax, eax
cmp byte [edi + 3], 0
je case.0x44c8ea.62
mov edx, dword [ebp - 0x19c]
cmp edx, dword [edi + 0xc]
jne 0x44ed4d
cmp eax, dword [edi + 0x10]
je case.0x44c8ea.62
mov ebx, dword [ebp - 0xdc]
mov eax, dword [esi + 0x2c]
mov ecx, ebx
call fcn.004267e0
push ebx
mov ebx, 0x507dfc
call fcn.00426c50
mov edx, dword [ebp - 0xdc]
mov dword [esi + 0x2c], eax
mov eax, dword [edi + 4]
mov edx, dword [edx + 0x10]
mov ecx, eax
add ecx, ecx
mov ecx, dword [edx + ecx*8 + 0xc]
mov edx, dword [ebp - 0x19c]
add esp, 4
cmp dword [ecx], edx
je 0x44eda5
mov edi, dword [ebp - 0xdc]
mov esi, eax
call fcn.004625f0
mov edi, dword [ebp - 0xe0]
mov esi, dword [ebp - 0xec]
or dword [esi + 0x58], 8
mov dword [ebp - 0xd8], 0x11
jmp case.0x44c8ea.62
mov ecx, dword [edi + 0xc]
mov edx, dword [edi + 4]
lea eax, [ebp - 0x1f0]
push eax
mov eax, dword [ebp - 0xdc]
push ecx
mov ecx, dword [eax + 0x10]
add edx, edx
mov eax, dword [ecx + edx*8 + 4]
call fcn.004415a0
mov eax, dword [edi + 8]
lea edx, [eax + eax*4]
mov eax, dword [esi + 8]
lea eax, [eax + edx*8]
mov ecx, 0x2460
add esp, 8
test word [eax + 8], cx
je 0x44ee0c
call fcn.0044c790
mov ecx, eax
mov eax, dword [ebp - 0x1f0]
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp case.0x44c8ea.62
mov edx, 4
mov word [eax + 8], dx
mov ecx, eax
mov eax, dword [ebp - 0x1f0]
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp case.0x44c8ea.62
mov ebx, dword [edi + 4]
mov eax, dword [ebp - 0xdc]
mov edx, dword [ebp - 0x128]
shl ebx, 4
add ebx, dword [eax + 0x10]
mov eax, dword [edi + 0xc]
lea ecx, [eax + eax*4]
lea esi, [edx + ecx*8]
mov dword [ebp - 0x108], ebx
call fcn.004442c0
mov eax, dword [esi]
mov ecx, dword [edi + 8]
mov ebx, dword [ebx + 4]
push eax
push ecx
call fcn.00441600
mov dword [ebp - 0xd8], eax
mov eax, dword [edi + 8]
add esp, 8
cmp eax, 1
jne 0x44ee8a
mov edx, dword [ebp - 0x108]
mov eax, dword [edx + 0xc]
mov ecx, dword [esi]
mov dword [eax], ecx
mov eax, dword [ebp - 0xdc]
or dword [eax + 0x18], 2
jmp 0x44ee9d
cmp eax, 2
jne 0x44ee9d
mov edx, dword [ebp - 0x108]
mov eax, dword [edx + 0xc]
mov cl, byte [esi]
mov byte [eax + 0x4c], cl
cmp dword [edi + 4], 1
jne case.0x44c8ea.62
mov eax, dword [ebp - 0xdc]
call fcn.004498d0
mov eax, dword [ebp - 0xec]
and dword [eax + 0x58], 0xfffffff7
jmp case.0x44c8ea.62
mov eax, dword [edi + 4]
mov ecx, dword [esi + 0x38]
mov ebx, dword [ecx + eax*4]
test ebx, ebx
je case.0x44c8ea.54
mov eax, dword [ebx + 0x20]
cmp eax, dword [edi + 8]
je 0x44f011
test byte [esi + 0x58], 8
je 0x44eeef
mov dword [ebp - 0xd8], 0x204
jmp case.0x44c8ea.62
mov ecx, dword [edi + 8]
mov eax, dword [edi + 0xc]
mov dword [ebp - 0xe8], ecx
mov ecx, dword [ebp - 0xdc]
mov dword [ebp - 0xf4], eax
shl eax, 4
add eax, dword [ecx + 0x10]
xor ebx, ebx
mov ecx, dword [eax + 4]
mov dword [ebp - 0x108], ebx
mov dword [ebp - 0x124], ecx
cmp dl, 0x37
jne 0x44ef3d
mov edx, dword [eax + 0xc]
mov al, byte [edx + 0x4c]
mov dword [ebp - 0x114], 1
cmp al, byte [esi + 0x57]
jae 0x44ef43
mov byte [esi + 0x57], al
jmp 0x44ef43
mov dword [ebp - 0x114], ebx
test byte [edi + 3], 4
je 0x44ef71
mov eax, dword [ebp - 0xe8]
mov ecx, dword [ebp - 0x128]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
call fcn.004442c0
mov esi, dword [esi]
mov dword [ebp - 0xe8], esi
cmp esi, 2
jl 0x451a53
mov al, byte [edi + 1]
cmp al, 0xfa
jne 0x44ef8d
mov eax, dword [edi + 0x10]
movzx ebx, word [eax + 8]
movzx edx, word [eax + 6]
mov dword [ebp - 0x108], eax
add ebx, edx
jmp 0x44ef94
cmp al, 0xf2
jne 0x44ef94
mov ebx, dword [edi + 0x10]
mov eax, dword [ebp - 0xf4]
mov ecx, dword [edi + 4]
mov esi, dword [ebp - 0xec]
push 1
push eax
push ebx
push ecx
call fcn.0044c4a0
mov ebx, eax
add esp, 0x10
test ebx, ebx
je 0x451aca
mov edx, dword [ebx]
mov esi, dword [ebp - 0x108]
mov ecx, dword [ebp - 0x114]
mov eax, dword [ebp - 0xe8]
or dword [ebx + 0x1c], 8
push edx
push esi
push ecx
mov ecx, dword [ebp - 0x124]
mov byte [ebx + 0x19], 1
mov dword [ebx + 0x20], eax
call fcn.0043c440
xor edx, edx
mov dword [ebp - 0xd8], eax
mov eax, dword [ebp - 0xe0]
add esp, 0xc
mov dword [ebx + 8], esi
cmp byte [eax + 1], 0xfa
mov edi, eax
setne dl
add edx, edx
add edx, edx
xor edx, dword [ebx + 0x1c]
and edx, 4
xor dword [ebx + 0x1c], edx
mov cl, byte [edi + 3]
mov edx, dword [ebx]
and cl, 3
mov byte [edx + 0x43], cl
jmp case.0x44c8ea.62
mov eax, dword [edi + 8]
mov ecx, dword [edi + 4]
mov esi, dword [ebp - 0xec]
push 1
push 0xffffffffffffffff
push eax
push ecx
call fcn.0044c4a0
mov esi, eax
add esp, 0x10
test esi, esi
je 0x451aca
or dword [esi + 0x1c], 1
mov ebx, dword [ebp - 0xe0]
mov byte [esi + 0x19], 1
movzx edx, byte [ebx + 3]
push 0x41e
or edx, 5
push edx
mov edx, dword [ebp - 0xdc]
mov eax, dword [edx]
push 0
push eax
lea ecx, [esi + 4]
call fcn.0043a270
add esp, 0x10
mov dword [ebp - 0xd8], eax
test eax, eax
jne 0x44f11a
mov ecx, dword [esi + 4]
push 1
push ecx
call fcn.0043b2f0
add esp, 8
mov dword [ebp - 0xd8], eax
test eax, eax
jne 0x44f11a
mov eax, dword [ebx + 0x10]
mov dword [ebp - 0xf4], eax
test eax, eax
je 0x44f0f9
movzx edx, byte [ebx + 3]
or edx, 2
push edx
lea eax, [ebp - 0x1ec]
push eax
mov eax, dword [esi + 4]
call fcn.00441080
add esp, 8
mov dword [ebp - 0xd8], eax
test eax, eax
jne 0x44f0f3
mov ecx, dword [esi]
mov eax, dword [ebp - 0xf4]
push ecx
mov ecx, dword [esi + 4]
push eax
mov dword [esi + 8], eax
mov eax, dword [ebp - 0x1ec]
push 1
call fcn.0043c440
add esp, 0xc
mov dword [ebp - 0xd8], eax
and dword [esi + 0x1c], 0xfffffffb
jmp 0x44f11a
mov edx, dword [esi]
mov ecx, dword [esi + 4]
push edx
push 0
push 1
mov eax, 1
call fcn.0043c440
add esp, 0xc
or dword [esi + 0x1c], 4
mov dword [ebp - 0xd8], eax
xor eax, eax
cmp byte [ebx + 3], 8
setne al
add eax, eax
add eax, eax
add eax, eax
xor eax, dword [esi + 0x1c]
and eax, 8
xor dword [esi + 0x1c], eax
jmp 0x451872
mov ecx, dword [edi + 8]
mov edx, dword [edi + 4]
mov esi, dword [ebp - 0xec]
push 1
push 0xffffffffffffffff
push ecx
push edx
call fcn.0044c4a0
add esp, 0x10
test eax, eax
je 0x451aca
mov ecx, dword [ebp - 0xe0]
mov edx, dword [ecx + 0x10]
push eax
mov dword [eax + 8], edx
mov eax, dword [ecx + 0xc]
mov ecx, dword [ebp - 0xdc]
push eax
push ecx
call fcn.004533a0
add esp, 0xc
mov dword [ebp - 0xd8], eax
jmp 0x451872
mov eax, dword [esi + 0x38]
mov edx, dword [edi + 4]
mov eax, dword [eax + edx*4]
mov ecx, dword [eax + 0x28]
mov edx, dword [eax + 0x2c]
mov esi, ecx
add esi, 1
mov ebx, edx
adc ebx, 0
mov dword [eax + 0x28], esi
mov dword [eax + 0x2c], ebx
mov eax, ecx
or eax, edx
je 0x45185c
jmp case.0x44c8ea.62
mov ecx, dword [edi + 0xc]
mov edx, dword [edi + 4]
mov esi, dword [ebp - 0xec]
push 0
push 0xffffffffffffffff
push ecx
push edx
call fcn.0044c4a0
add esp, 0x10
test eax, eax
je 0x451aca
mov ecx, dword [ebp - 0xe0]
mov byte [eax + 0x19], 1
mov edx, dword [ecx + 8]
or dword [eax + 0x1c], 4
mov dword [eax + 0x10], edx
jmp 0x451872
mov eax, dword [edi + 4]
mov ecx, dword [esi + 0x38]
mov ecx, dword [ecx + eax*4]
mov eax, esi
call fcn.00446af0
mov edx, dword [edi + 4]
mov eax, dword [esi + 0x38]
mov dword [eax + edx*4], 0
jmp case.0x44c8ea.62
mov ecx, dword [edi + 4]
mov edx, dword [esi + 0x38]
mov esi, dword [edx + ecx*4]
test byte [esi + 0x1c], 4
mov dword [ebp - 0x110], eax
mov byte [esi + 0x19], 0
je 0x44f2d8
mov eax, dword [edi + 0xc]
lea eax, [eax + eax*4]
mov cl, byte [ebx + eax*8 + 8]
lea ebx, [ebx + eax*8]
and cl, 0xe
cmp cl, 2
jne 0x44f24d
push 0
mov eax, ebx
call fcn.0044c5b0
add esp, 4
mov ecx, ebx
call fcn.00444160
mov dword [ebp - 0x1b0], eax
movzx eax, word [ebx + 8]
mov dword [ebp - 0x1ac], edx
test al, 4
jne 0x44f2aa
test al, 8
je 0x45185c
fild qword [ebp - 0x1b0]
fcom qword [ebx]
fnstsw ax
test ah, 0x41
jne 0x44f292
test byte [ebp - 0x110], 1
fstp st(0)
jne 0x44f2aa
dec dword [ebp - 0x110]
jmp 0x44f2aa
fcomp qword [ebx]
fnstsw ax
test ah, 5
jp 0x44f2aa
test byte [ebp - 0x110], 1
je 0x44f2aa
inc dword [ebp - 0x110]
mov eax, dword [ebp - 0x1ac]
mov ebx, dword [ebp - 0x1b0]
lea edx, [ebp - 0x13c]
push edx
push 0
push eax
mov eax, dword [esi]
push ebx
push 0
call fcn.0043ceb0
mov ecx, dword [ebp - 0x1ac]
mov dword [esi + 0x30], ebx
mov dword [esi + 0x34], ecx
jmp 0x44f336
mov edx, dword [esi + 8]
mov cx, word [edi + 0x10]
dec eax
test al, 1
mov eax, dword [edi + 0xc]
mov dword [ebp - 0x2d4], edx
sete dl
lea eax, [eax + eax*4]
mov word [ebp - 0x2d0], cx
lea eax, [ebx + eax*8]
mov ecx, 0x4000
mov dword [ebp - 0x2cc], eax
lea edx, [edx + edx - 1]
mov byte [ebp - 0x2ce], dl
test word [eax + 8], cx
je 0x44f31b
call fcn.00443d70
lea edx, [ebp - 0x13c]
push edx
push 0
push 0
lea eax, [ebp - 0x2d4]
push 0
push eax
mov eax, dword [esi]
call fcn.0043ceb0
add esp, 0x14
mov dword [ebp - 0xd8], eax
test eax, eax
jne 0x44f87a
mov ecx, dword [ebp - 0x110]
xor ebx, ebx
mov byte [esi + 0x1a], bl
mov dword [esi + 0x3c], ebx
mov eax, dword [ebp - 0x13c]
cmp ecx, 0x41
jl 0x44f38d
cmp eax, ebx
jl 0x44f376
jne 0x44f36b
cmp ecx, 0x42
je 0x44f376
mov dword [ebp - 0x13c], ebx
jmp case.0x44c8ea.62
lea ecx, [ebp - 0x13c]
mov dword [ebp - 0x13c], ebx
mov edx, dword [esi]
push ecx
push edx
call fcn.0043d4e0
jmp 0x44f3c0
cmp eax, ebx
jg 0x44f3ab
jne 0x44f398
cmp ecx, 0x3f
je 0x44f3ab
mov eax, dword [esi]
xor ecx, ecx
cmp byte [eax + 0x42], 1
setne cl
mov dword [ebp - 0x13c], ecx
jmp 0x44f3d1
lea edx, [ebp - 0x13c]
mov dword [ebp - 0x13c], ebx
mov eax, dword [esi]
push edx
push eax
call fcn.0043d660
add esp, 8
mov dword [ebp - 0xd8], eax
cmp eax, ebx
jne 0x44f87a
cmp dword [ebp - 0x13c], ebx
jne 0x45185c
jmp case.0x44c8ea.62
mov ecx, dword [edi + 4]
mov edx, dword [esi + 0x38]
mov esi, dword [edx + ecx*4]
mov byte [esi + 0x19], 0
mov eax, dword [edi + 8]
lea eax, [eax + eax*4]
lea ecx, [ebx + eax*8]
call fcn.00444160
mov dword [esi + 0x30], eax
mov dword [esi + 0x34], edx
mov byte [esi + 0x1a], 1
jmp case.0x44c8ea.62
mov eax, dword [edi + 0xc]
mov ecx, dword [edi + 4]
mov edx, dword [esi + 0x38]
mov esi, dword [edx + ecx*4]
lea eax, [eax + eax*4]
lea ebx, [ebx + eax*8]
xor eax, eax
mov dword [ebp - 0x108], ebx
mov dword [ebp - 0x110], eax
cmp dword [edi + 0x10], eax
jle 0x44f494
mov ecx, dword [esi + 8]
mov dword [ebp - 0x2ac], ecx
mov cx, word [edi + 0x10]
mov dword [ebp - 0x2a4], ebx
xor edx, edx
xor ebx, ebx
mov word [ebp - 0x2a8], cx
cmp dx, cx
jae 0x44f48c
mov dword [ebp - 0xe8], eax
mov eax, dword [ebp - 0x2a4]
add eax, dword [ebp - 0xe8]
mov edx, 0x4000
test word [eax + 8], dx
je 0x44f47d
call fcn.00443d70
mov cx, word [ebp - 0x2a8]
add dword [ebp - 0xe8], 0x28
movzx eax, cx
inc ebx
cmp ebx, eax
jl 0x44f45a
lea ebx, [ebp - 0x2ac]
jmp 0x44f4f1
mov edi, dword [esi + 8]
push 0xbf
lea ebx, [ebp - 0x110]
lea edx, [ebp - 0xc8]
call fcn.004487b0
mov ebx, eax
add esp, 4
test ebx, ebx
je 0x451aca
mov eax, dword [ebp - 0x108]
mov ecx, 0x4000
test word [eax + 8], cx
je 0x44f4d0
call fcn.00443d70
mov eax, dword [ebp - 0x108]
mov edx, dword [eax + 0x10]
mov eax, dword [eax + 0xc]
mov ecx, dword [esi + 8]
push ebx
push edx
push eax
push ecx
call fcn.00448810
mov edi, dword [ebp - 0xe0]
add esp, 0x10
xor ecx, ecx
mov byte [ebx + 6], 0
cmp byte [edi], 0x44
mov dword [ebp - 0x108], ecx
jne 0x44f52d
xor edx, edx
cmp dx, word [ebx + 4]
jae 0x44f52d
mov eax, dword [ebx + 8]
add eax, 8
test byte [eax], 1
jne 0x44f523
movzx edx, word [ebx + 4]
inc ecx
add eax, 0x28
cmp ecx, edx
jl 0x44f510
jmp 0x44f52d
mov dword [ebp - 0x108], 1
lea eax, [ebp - 0x1f4]
push eax
mov eax, dword [esi]
push 0
push 0
push 0
push ebx
call fcn.0043ceb0
mov ecx, dword [ebp - 0xdc]
mov ebx, eax
mov eax, dword [ebp - 0x110]
add esp, 0x14
mov dword [ebp - 0xd8], ebx
call fcn.004267e0
test ebx, ebx
jne case.0x44c8ea.62
mov ecx, dword [ebp - 0x1f4]
xor eax, eax
test ecx, ecx
mov dword [esi + 0xc], ecx
sete al
mov cl, 1
sub cl, al
mov byte [esi + 0x19], cl
mov byte [esi + 0x1a], bl
mov dword [esi + 0x3c], ebx
cmp byte [edi], 0x46
jne 0x44f595
test eax, eax
jne 0x45185c
jmp case.0x44c8ea.62
cmp dword [ebp - 0x108], 0
jne 0x45185c
test eax, eax
je 0x45185c
jmp case.0x44c8ea.62
mov edx, dword [edi + 4]
mov eax, dword [esi + 0x38]
mov ecx, dword [edi + 0xc]
mov esi, dword [eax + edx*4]
mov eax, dword [esi]
lea ecx, [ecx + ecx*4]
mov edx, dword [ebx + ecx*8]
mov ebx, dword [ebx + ecx*8 + 4]
lea ecx, [ebp - 0x108]
push ecx
push 0
push ebx
push edx
push 0
mov dword [ebp - 0x108], 0
mov dword [ebp - 0x2b8], edx
call fcn.0043ceb0
mov edx, dword [ebp - 0x2b8]
mov dword [ebp - 0xd8], eax
mov eax, dword [ebp - 0x108]
add esp, 0x14
mov dword [esi + 0x30], edx
mov dword [esi + 0x34], ebx
mov dword [esi + 0x3c], 0
mov word [esi + 0x19], 0
mov dword [esi + 0xc], eax
test eax, eax
jne 0x45185c
jmp case.0x44c8ea.62
mov eax, dword [edi + 8]
mov ecx, dword [esi + 8]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov edx, 0x2460
test word [eax + 8], dx
je 0x44f63f
call fcn.0044c790
jmp 0x44f648
mov ecx, 4
mov word [eax + 8], cx
mov edx, dword [edi + 4]
mov ecx, dword [esi + 0x38]
mov ecx, dword [ecx + edx*4]
mov edx, dword [ecx + 0x28]
mov dword [eax], edx
mov ecx, dword [ecx + 0x2c]
mov dword [eax + 4], ecx
mov edx, dword [edi + 4]
mov eax, dword [esi + 0x38]
mov eax, dword [eax + edx*4]
add dword [eax + 0x28], 1
adc dword [eax + 0x2c], 0
jmp case.0x44c8ea.62
mov edx, dword [esi + 8]
xor eax, eax
mov dword [ebp - 0x138], eax
mov dword [ebp - 0x134], eax
mov dword [ebp - 0x100], eax
mov eax, dword [edi + 8]
lea ecx, [eax + eax*4]
lea eax, [edx + ecx*8]
mov ecx, 0x2460
test word [eax + 8], cx
je 0x44f6a4
call fcn.0044c790
jmp 0x44f6ad
mov edx, 4
mov word [eax + 8], dx
mov ecx, dword [esi + 0x38]
mov dword [ebp - 0xe4], eax
mov eax, dword [edi + 4]
mov eax, dword [ecx + eax*4]
test byte [eax + 0x1c], 2
mov dword [ebp - 0x10c], eax
jne 0x44f763
mov esi, eax
mov eax, dword [esi]
lea edi, [ebp - 0x100]
call fcn.0043ce60
mov dword [ebp - 0xd8], eax
test eax, eax
jne 0x44f87a
cmp dword [ebp - 0x100], eax
je 0x44f703
mov dword [ebp - 0x138], 1
mov dword [ebp - 0x134], eax
jmp 0x44f751
mov esi, dword [esi]
mov eax, esi
call fcn.0043c5f0
mov eax, dword [esi + 0x10]
mov esi, dword [esi + 0x14]
mov dword [ebp - 0x138], eax
mov dword [ebp - 0x134], esi
mov dword [ebp - 0xd8], 0
cmp esi, 0x7fffffff
jl 0x44f743
jg 0x44f737
cmp eax, 0xffffffff
jb 0x44f743
mov eax, dword [ebp - 0x10c]
or dword [eax + 0x1c], 2
jmp 0x44f751
add dword [ebp - 0x138], 1
adc dword [ebp - 0x134], 0
mov edi, dword [ebp - 0xe0]
mov ebx, dword [ebp - 0x128]
mov esi, dword [ebp - 0xec]
mov edx, dword [edi + 0xc]
test edx, edx
je 0x44f7f9
mov esi, dword [esi + 0xb0]
test esi, esi
je 0x44f795
mov ecx, esi
mov eax, dword [ecx + 4]
test eax, eax
je 0x44f78a
mov ecx, eax
mov eax, dword [ecx + 4]
test eax, eax
jne 0x44f781
mov eax, dword [ecx + 0x10]
lea edx, [edx + edx*4]
lea esi, [eax + edx*8]
jmp 0x44f79b
lea ecx, [edx + edx*4]
lea esi, [ebx + ecx*8]
call fcn.004442c0
mov eax, dword [esi]
mov ecx, dword [esi + 4]
cmp eax, 0xffffffff
jne 0x44f7b6
cmp ecx, 0x7fffffff
je 0x44f870
mov edx, dword [ebp - 0x10c]
test byte [edx + 0x1c], 2
jne 0x44f870
mov edx, dword [ebp - 0x134]
add eax, 1
adc ecx, 0
cmp edx, ecx
jg 0x44f7ee
jl 0x44f7e0
cmp dword [ebp - 0x138], eax
jae 0x44f7ee
mov edx, ecx
mov dword [ebp - 0x138], eax
mov dword [ebp - 0x134], edx
mov eax, dword [ebp - 0x138]
mov dword [esi], eax
mov dword [esi + 4], edx
mov ecx, dword [ebp - 0x10c]
test byte [ecx + 0x1c], 2
je 0x44f8a9
xor ebx, ebx
mov esi, ecx
lea ecx, [ecx]
lea edx, [ebp - 0x138]
push edx
push 8
call fcn.004287c0
mov eax, dword [ebp - 0x134]
mov ecx, dword [ebp - 0x138]
and eax, 0x3fffffff
add ecx, 1
lea edx, [ebp - 0x100]
push edx
adc eax, 0
push 0
push eax
push ecx
mov dword [ebp - 0x134], eax
mov eax, dword [esi]
push 0
mov dword [ebp - 0x138], ecx
call fcn.0043ceb0
add esp, 0x1c
mov dword [ebp - 0xd8], eax
test eax, eax
jne 0x44f8a9
cmp dword [ebp - 0x100], eax
jne 0x44f8a9
inc ebx
cmp ebx, 0x64
jl 0x44f810
mov dword [ebp - 0xd8], 0xd
mov ecx, dword [ebp - 0xdc]
cmp byte [ecx + 0x41], 0
je 0x451a68
mov dword [ebp - 0xd8], 7
mov ecx, dword [ebp - 0xd8]
mov eax, 0x50ac04
call fcn.0049af20
jmp 0x451a9b
mov eax, dword [ebp - 0x10c]
mov ecx, dword [ebp - 0x138]
mov edx, dword [ebp - 0x134]
mov byte [eax + 0x1a], 0
mov dword [eax + 0x3c], 0
mov eax, dword [ebp - 0xe4]
mov dword [eax], ecx
mov dword [eax + 4], edx
jmp case.0x44c8ea.62
mov eax, dword [edi + 8]
lea eax, [eax + eax*4]
lea ecx, [ebx + eax*8]
mov eax, dword [edi + 4]
mov dword [ebp - 0xf4], ecx
mov ecx, dword [esi + 0x38]
mov ecx, dword [ecx + eax*4]
mov eax, dword [edi + 0xc]
mov dword [ebp - 0x108], ecx
cmp dl, 0x54
jne 0x44f908
lea edx, [eax + eax*4]
mov eax, dword [ebx + edx*8]
mov ebx, dword [ebx + edx*8 + 4]
jmp 0x44f90b
cdq
mov ebx, edx
test byte [edi + 3], 1
mov dword [ebp - 0x1e0], eax
je 0x44f91a
inc dword [esi + 0x5c]
test byte [edi + 3], 2
je 0x44f938
mov edx, dword [ebp - 0xdc]
mov dword [ebp - 0x150], eax
mov dword [ebp - 0x14c], ebx
mov dword [edx + 0x20], eax
mov dword [edx + 0x24], ebx
mov eax, dword [ebp - 0xf4]
movzx edx, word [eax + 8]
test dl, 1
je 0x44f94f
xor esi, esi
mov dword [eax + 0x10], esi
mov dword [eax + 0xc], esi
test byte [edi + 3], 0x10
je 0x44f95a
mov ecx, dword [ecx + 0xc]
jmp 0x44f95c
xor ecx, ecx
test edx, 0x4000
je 0x44f968
mov esi, dword [eax]
jmp 0x44f96a
xor esi, esi
movzx edx, byte [edi + 3]
push ecx
mov ecx, dword [eax + 0xc]
shr edx, 3
and edx, 1
push edx
mov edx, dword [eax + 0x10]
mov eax, dword [ebp - 0x1e0]
push esi
mov esi, dword [ebp - 0x108]
push ecx
push edx
push ebx
push eax
mov eax, dword [esi]
push 0
call fcn.004408f0
add esp, 0x20
mov dword [ebp - 0xd8], eax
mov byte [esi + 0x1a], 0
mov dword [esi + 0x3c], 0
test eax, eax
jne case.0x44c8ea.62
mov ecx, dword [ebp - 0xdc]
mov ecx, dword [ecx + 0xd4]
test ecx, ecx
je case.0x44c8ea.62
mov eax, dword [edi + 0x10]
test eax, eax
je case.0x44c8ea.62
mov edx, dword [ebp - 0x1e0]
push ebx
push edx
push eax
mov eax, esi
movsx edx, byte [eax + 0x18]
mov eax, dword [ebp - 0xdc]
mov esi, dword [eax + 0x10]
mov eax, dword [eax + 0xd0]
add edx, edx
mov edx, dword [esi + edx*8]
push edx
mov dl, byte [edi + 3]
and dl, 4
movzx edx, dl
neg edx
sbb edx, edx
and edx, 5
add edx, 0x12
push edx
push eax
call ecx
add esp, 0x18
jmp case.0x44c8ea.62
mov ecx, dword [edi + 4]
mov edx, dword [esi + 0x38]
mov ebx, dword [edx + ecx*4]
mov eax, dword [ebx]
call fcn.00440b00
mov dword [ebp - 0xd8], eax
mov dword [ebx + 0x3c], 0
test eax, eax
jne 0x44fa80
mov ecx, dword [ebp - 0xdc]
mov eax, dword [ecx + 0xd4]
mov dword [ebp - 0xf4], eax
test eax, eax
je 0x44fa80
mov eax, dword [edi + 0x10]
test eax, eax
je 0x44fa80
test byte [ebx + 0x1c], 4
je 0x44fa80
mov edx, dword [ebx + 0x34]
push edx
mov edx, dword [ebx + 0x30]
push edx
mov edx, dword [ecx + 0x10]
mov ecx, dword [ecx + 0xd0]
push eax
movsx eax, byte [ebx + 0x18]
add eax, eax
mov eax, dword [edx + eax*8]
push eax
push 9
push ecx
call dword [ebp - 0xf4]
add esp, 0x18
test byte [edi + 8], 1
je case.0x44c8ea.62
inc dword [esi + 0x5c]
jmp case.0x44c8ea.62
mov eax, dword [esi + 0x5c]
mov ecx, dword [ebp - 0xdc]
add dword [ecx + 0x54], eax
mov dword [ecx + 0x50], eax
mov dword [esi + 0x5c], 0
jmp case.0x44c8ea.62
mov edx, dword [edi + 4]
mov eax, dword [esi + 0x38]
mov ecx, dword [edi + 0xc]
mov eax, dword [eax + edx*4]
mov edx, dword [edi + 0x10]
lea esi, [ebp - 0xfc]
lea ecx, [ecx + ecx*4]
push esi
lea ecx, [ebx + ecx*8]
push edx
push ecx
mov dword [ebp - 0xfc], 0
call fcn.004556f0
add esp, 0xc
cmp dword [ebp - 0xfc], 0
mov dword [ebp - 0xd8], eax
jne 0x45185c
jmp case.0x44c8ea.62
mov eax, dword [edi + 8]
lea edx, [eax + eax*4]
mov eax, dword [edi + 4]
lea ecx, [ebx + edx*8]
mov edx, dword [esi + 0x38]
mov eax, dword [edx + eax*4]
call fcn.00455650
mov ecx, dword [esi + 0x38]
mov dword [ebp - 0xd8], eax
mov eax, dword [edi + 0xc]
mov edx, dword [ecx + eax*4]
mov dword [edx + 0x3c], 0
jmp case.0x44c8ea.62
mov eax, dword [edi + 8]
mov ecx, dword [edi + 4]
mov edx, dword [esi + 0x38]
lea eax, [eax + eax*4]
lea ebx, [ebx + eax*8]
mov eax, dword [edx + ecx*4]
mov ecx, dword [eax]
test byte [eax + 0x1c], 4
mov dword [ebp - 0xf4], eax
mov dword [ebp - 0x10c], ecx
mov eax, ecx
jne 0x44fb94
call fcn.0043c5f0
mov eax, dword [ebp - 0x10c]
mov edx, dword [eax + 0x10]
mov ecx, dword [eax + 0x14]
mov eax, dword [ebp - 0xdc]
mov eax, dword [eax + 0x58]
mov dword [ebp - 0x220], edx
cdq
cmp ecx, edx
jg 0x451afd
jl 0x44fb86
cmp dword [ebp - 0x220], eax
ja 0x451afd
mov ecx, dword [ebp - 0x220]
mov dword [ebp - 0xe8], ecx
jmp 0x44fbb9
call fcn.0043c5f0
mov ecx, dword [ebp - 0x10c]
mov eax, dword [ecx + 0x1c]
mov edx, dword [ebp - 0xdc]
mov dword [ebp - 0xe8], eax
cmp eax, dword [edx + 0x58]
ja 0x451afd
mov ecx, eax
cmp ecx, 0x20
ja 0x44fbc3
mov ecx, 0x20
cmp dword [ebx + 0x18], ecx
jge 0x44fc2f
xor eax, eax
mov edi, ebx
call fcn.00443bd0
test eax, eax
jne 0x451aca
mov edi, dword [ebp - 0xe0]
mov dx, word [ebx + 8]
mov ecx, dword [ebp - 0xe8]
mov eax, 0xbe10
and dx, ax
or dx, 0x10
mov word [ebx + 8], dx
mov edx, dword [ebp - 0xf4]
mov dword [ebx + 0xc], ecx
test byte [edx + 0x1c], 4
jne 0x44fc3c
mov eax, dword [ebx + 0x10]
push 0
push eax
mov eax, dword [ebp - 0x10c]
push ecx
push 0
push eax
call fcn.0043c800
add esp, 0x14
mov dword [ebp - 0xd8], eax
mov byte [ebx + 0xa], 1
jmp case.0x44c8ea.62
mov eax, dword [ebx + 0x14]
and word [ebx + 8], 0xd
mov dword [ebx + 0x10], eax
jmp 0x44fbdf
mov edx, dword [ebx + 0x10]
mov eax, dword [ebp - 0x10c]
push edx
push ecx
push 0
push eax
call fcn.0043cad0
add esp, 0x10
mov dword [ebp - 0xd8], eax
mov byte [ebx + 0xa], 1
jmp case.0x44c8ea.62
mov eax, dword [edi + 8]
mov edx, dword [esi + 8]
lea ecx, [eax + eax*4]
lea eax, [edx + ecx*8]
mov ecx, 0x2460
test word [eax + 8], cx
je 0x44fc7f
call fcn.0044c790
jmp 0x44fc88
mov edx, 4
mov word [eax + 8], dx
mov ecx, dword [esi + 0x38]
mov dword [ebp - 0xe4], eax
mov eax, dword [edi + 4]
mov ebx, dword [ecx + eax*4]
cmp byte [ebx + 0x19], 0
je 0x44fcb1
mov eax, dword [ebp - 0xe4]
mov edx, 1
mov word [eax + 8], dx
jmp case.0x44c8ea.62
cmp byte [ebx + 0x1a], 0
je 0x44fcc8
mov ecx, dword [ebx + 0x30]
mov dword [ebp - 0x1a8], ecx
mov edx, dword [ebx + 0x34]
jmp 0x44fd76
cmp dword [ebx + 0x24], 0
je 0x44fd0e
mov eax, dword [ebx + 0x24]
mov ebx, dword [eax]
mov ecx, dword [ebx]
lea edx, [ebp - 0x1a8]
push edx
push eax
mov eax, dword [ecx + 0x30]
call eax
push ebx
push esi
mov dword [ebp - 0xd8], eax
call fcn.004499a0
mov ecx, dword [ebp - 0x1a8]
mov eax, dword [ebp - 0xe4]
mov dword [eax], ecx
mov edx, dword [ebp - 0x1a4]
add esp, 0x10
mov dword [eax + 4], edx
jmp case.0x44c8ea.62
mov ecx, dword [ebx]
cmp byte [ecx + 0x42], 1
je 0x44fd4b
mov edi, ebx
call fcn.004483d0
mov dword [ebp - 0xd8], eax
test eax, eax
jne 0x44f87a
mov edi, dword [ebp - 0xe0]
cmp byte [ebx + 0x19], 0
je 0x44fd57
mov eax, dword [ebp - 0xe4]
mov edx, 1
mov word [eax + 8], dx
jmp case.0x44c8ea.62
mov dword [ebp - 0xd8], 0
jmp 0x44fd31
mov ebx, dword [ebx]
mov eax, ebx
call fcn.0043c5f0
mov ecx, dword [ebx + 0x10]
mov dword [ebp - 0x1a8], ecx
mov edx, dword [ebx + 0x14]
mov dword [ebp - 0xd8], 0
mov ecx, dword [ebp - 0x1a8]
mov eax, dword [ebp - 0xe4]
mov dword [ebp - 0x1a4], edx
mov dword [eax], ecx
mov edx, dword [ebp - 0x1a4]
mov dword [eax + 4], edx
jmp case.0x44c8ea.62
mov eax, dword [edi + 4]
mov ecx, dword [esi + 0x38]
mov eax, dword [ecx + eax*4]
mov byte [eax + 0x19], 1
mov dword [eax + 0x3c], 0
mov eax, dword [eax]
test eax, eax
je case.0x44c8ea.62
mov esi, eax
call fcn.00438c00
jmp case.0x44c8ea.62
mov edx, dword [edi + 4]
mov eax, dword [esi + 0x38]
mov esi, dword [eax + edx*4]
mov eax, dword [esi]
xor ebx, ebx
lea edi, [ebp - 0xe4]
mov dword [ebp - 0xe4], ebx
call fcn.0043ce60
mov ecx, dword [ebp - 0xe4]
mov dword [ebp - 0xd8], eax
mov eax, dword [ebp - 0xe0]
mov byte [esi + 0x19], cl
mov byte [esi + 0x1a], bl
mov dword [esi + 0x3c], ebx
mov edx, dword [eax + 0xc]
mov dword [esi + 0xc], edx
mov edi, eax
cmp dword [eax + 8], ebx
jle case.0x44c8ea.62
cmp ecx, ebx
jne 0x45185c
jmp case.0x44c8ea.62
inc dword [esi + 0x74]
mov eax, dword [edi + 4]
mov ecx, dword [esi + 0x38]
mov ebx, dword [ecx + eax*4]
cmp dword [ebx + 0x38], 0
mov dword [ebp - 0x104], 1
je 0x44fe4a
lea edi, [ebp - 0x104]
mov eax, ebx
call fcn.00455590
mov edi, dword [ebp - 0xe0]
jmp 0x44fe80
mov esi, dword [ebx]
call fcn.0043cbb0
test eax, eax
jne 0x44fe75
cmp byte [esi + 0x42], al
jne 0x44fe66
mov dword [ebp - 0x104], 1
jmp 0x44fe75
mov dword [ebp - 0x104], 0
call fcn.0043cd10
mov byte [ebx + 0x1a], 0
mov dword [ebx + 0x3c], 0
mov dword [ebp - 0xd8], eax
mov eax, dword [ebp - 0x104]
mov byte [ebx + 0x19], al
test eax, eax
jne 0x45185c
jmp case.0x44c8ea.62
mov edx, dword [edi + 4]
mov eax, dword [esi + 0x38]
mov eax, dword [eax + edx*4]
mov edi, dword [ebp - 0xdc]
lea ebx, [ebp - 0x194]
mov dword [ebp - 0xf4], eax
mov dword [ebp - 0x194], 0
call fcn.004555e0
mov esi, dword [ebp - 0xec]
mov edi, dword [ebp - 0xe0]
mov ebx, dword [ebp - 0xf4]
jmp 0x44ff0e
mov ecx, dword [edi + 4]
mov edx, dword [esi + 0x38]
cmp dword [edx + ecx*4], 0
je case.0x44c8ea.62
mov eax, dword [edi + 4]
mov ecx, dword [esi + 0x38]
mov ebx, dword [ecx + eax*4]
mov edx, dword [edi + 0xc]
mov dword [ebp - 0x194], edx
mov ecx, dword [ebx]
mov edx, dword [edi + 0x10]
lea eax, [ebp - 0x194]
push eax
push ecx
call edx
add esp, 8
mov dword [ebx + 0x3c], 0
cmp dword [ebp - 0x194], 0
mov dword [ebp - 0xd8], eax
jne 0x44ff39
mov byte [ebx + 0x19], 0
movzx eax, byte [edi + 3]
inc dword [esi + eax*4 + 0x6c]
lea eax, [esi + eax*4 + 0x6c]
jmp case.0x44c8ea.14
mov byte [ebx + 0x19], 1
jmp 0x451468
test byte [edi + 3], 1
mov ecx, dword [edi + 4]
mov edx, dword [esi + 0x38]
mov eax, dword [edx + ecx*4]
mov dword [ebp - 0xe8], eax
mov eax, dword [edi + 8]
lea ecx, [eax + eax*4]
lea ebx, [ebx + ecx*8]
je 0x44ff63
inc dword [esi + 0x5c]
mov edx, 0x4000
test word [ebx + 8], dx
je 0x44ff83
mov eax, ebx
call fcn.00443d70
mov dword [ebp - 0xd8], eax
test eax, eax
jne case.0x44c8ea.62
cmp byte [edi], 0x6e
jne 0x44ffa2
mov eax, dword [ebp - 0xe8]
push ebx
call fcn.00454690
add esp, 4
mov dword [ebp - 0xd8], eax
jmp case.0x44c8ea.62
test byte [edi + 3], 0x10
mov eax, dword [ebx + 0xc]
mov ebx, dword [ebx + 0x10]
je 0x44ffb9
mov ecx, dword [ebp - 0xe8]
mov ecx, dword [ecx + 0xc]
jmp 0x44ffbb
xor ecx, ecx
mov edx, dword [edi + 0xc]
mov esi, dword [ebp - 0xe8]
push ecx
push edx
push 0
push 0
cdq
push 0x500f7c
push edx
push eax
mov eax, dword [esi]
push ebx
call fcn.004408f0
add esp, 0x20
mov dword [ebp - 0xd8], eax
mov dword [esi + 0x3c], 0
jmp case.0x44c8ea.62
mov ecx, dword [esi + 0x38]
mov eax, dword [edi + 4]
mov esi, dword [ecx + eax*4]
mov eax, dword [esi]
mov edx, dword [esi + 8]
mov cx, word [edi + 0xc]
mov word [ebp - 0x2f0], cx
mov ecx, dword [edi + 8]
mov dword [ebp - 0x2f4], edx
lea edx, [ecx + ecx*4]
lea ecx, [ebx + edx*8]
lea edx, [ebp - 0x1c4]
push edx
push 0
push 0
mov dword [ebp - 0x2ec], ecx
lea ecx, [ebp - 0x2f4]
push 0
push ecx
mov dword [ebp - 0xf4], eax
mov byte [ebp - 0x2ee], 0
call fcn.0043ceb0
add esp, 0x14
mov dword [ebp - 0xd8], eax
test eax, eax
jne 0x450069
cmp dword [ebp - 0x1c4], eax
jne 0x450069
mov eax, dword [ebp - 0xf4]
call fcn.00440b00
mov dword [ebp - 0xd8], eax
mov dword [esi + 0x3c], 0
jmp case.0x44c8ea.62
mov eax, dword [edi + 8]
lea edx, [eax + eax*4]
mov eax, dword [esi + 8]
lea eax, [eax + edx*8]
mov ecx, 0x2460
test word [eax + 8], cx
je 0x450093
call fcn.0044c790
jmp 0x45009c
mov edx, 4
mov word [eax + 8], dx
mov ecx, dword [esi + 0x38]
mov ebx, eax
mov eax, dword [edi + 4]
mov esi, dword [ecx + eax*4]
mov edx, dword [esi]
mov eax, 1
mov word [ebx + 8], ax
mov ecx, dword [esi]
mov dword [ebp - 0xf4], edx
cmp byte [ecx + 0x42], al
je 0x45013b
mov edi, esi
call fcn.004483d0
mov dword [ebp - 0xd8], eax
test eax, eax
jne 0x44f87a
mov edi, dword [ebp - 0xe0]
cmp byte [esi + 0x19], 0
jne case.0x44c8ea.62
mov eax, dword [ebp - 0xdc]
lea edx, [ebp - 0x1c0]
push edx
xor esi, esi
push eax
mov eax, dword [ebp - 0xf4]
mov dword [ebp - 0x1c0], esi
mov dword [ebp - 0x1bc], esi
call fcn.004496a0
add esp, 8
mov dword [ebp - 0xd8], eax
cmp eax, esi
jne 0x44f87a
mov ecx, dword [ebp - 0x1c0]
mov edx, dword [ebp - 0x1bc]
mov eax, 4
mov dword [ebx], ecx
mov dword [ebx + 4], edx
mov word [ebx + 8], ax
jmp case.0x44c8ea.62
mov dword [ebp - 0xd8], 0
jmp 0x4500da
mov ecx, dword [edi + 4]
mov eax, dword [esi + 0x38]
mov eax, dword [eax + ecx*4]
mov ecx, dword [eax + 8]
mov dword [ebp - 0x308], ecx
mov cx, word [edi + 0x10]
mov word [ebp - 0x304], cx
mov ecx, dword [edi + 0xc]
cmp dl, 0x74
sbb dl, dl
lea ecx, [ecx + ecx*4]
mov byte [ebp - 0x302], dl
lea edx, [ebx + ecx*8]
lea ecx, [ebp - 0xe8]
push ecx
mov ecx, dword [ebp - 0xdc]
mov dword [ebp - 0x300], edx
lea edx, [ebp - 0x308]
push edx
push ecx
mov ebx, eax
mov dword [ebp - 0xe8], 0
call fcn.004497e0
add esp, 0xc
test byte [edi], 1
mov dword [ebp - 0xd8], eax
mov eax, dword [ebp - 0xe8]
jne 0x4501bc
neg eax
jmp 0x4501bd
inc eax
test eax, eax
jg 0x45185c
jmp case.0x44c8ea.62
mov eax, dword [edi + 8]
lea edx, [eax + eax*4]
mov eax, dword [esi + 8]
lea eax, [eax + edx*8]
mov ecx, 0x2460
test word [eax + 8], cx
je 0x4501e8
call fcn.0044c790
jmp 0x4501f1
mov edx, 4
mov word [eax + 8], dx
mov dword [ebp - 0xe4], eax
mov ecx, dword [ebp - 0xe4]
mov eax, 1
mov word [ecx + 8], ax
mov eax, dword [ebp - 0xdc]
mov edx, dword [eax + 0xa4]
inc edx
cmp dword [eax + 0x98], edx
jle 0x45022e
mov dword [ebp - 0xd8], 6
mov byte [esi + 0x56], 2
jmp case.0x44c8ea.62
mov ebx, dword [edi + 0xc]
mov edx, dword [edi + 4]
lea ecx, [ebp - 0x114]
push ecx
push edx
mov edx, dword [eax + 0x10]
mov ecx, ebx
add ecx, ecx
mov eax, dword [edx + ecx*8 + 4]
mov dword [ebp - 0x114], 0
call fcn.00441550
mov ecx, dword [ebp - 0xe4]
mov esi, eax
mov eax, 4
mov word [ecx + 8], ax
mov eax, dword [ebp - 0x114]
cdq
add esp, 8
mov dword [ebp - 0xd8], esi
mov dword [ecx], eax
mov dword [ecx + 4], edx
test esi, esi
jne case.0x44c8ea.62
mov esi, dword [ebp - 0x114]
test esi, esi
je case.0x44c8ea.62
mov edi, dword [edi + 4]
mov ecx, dword [ebp - 0xdc]
mov eax, ebx
call fcn.00465080
inc bl
mov byte [ebp - 0x129], bl
jmp 0x451872
mov ecx, dword [edi + 0xc]
mov eax, dword [edi + 4]
neg ecx
sbb ecx, ecx
lea edx, [ebp - 0x124]
and ecx, edx
mov edx, dword [ebp - 0xdc]
push ecx
mov ecx, dword [edi + 8]
push eax
mov eax, dword [edx + 0x10]
add ecx, ecx
mov dword [ebp - 0x124], 0
mov eax, dword [eax + ecx*8 + 4]
call fcn.00441270
add esp, 8
cmp dword [edi + 0xc], 0
mov dword [ebp - 0xd8], eax
je case.0x44c8ea.62
mov eax, dword [ebp - 0x124]
add dword [esi + 0x5c], eax
mov ecx, dword [edi + 0xc]
test ecx, ecx
jle case.0x44c8ea.62
lea ecx, [ecx + ecx*4]
cdq
add dword [ebx + ecx*8], eax
lea ecx, [ebx + ecx*8]
adc dword [ecx + 4], edx
jmp case.0x44c8ea.62
mov edx, dword [edi + 4]
mov eax, dword [esi + 0x38]
mov eax, dword [eax + edx*4]
mov ecx, dword [eax + 0x38]
test ecx, ecx
je 0x450342
push ecx
mov ecx, dword [ebp - 0xdc]
push ecx
call fcn.00453950
add esp, 8
jmp case.0x44c8ea.62
mov eax, dword [eax]
mov edx, dword [eax + 0x34]
mov eax, dword [eax]
push 0
push edx
call fcn.00441270
add esp, 8
mov dword [ebp - 0xd8], eax
jmp case.0x44c8ea.62
mov eax, dword [edi + 8]
mov ecx, dword [esi + 8]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov edx, 0x2460
test word [eax + 8], dx
je 0x45037d
call fcn.0044c790
jmp 0x450386
mov ecx, 4
mov word [eax + 8], cx
mov edx, dword [ebp - 0xdc]
mov esi, eax
mov eax, dword [edi + 4]
shl eax, 4
add eax, dword [edx + 0x10]
xor ecx, ecx
cmp byte [edi], 0x7a
mov eax, dword [eax + 4]
setne cl
mov dword [ebp - 0xf4], 0
inc ecx
push ecx
lea ecx, [ebp - 0xf4]
push ecx
call fcn.00441080
mov dword [ebp - 0xd8], eax
mov eax, dword [ebp - 0xf4]
cdq
add esp, 8
mov dword [esi], eax
mov dword [esi + 4], edx
jmp case.0x44c8ea.62
mov eax, dword [edi + 4]
mov ecx, 0x507e18
cmp eax, 1
je 0x4503e6
mov ecx, 0x507e2c
mov edx, dword [edi + 0x10]
mov ebx, dword [ebp - 0xdc]
push edx
push ecx
mov ecx, dword [ebx + 0x10]
mov dword [ebp - 0x208], eax
add esi, 0x2c
add eax, eax
mov dword [ebp - 0x210], ebx
mov dword [ebp - 0x20c], esi
mov edx, dword [ecx + eax*8]
push edx
push 0x507e40
push ebx
call fcn.004284e0
mov esi, eax
add esp, 0x14
test esi, esi
jne 0x45042f
mov dword [ebp - 0xd8], 7
jmp 0x450486
push 0
lea eax, [ebp - 0x210]
push eax
push fcn.004787a0
push esi
push ebx
mov byte [ebx + 0x91], 1
mov dword [ebp - 0x204], 0
call fcn.004749c0
mov edi, eax
add esp, 0x14
mov dword [ebp - 0xd8], edi
test edi, edi
jne 0x450472
mov ecx, dword [ebp - 0x204]
mov dword [ebp - 0xd8], ecx
mov edi, ecx
mov eax, esi
mov ecx, ebx
call fcn.004267e0
mov byte [ebx + 0x91], 0
test edi, edi
je 0x45048d
mov eax, ebx
call fcn.00462620
cmp dword [ebp - 0xd8], 7
je 0x451aca
jmp 0x451872
mov eax, dword [edi + 4]
mov edi, dword [ebp - 0xdc]
call fcn.004608d0
mov dword [ebp - 0xd8], eax
jmp 0x451872
mov edx, dword [edi + 0x10]
mov eax, dword [edi + 4]
mov edi, dword [ebp - 0xdc]
push edx
call fcn.00462a40
add esp, 4
jmp 0x451872
mov eax, dword [edi + 0x10]
mov ecx, dword [ebp - 0xdc]
push eax
mov eax, dword [edi + 4]
push ecx
call fcn.004623b0
add esp, 8
jmp case.0x44c8ea.62
mov edx, dword [edi + 0x10]
mov eax, dword [ebp - 0xdc]
push edx
push eax
mov eax, dword [edi + 4]
call fcn.00485ef0
add esp, 8
jmp case.0x44c8ea.62
mov edi, dword [edi + 8]
mov esi, dword [ebp - 0xdc]
lea ecx, [edi*4 + 4]
push 0
push ecx
mov dword [ebp - 0x114], edi
call fcn.00426a60
mov edi, eax
add esp, 8
test edi, edi
je 0x451aca
mov edx, dword [ebp - 0xe0]
mov eax, dword [edx + 0xc]
mov ecx, dword [ebp - 0x128]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov eax, dword [edx + 4]
lea edx, [eax + eax*4]
xor ebx, ebx
lea eax, [ecx + edx*8]
mov dword [ebp - 0xe4], eax
cmp dword [ebp - 0x114], ebx
jle 0x45058e
mov dword [ebp - 0xe8], eax
jmp 0x450570
mov ecx, dword [ebp - 0xe8]
call fcn.00444160
add dword [ebp - 0xe8], 0x28
mov dword [edi + ebx*4], eax
inc ebx
cmp ebx, dword [ebp - 0x114]
jl 0x450570
mov edx, dword [ebp - 0x114]
mov dword [edi + ebx*4], 0
mov ecx, dword [esi]
lea eax, [ebp - 0x1d4]
push eax
mov eax, dword [ebp - 0xe0]
push ecx
movzx ecx, byte [eax + 3]
push edx
mov edx, dword [ebp - 0xdc]
mov eax, dword [edx + 0x10]
add ecx, ecx
mov ecx, dword [eax + ecx*8 + 4]
push edi
call fcn.004421e0
mov ecx, dword [ebp - 0xdc]
mov ebx, eax
add esp, 0x10
mov eax, edi
call fcn.004267e0
mov edi, dword [ebp - 0x1d4]
mov eax, edi
cdq
sub dword [esi], eax
mov eax, dword [ebp - 0xe4]
sbb dword [esi + 4], edx
call fcn.004444d0
test edi, edi
je 0x450615
test ebx, ebx
je 0x451aca
mov ecx, dword [ebp - 0xe4]
push fcn.00426730
push 1
push ebx
or eax, 0xffffffff
call fcn.004447b0
add esp, 0xc
movzx ecx, byte [ebp - 0x11d]
mov eax, dword [ebp - 0xe4]
call fcn.00443bb0
jmp 0x451872
mov eax, dword [edi + 4]
mov edi, dword [edi + 8]
lea ecx, [eax + eax*4]
test byte [ebx + ecx*8 + 8], 0x20
lea esi, [ebx + ecx*8]
lea edx, [edi + edi*4]
lea ebx, [ebx + edx*8]
jne 0x450656
mov edi, esi
call fcn.00444570
test byte [esi + 8], 0x20
je 0x451aca
mov eax, dword [ebx + 4]
mov ecx, dword [ebx]
mov edi, dword [esi]
push eax
push ecx
call fcn.00430430
add esp, 8
jmp 0x451872
mov eax, dword [edi + 4]
lea edx, [eax + eax*4]
test byte [ebx + edx*8 + 8], 0x20
lea ebx, [ebx + edx*8]
je 0x4506bd
mov eax, dword [ebx]
lea esi, [ebp - 0x200]
call fcn.004307d0
test eax, eax
je 0x4506bd
mov eax, dword [ebp - 0x1fc]
mov edi, dword [edi + 0xc]
mov ecx, dword [ebp - 0x200]
push eax
mov eax, dword [ebp - 0x128]
lea edx, [edi + edi*4]
push ecx
lea eax, [eax + edx*8]
call fcn.00444530
mov esi, dword [ebp - 0xec]
add esp, 8
jmp 0x451468
mov eax, ebx
call fcn.004444d0
mov esi, dword [ebp - 0xec]
jmp case.0x44c8ea.14
mov eax, dword [edi + 4]
lea ecx, [eax + eax*4]
test byte [ebx + ecx*8 + 8], 0x20
mov eax, dword [edi + 0xc]
lea esi, [ebx + ecx*8]
lea edx, [eax + eax*4]
mov eax, dword [edi + 0x10]
lea ebx, [ebx + edx*8]
mov dword [ebp - 0xf4], eax
jne 0x45070e
mov edi, esi
call fcn.00444570
test byte [esi + 8], 0x20
je 0x451aca
mov edi, dword [ebp - 0xe0]
mov eax, dword [ebp - 0xf4]
test eax, eax
je 0x450734
mov ecx, dword [ebx + 4]
mov edx, dword [ebx]
push ecx
push edx
push eax
mov eax, dword [esi]
call fcn.00430820
add esp, 0xc
test eax, eax
jne 0x45185c
mov eax, dword [ebp - 0xf4]
test eax, eax
js case.0x44c8ea.62
jmp 0x450656
cmp byte [edi + 3], 0
mov eax, dword [edi + 0xc]
mov ecx, dword [edi + 0x10]
lea edx, [eax + eax*4]
lea ebx, [ebx + edx*8]
mov dword [ebp - 0xe8], ecx
mov dword [ebp - 0xf4], ebx
je 0x450780
mov eax, dword [esi + 0xb0]
mov ecx, dword [ecx + 0x14]
test eax, eax
je 0x450780
lea ebx, [ebx]
cmp dword [eax + 0x1c], ecx
je case.0x44c8ea.62
mov eax, dword [eax + 4]
test eax, eax
jne 0x450770
mov eax, dword [esi + 0xb8]
mov ecx, dword [ebp - 0xdc]
cmp eax, dword [ecx + 0x80]
jl 0x4507b1
push 0x507e80
push esi
mov dword [ebp - 0xd8], 1
call fcn.00445100
add esp, 8
jmp case.0x44c8ea.62
test byte [ebx + 8], 0x40
mov ecx, dword [ebp - 0xe8]
jne 0x4508ab
mov eax, dword [ecx + 0xc]
mov ebx, dword [ecx + 8]
mov ecx, dword [ecx + 0x10]
add ebx, eax
lea edx, [ebx + ebx*4 + 0xa]
lea eax, [eax + edx*2]
lea eax, [ecx + eax*4]
mov ecx, dword [ebp - 0xdc]
cdq
push edx
push eax
call fcn.00426a30
mov edi, eax
add esp, 8
test edi, edi
je 0x451aca
mov esi, dword [ebp - 0xf4]
mov eax, esi
call fcn.004440e0
mov ecx, dword [ebp - 0xe8]
mov dword [esi], edi
mov edx, 0x40
mov word [esi + 8], dx
mov esi, dword [ebp - 0xec]
mov edx, dword [ebp - 0xe0]
sub edx, dword [ebp - 0x118]
mov dword [edi], esi
mov dword [edi + 0x3c], ebx
mov eax, dword [ecx + 0xc]
mov dword [edi + 0x40], eax
mov eax, 0x66666667
imul edx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [edi + 0x2c], eax
mov edx, dword [esi + 8]
mov dword [edi + 0x10], edx
mov eax, dword [esi + 0x1c]
mov dword [edi + 0x34], eax
mov edx, dword [esi + 0x38]
mov dword [edi + 0x18], edx
mov eax, dword [esi + 0x24]
mov dword [edi + 0x28], eax
mov edx, dword [esi + 4]
mov dword [edi + 8], edx
mov eax, dword [esi + 0x20]
mov dword [edi + 0x30], eax
mov edx, dword [ecx + 0x14]
mov dword [edi + 0x1c], edx
mov eax, dword [esi + 0xc8]
mov dword [edi + 0x14], eax
mov edx, dword [esi + 0xc4]
lea eax, [ebx + ebx*4 + 0xa]
mov dword [edi + 0x38], edx
lea edx, [edi + eax*8]
lea eax, [edi + 0x50]
cmp eax, edx
je 0x4508ad
lea ebx, [ebx]
mov ebx, 0x80
mov word [eax + 8], bx
mov ebx, dword [ebp - 0xdc]
mov dword [eax + 0x20], ebx
add eax, 0x28
cmp eax, edx
jne 0x450890
jmp 0x4508ad
mov edi, dword [ebx]
inc dword [esi + 0xb8]
mov edx, dword [esi + 0xb0]
mov eax, dword [ebp - 0x150]
mov dword [edi + 4], edx
mov edx, dword [ebp - 0x14c]
mov dword [edi + 0x20], eax
mov dword [edi + 0x24], edx
mov eax, dword [esi + 0x5c]
mov dword [edi + 0x44], eax
mov edx, dword [esi]
mov eax, dword [edx + 0x50]
mov dword [edi + 0x48], eax
mov dword [esi + 0xb0], edi
lea edx, [edi + 0x28]
mov dword [esi + 8], edx
mov dword [esi + 0x5c], 0
mov eax, dword [edi + 0x3c]
mov dword [esi + 0x1c], eax
movzx eax, word [edi + 0x40]
mov dword [esi + 0x24], eax
mov eax, dword [esi + 0x1c]
lea eax, [eax + eax*4 + 5]
mov dword [ebp - 0x128], edx
lea edx, [edx + eax*8]
mov dword [esi + 0x38], edx
mov eax, dword [ecx]
mov dword [esi + 4], eax
mov edi, dword [ecx + 4]
mov dword [esi + 0x20], edi
mov edi, dword [esi + 0x24]
lea edx, [edx + edi*4]
mov dword [esi + 0xc8], edx
mov ecx, dword [ecx + 0x10]
push ecx
mov dword [ebp - 0x118], eax
add eax, 0xffffffec
push 0
push edx
mov dword [esi + 0xc4], ecx
mov dword [ebp - 0xe0], eax
call fcn.004d6340
add esp, 0xc
jmp 0x451872
mov eax, dword [edi + 8]
mov edx, dword [esi + 8]
lea ecx, [eax + eax*4]
lea eax, [edx + ecx*8]
mov ecx, 0x2460
test word [eax + 8], cx
je 0x45096d
call fcn.0044c790
jmp 0x450976
mov edx, 4
mov word [eax + 8], dx
mov esi, dword [esi + 0xb0]
mov ecx, dword [esi + 0x2c]
mov edx, dword [esi + 8]
lea ecx, [ecx + ecx*4]
mov ecx, dword [edx + ecx*4 + 4]
add ecx, dword [edi + 4]
mov edx, dword [esi + 0x10]
lea ecx, [ecx + ecx*4]
push 0x1000
lea ecx, [edx + ecx*8]
push ecx
push eax
call fcn.00444680
add esp, 0xc
jmp case.0x44c8ea.62
mov ecx, dword [ebp - 0xdc]
test dword [ecx + 0x18], 0x1000000
mov eax, dword [edi + 8]
cdq
je 0x4509cd
add dword [ecx + 0x200], eax
adc dword [ecx + 0x204], edx
jmp case.0x44c8ea.62
cmp dword [edi + 4], 0
je 0x4509e4
add dword [ecx + 0x1f8], eax
adc dword [ecx + 0x1fc], edx
jmp case.0x44c8ea.62
add dword [esi + 0x90], eax
adc dword [esi + 0x94], edx
jmp case.0x44c8ea.62
cmp dword [edi + 4], 0
je 0x450a15
mov eax, dword [ebp - 0xdc]
mov edx, dword [eax + 0x1f8]
or edx, dword [eax + 0x1fc]
jne case.0x44c8ea.62
jmp 0x450a2d
mov edx, dword [esi + 0x90]
or edx, dword [esi + 0x94]
jne case.0x44c8ea.62
mov eax, dword [ebp - 0xdc]
mov ecx, dword [eax + 0x200]
or ecx, dword [eax + 0x204]
je 0x45185c
jmp case.0x44c8ea.62
mov esi, dword [esi + 0xb0]
test esi, esi
je 0x450a6e
mov ecx, esi
mov eax, dword [ecx + 4]
test eax, eax
je 0x450a60
mov ecx, eax
mov eax, dword [ecx + 4]
test eax, eax
jne 0x450a57
mov eax, dword [edi + 4]
lea edx, [eax + eax*4]
mov eax, dword [ecx + 0x10]
lea ebx, [eax + edx*8]
jmp 0x450a77
mov eax, dword [edi + 4]
lea ecx, [eax + eax*4]
lea ebx, [ebx + ecx*8]
mov esi, ebx
call fcn.004442c0
mov eax, dword [edi + 8]
lea edx, [eax + eax*4]
mov eax, dword [ebp - 0x128]
lea esi, [eax + edx*8]
call fcn.004442c0
mov eax, dword [esi]
mov esi, dword [esi + 4]
cmp dword [ebx + 4], esi
jg case.0x44c8ea.62
jl 0x450aac
mov edx, dword [ebx]
cmp edx, eax
jae case.0x44c8ea.62
mov dword [ebx], eax
mov dword [ebx + 4], esi
jmp case.0x44c8ea.62
mov eax, dword [edi + 4]
lea eax, [eax + eax*4]
cmp dword [ebx + eax*8 + 4], 0
jg 0x45185c
jl case.0x44c8ea.62
cmp dword [ebx + eax*8], 0
ja 0x45185c
jmp case.0x44c8ea.62
mov eax, dword [edi + 4]
lea eax, [eax + eax*4]
lea ebx, [ebx + eax*8]
mov eax, dword [edi + 0xc]
cdq
add dword [ebx], eax
adc dword [ebx + 4], edx
cmp dword [ebx + 4], 0
jl 0x45185c
jg case.0x44c8ea.62
cmp dword [ebx], 0
jb 0x45185c
jmp case.0x44c8ea.62
mov eax, dword [edi + 4]
lea ecx, [eax + eax*4]
mov esi, dword [ebx + ecx*8]
lea ecx, [ebx + ecx*8]
mov ebx, dword [ecx + 4]
mov edx, esi
or edx, ebx
je case.0x44c8ea.62
mov eax, dword [edi + 0xc]
cdq
add eax, esi
adc edx, ebx
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp 0x45185c
mov eax, dword [edi + 4]
lea eax, [eax + eax*4]
add dword [ebx + eax*8], 0xffffffff
mov ecx, dword [ebx + eax*8]
lea eax, [ebx + eax*8]
adc dword [eax + 4], 0xffffffff
or ecx, dword [eax + 4]
je 0x45185c
jmp case.0x44c8ea.62
mov eax, dword [edi + 4]
lea edx, [eax + eax*4]
mov ecx, dword [ebx + edx*8]
lea eax, [ebx + edx*8]
mov edx, dword [eax + 4]
mov esi, ecx
add esi, 1
mov ebx, edx
adc ebx, 0
mov dword [eax], esi
mov dword [eax + 4], ebx
mov eax, ecx
or eax, edx
je 0x45185c
jmp case.0x44c8ea.62
movzx ebx, byte [edi + 3]
mov esi, dword [ebp - 0xdc]
lea eax, [ebx*4 + 0x1c]
push 0
push eax
call fcn.00426a60
mov ecx, eax
add esp, 8
test ecx, ecx
je 0x451aca
mov esi, dword [ebp - 0xe0]
mov dword [ecx + 8], 0
mov edx, dword [esi + 0x10]
mov dword [ecx + 4], edx
mov edx, esi
sub edx, dword [ebp - 0x118]
mov eax, 0x66666667
imul edx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [ebp - 0xec]
mov byte [ecx + 0x1a], bl
mov ebx, dword [ebp - 0x128]
mov dword [ecx + 0x10], eax
mov dword [ecx + 0xc], edx
mov dword [esi + 0x10], ecx
mov word [esi], 0xec90
mov edi, esi
mov esi, edx
mov ecx, dword [edi + 0xc]
mov eax, dword [edi + 0x10]
lea ecx, [ecx + ecx*4]
lea edx, [ebx + ecx*8]
mov dword [ebp - 0x104], eax
mov dword [ebp - 0xf4], edx
cmp dword [eax + 8], edx
je 0x450c3d
movzx ecx, byte [eax + 0x1a]
dec ecx
mov dword [eax + 8], edx
js 0x450c3d
lea edx, [eax + ecx*4 + 0x1c]
mov eax, dword [edi + 8]
add eax, ecx
lea eax, [eax + eax*4]
lea eax, [ebx + eax*8]
mov dword [edx], eax
sub edx, 4
dec ecx
jns 0x450c24
mov edx, dword [ebp - 0xf4]
inc dword [edx + 0xc]
mov eax, dword [ebp - 0x104]
mov edx, dword [ebp - 0xdc]
mov ecx, 1
mov word [ebp - 0x328], cx
mov dword [ebp - 0x310], edx
mov dword [ebp - 0x318], 0
mov edx, dword [eax + 4]
lea ecx, [ebp - 0x330]
mov dword [eax], ecx
lea ecx, [eax + 0x1c]
push ecx
movzx ecx, byte [eax + 0x1a]
push ecx
mov word [eax + 0x18], 0
mov edx, dword [edx + 0x10]
push eax
call edx
mov eax, dword [ebp - 0x104]
add esp, 0xc
cmp byte [eax + 0x19], 0
je 0x450cd7
mov ecx, eax
cmp dword [ecx + 0x14], 0
je 0x450ccc
lea edx, [ebp - 0x330]
push edx
call fcn.00449ec0
add esp, 4
push eax
push 0x5013cc
push esi
call fcn.00445100
mov eax, dword [ebp - 0x104]
mov ecx, dword [eax + 0x14]
add esp, 0xc
mov dword [ebp - 0xd8], ecx
lea eax, [ebp - 0x330]
call fcn.004440e0
mov edx, dword [ebp - 0x104]
cmp byte [edx + 0x18], 0
je case.0x44c8ea.62
mov eax, dword [edi - 0x10]
test eax, eax
je case.0x44c8ea.62
lea eax, [eax + eax*4]
push 0
push 1
lea eax, [ebx + eax*8]
call fcn.00444530
add esp, 8
jmp case.0x44c8ea.62
mov eax, dword [edi + 4]
lea ecx, [eax + eax*4]
lea ebx, [ebx + ecx*8]
mov ecx, dword [edi + 0x10]
mov eax, ebx
call fcn.00443f10
mov dword [ebp - 0xd8], eax
test eax, eax
je 0x450d3e
push ebx
call fcn.00449ec0
add esp, 4
push eax
push 0x5013cc
push esi
call fcn.00445100
add esp, 0xc
movzx ecx, byte [ebp - 0x11d]
mov eax, ebx
call fcn.00443bb0
mov ecx, ebx
call fcn.00444620
test eax, eax
jne 0x451afd
jmp case.0x44c8ea.62
mov ecx, dword [edi + 8]
or eax, 0xffffffff
mov dword [ebp - 0xcc], eax
mov dword [ebp - 0xd0], eax
lea edx, [ebp - 0xcc]
push edx
mov edx, dword [edi + 4]
lea eax, [ebp - 0xd0]
push eax
mov eax, dword [ebp - 0xdc]
push ecx
push edx
xor esi, esi
push eax
mov dword [ebp - 0xd4], esi
call fcn.0049b9d0
add esp, 0x14
mov dword [ebp - 0xd8], eax
cmp eax, 5
jne 0x450db7
mov dword [ebp - 0xd8], esi
mov dword [ebp - 0xd4], 1
mov eax, dword [edi + 0xc]
lea ecx, [eax + eax*4]
lea ebx, [ebx + ecx*8]
mov eax, dword [ebp + esi*4 - 0xd4]
cdq
push edx
push eax
mov eax, ebx
call fcn.00444530
inc esi
add esp, 8
add ebx, 0x28
cmp esi, 3
jl 0x450dc0
jmp case.0x44c8ea.62
mov eax, dword [edi + 8]
lea edx, [eax + eax*4]
mov eax, dword [esi + 8]
lea eax, [eax + edx*8]
mov ecx, 0x2460
test word [eax + 8], cx
je 0x450e00
call fcn.0044c790
jmp 0x450e09
mov edx, 4
mov word [eax + 8], dx
mov ecx, dword [ebp - 0xdc]
mov edx, dword [ecx + 0x10]
mov ebx, dword [edi + 0xc]
mov dword [ebp - 0xe4], eax
mov eax, dword [edi + 4]
add eax, eax
mov eax, dword [edx + eax*8 + 4]
mov dword [ebp - 0xf4], eax
mov eax, dword [eax + 4]
mov eax, dword [eax]
movzx ecx, byte [eax + 5]
mov dword [ebp - 0x100], eax
mov dword [ebp - 0x104], ecx
cmp ebx, 0xffffffff
jne 0x450e46
mov ebx, ecx
cmp byte [eax + 0x10], 3
jae 0x450e62
mov edx, dword [eax + 0x40]
cmp dword [edx], 0
je 0x450e64
cmp dword [eax + 0x4c], 0
jl 0x450e64
jg 0x450e62
cmp dword [eax + 0x48], 0
jbe 0x450e64
mov ebx, ecx
cmp byte [eax + 0xf], 0
je 0x450e71
mov eax, 0x500f7c
jmp 0x450e77
mov eax, dword [eax + 0xa8]
cmp ebx, 5
jne 0x450e9c
call fcn.00429250
test eax, eax
je 0x450f2e
mov eax, dword [ebp - 0x100]
call fcn.00435a80
test eax, eax
je 0x450f2e
cmp ebx, dword [ebp - 0x104]
je 0x450f34
mov eax, dword [ebp - 0x104]
cmp eax, 5
je 0x450eb8
cmp ebx, 5
jne 0x450f34
mov ecx, dword [ebp - 0xdc]
cmp byte [ecx + 0x3f], 0
je 0x450f59
cmp dword [ecx + 0x98], 1
jg 0x450f59
cmp eax, 5
jne 0x450ef7
mov esi, dword [ebp - 0x100]
mov eax, esi
call fcn.00435c20
mov dword [ebp - 0xd8], eax
test eax, eax
jne 0x450f2e
mov eax, ebx
mov ecx, esi
jmp 0x450f07
cmp eax, 4
jne 0x450f0c
mov ecx, dword [ebp - 0x100]
mov eax, 2
call fcn.00435910
xor eax, eax
cmp ebx, 5
sete al
inc eax
push eax
mov eax, dword [ebp - 0xf4]
call fcn.004427f0
add esp, 4
mov dword [ebp - 0xd8], eax
test eax, eax
je 0x450f34
mov ebx, dword [ebp - 0x104]
mov ecx, dword [ebp - 0x100]
mov eax, ebx
call fcn.00435910
mov esi, dword [ebp - 0xe4]
mov ecx, 0xa02
mov word [esi + 8], cx
cmp eax, 6
jne 0x450f86
xor eax, eax
jmp 0x450f8d
mov dword [ebp - 0xd8], 1
mov eax, 0x507ea8
cmp ebx, 5
je 0x450f72
mov eax, 0x507eb0
push eax
push 0x507eb8
push esi
call fcn.00445100
add esp, 0xc
jmp case.0x44c8ea.62
mov eax, dword [eax*4 + 0x5027f4]
mov dword [esi + 0x10], eax
call fcn.00429250
movzx ecx, byte [ebp - 0x11d]
mov dword [esi + 0xc], eax
mov eax, esi
mov byte [esi + 0xa], 1
call fcn.00443bb0
jmp case.0x44c8ea.62
mov eax, dword [ebp - 0xec]
mov esi, dword [ebp - 0xdc]
add eax, 0x2c
call fcn.004895a0
mov dword [ebp - 0xd8], eax
jmp case.0x44c8ea.62
mov edx, dword [edi + 4]
mov eax, dword [ebp - 0xdc]
mov ecx, dword [eax + 0x10]
shl edx, 4
mov eax, dword [edx + ecx + 4]
push eax
call fcn.0043bbe0
add esp, 4
mov dword [ebp - 0xd8], eax
cmp eax, 0x65
jne case.0x44c8ea.62
mov dword [ebp - 0xd8], 0
jmp 0x45185c
cmp dword [edi + 4], 0
jne 0x45101e
mov eax, dword [ebp - 0xdc]
call fcn.004498d0
jmp case.0x44c8ea.62
or dword [esi + 0x58], 8
jmp case.0x44c8ea.62
mov cl, byte [edi + 0xc]
test cl, cl
jne 0x451041
mov edx, dword [ebp - 0xdc]
test dword [edx + 0x18], 0x4000
jne case.0x44c8ea.62
mov edx, dword [edi + 8]
mov eax, dword [edi + 4]
push edx
mov edx, dword [ebp - 0xdc]
mov edx, dword [edx + 0x10]
add eax, eax
mov eax, dword [edx + eax*8 + 4]
call fcn.00442710
add esp, 4
mov dword [ebp - 0xd8], eax
cmp al, 6
jne case.0x44c8ea.62
mov eax, dword [edi + 0x10]
push eax
push 0x507eec
push esi
call fcn.00445100
add esp, 0xc
jmp case.0x44c8ea.62
mov edi, dword [edi + 0x10]
mov esi, dword [ebp - 0xdc]
call fcn.0048ad60
mov dword [ebp - 0xd8], eax
test edi, edi
je 0x451872
mov ecx, dword [edi + 8]
mov edx, dword [ebp - 0xec]
push ecx
push edx
call fcn.004499a0
add esp, 8
jmp 0x451872
mov edi, dword [edi + 8]
xor eax, eax
mov dword [ebp - 0x258], eax
mov dword [ebp - 0x278], eax
mov dword [ebp - 0x274], eax
mov dword [ebp - 0x270], eax
mov dword [ebp - 0x26c], eax
mov dword [ebp - 0x268], eax
mov dword [ebp - 0x264], eax
mov dword [ebp - 0x260], eax
mov dword [ebp - 0x25c], eax
mov dword [ebp - 0x254], eax
mov eax, dword [ebp - 0xdc]
lea ecx, [edi + edi*4]
mov dword [ebp - 0x258], eax
lea edi, [ebx + ecx*8]
lea eax, [ebp - 0x278]
call fcn.004446f0
lea edx, [ebp - 0x278]
push edx
mov dword [ebp - 0xd8], eax
call fcn.00449ec0
add esp, 4
test eax, eax
je 0x451157
mov ecx, dword [ebp - 0xec]
mov edx, dword [ebp - 0xe0]
add ecx, 0x2c
push ecx
mov ecx, dword [ebp - 0xdc]
push eax
mov eax, dword [edx + 4]
call fcn.0048a830
add esp, 8
mov dword [ebp - 0xd8], eax
lea eax, [ebp - 0x278]
call fcn.004440e0
jmp 0x451872
mov esi, dword [ebp - 0xdc]
inc dword [esi + 0xa4]
mov eax, dword [edi + 0x10]
push eax
mov eax, dword [edi + 4]
mov ecx, esi
call fcn.0048ab30
add esp, 4
dec dword [esi + 0xa4]
mov dword [ebp - 0xd8], eax
jmp case.0x44c8ea.62
mov ecx, dword [edi + 0x10]
mov dword [ebp - 0x10c], 0
mov ebx, dword [ecx + 8]
test ebx, ebx
je 0x451218
mov eax, dword [ebx]
mov dword [ebp - 0xf4], eax
test eax, eax
je 0x451218
mov ecx, dword [eax + 0x18]
lea edx, [ebp - 0x10c]
push edx
push ebx
call ecx
push ebx
push esi
mov dword [ebp - 0xd8], eax
call fcn.004499a0
add esp, 0x10
cmp dword [ebp - 0xd8], 0
jne case.0x44c8ea.62
mov edx, dword [ebp - 0x10c]
mov esi, dword [ebp - 0xec]
push 0
push 0xffffffffffffffff
mov dword [edx], ebx
mov eax, dword [edi + 4]
push 0
push eax
call fcn.0044c4a0
add esp, 0x10
test eax, eax
je 0x451ab5
mov ecx, dword [ebp - 0x10c]
mov dword [eax + 0x24], ecx
inc dword [ebx + 4]
jmp case.0x44c8ea.62
mov dword [ebp - 0xd8], 6
jmp case.0x44c8ea.62
mov eax, dword [edi + 0xc]
mov ecx, dword [esi + 0x38]
lea edx, [eax + eax*4]
mov eax, dword [edi + 4]
mov eax, dword [ecx + eax*4]
mov ecx, dword [ebx + edx*8]
lea edx, [ebx + edx*8]
mov ebx, dword [eax + 0x24]
mov dword [ebp - 0x104], eax
mov eax, dword [ebx]
mov dword [ebp - 0x114], eax
mov eax, dword [eax]
mov dword [ebp - 0xe8], ecx
mov ecx, dword [esi + 0xc]
mov dword [ebp - 0x124], eax
mov eax, dword [edx + 0x28]
mov dword [ebp - 0xf4], ecx
xor ecx, ecx
mov dword [ebp - 0x108], ebx
mov dword [ebp - 0x100], 0
test eax, eax
jle 0x451297
mov ebx, dword [ebp - 0xf4]
add edx, 0x50
mov dword [ebx + ecx*4], edx
inc ecx
add edx, 0x28
cmp ecx, eax
jl 0x451286
mov ebx, dword [ebp - 0x108]
mov edx, dword [ebp - 0xf4]
mov ecx, dword [ebp - 0xe8]
push edx
mov edx, dword [ebp - 0x124]
push eax
mov eax, dword [edi + 0x10]
push eax
mov eax, dword [edx + 0x20]
push ecx
push ebx
call eax
mov ecx, dword [ebp - 0x114]
add esp, 0x14
push ecx
push esi
mov dword [ebp - 0xd8], eax
call fcn.004499a0
add esp, 8
cmp dword [ebp - 0xd8], 0
jne 0x4512e9
mov edx, dword [ebp - 0x124]
mov eax, dword [edx + 0x28]
push ebx
call eax
add esp, 4
jmp 0x4512ef
mov eax, dword [ebp - 0x100]
mov ecx, dword [ebp - 0x104]
mov byte [ecx + 0x19], 0
test eax, eax
jne 0x45185c
jmp case.0x44c8ea.62
mov edx, dword [edi + 4]
mov eax, dword [esi + 0x38]
mov ecx, dword [eax + edx*4]
cmp byte [ecx + 0x19], 0
mov eax, dword [edi + 0xc]
lea edx, [eax + eax*4]
lea ebx, [ebx + edx*8]
je 0x45132a
mov eax, ebx
call fcn.004444d0
jmp case.0x44c8ea.62
mov eax, dword [ecx + 0x24]
mov eax, dword [eax]
mov edx, dword [eax]
mov dword [ebp - 0x124], eax
xor eax, eax
mov dword [ebp - 0x298], eax
mov dword [ebp - 0x294], eax
mov dword [ebp - 0x290], eax
mov dword [ebp - 0x28c], eax
mov dword [ebp - 0x288], eax
mov dword [ebp - 0x284], eax
mov dword [ebp - 0x280], eax
mov dword [ebp - 0x27c], eax
mov dword [ebp - 0xf4], edx
mov dword [ebp - 0x298], ebx
mov ax, word [ebx + 8]
mov edx, 0xbe01
and ax, dx
or ax, 1
mov word [ebx + 8], ax
mov eax, dword [edi + 8]
push eax
mov eax, dword [ecx + 0x24]
mov ecx, dword [ebp - 0xf4]
lea edx, [ebp - 0x298]
push edx
mov edx, dword [ecx + 0x2c]
push eax
call edx
mov dword [ebp - 0xd8], eax
mov eax, dword [ebp - 0x124]
add esp, 0xc
push eax
push esi
call fcn.004499a0
mov eax, dword [ebp - 0x284]
add esp, 8
test eax, eax
je 0x4513cc
mov dword [ebp - 0xd8], eax
movzx ecx, byte [ebp - 0x11d]
mov eax, ebx
call fcn.00443bb0
mov ecx, ebx
call fcn.00444620
test eax, eax
jne 0x451afd
jmp case.0x44c8ea.62
mov ecx, dword [edi + 4]
mov edx, dword [esi + 0x38]
mov eax, dword [edx + ecx*4]
cmp byte [eax + 0x19], 0
mov dword [ebp - 0xf4], eax
jne case.0x44c8ea.62
mov eax, dword [eax + 0x24]
mov ebx, dword [eax]
mov ecx, dword [ebx]
mov dword [ebp - 0x124], ecx
mov ecx, dword [ecx + 0x24]
push eax
call ecx
add esp, 4
push ebx
push esi
mov dword [ebp - 0xd8], eax
call fcn.004499a0
add esp, 8
cmp dword [ebp - 0xd8], 0
jne case.0x44c8ea.14
mov edx, dword [ebp - 0xf4]
mov eax, dword [edx + 0x24]
mov ecx, dword [ebp - 0x124]
mov edx, dword [ecx + 0x28]
push eax
call edx
add esp, 4
test eax, eax
jne 0x451468
mov edi, dword [edi + 8]
mov ecx, dword [ebp - 0x118]
lea eax, [edi + edi*4]
lea edx, [ecx + eax*4 - 0x14]
mov dword [ebp - 0xe0], edx
mov edi, dword [ebp - 0xdc]
mov eax, dword [edi + 0xf0]
test eax, eax
jne 0x451b1a
mov esi, dword [edi + 0x124]
test esi, esi
je 0x451872
mov ebx, dword [ebp - 0x158]
cmp ebx, dword [ebp - 0x18c]
jb 0x451872
mov ecx, dword [edi + 0x12c]
xor edx, edx
mov eax, ebx
div ecx
sub ecx, edx
add ecx, ebx
mov dword [ebp - 0x18c], ecx
mov ecx, dword [edi + 0x128]
push ecx
call esi
add esp, 4
test eax, eax
je 0x451872
mov dword [ebp - 0xd8], 9
mov esi, dword [ebp - 0xec]
mov edx, dword [esi + 0x2c]
mov eax, dword [esi + 0xa8]
mov ecx, dword [ebp - 0xe0]
sub ecx, dword [ebp - 0x118]
mov edi, dword [ebp - 0xd8]
push edx
push eax
mov eax, 0x66666667
imul ecx
sar edx, 3
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
push ecx
push 0x507f0c
push edi
mov dword [esi + 0x50], edi
call fcn.00428770
add esp, 0x14
mov eax, esi
call fcn.00447910
cmp edi, 0xc0a
jne 0x45152f
mov edx, dword [ebp - 0xdc]
mov byte [edx + 0x41], 1
mov al, byte [ebp - 0x129]
mov ebx, 1
test al, al
je 0x451575
mov ecx, dword [ebp - 0xdc]
mov edx, dword [ecx + 0x10]
movzx esi, al
dec esi
mov eax, esi
add eax, eax
mov eax, dword [edx + eax*8 + 0xc]
push eax
call fcn.00468eb0
add esp, 4
cmp esi, ebx
je 0x451575
mov ecx, dword [ebp - 0xdc]
mov edx, dword [ecx + 0x10]
mov eax, dword [edx + 0x1c]
push eax
call fcn.00468eb0
add esp, 4
mov eax, dword [ebp - 0xdc]
mov ecx, dword [ebp - 0x150]
mov edx, dword [ebp - 0x14c]
mov dword [eax + 0x20], ecx
mov ecx, dword [ebp - 0x158]
mov dword [eax + 0x24], edx
mov eax, dword [ebp - 0xec]
add dword [eax + 0x7c], ecx
cmp dword [eax + 0x64], 0
je 0x4515ab
push eax
call fcn.00446120
add esp, 4
mov ecx, dword [ebp - 4]
pop edi
pop esi
mov eax, ebx
xor ecx, ebp
pop ebx
call fcn.004d6168
mov esp, ebp
pop ebp
ret
mov edx, dword [edi + 0x10]
mov eax, dword [edx + 8]
mov dword [ebp - 0xf4], eax
mov eax, dword [edi + 4]
lea ecx, [eax + eax*4]
lea ebx, [ebx + ecx*8]
mov ecx, 1
mov eax, ebx
call fcn.00443bb0
mov dword [ebp - 0xd8], eax
test eax, eax
jne case.0x44c8ea.62
mov eax, dword [ebp - 0xf4]
mov ecx, dword [ebx + 0x10]
mov edx, dword [eax]
mov edx, dword [edx + 0x4c]
push ecx
push eax
call edx
mov dword [ebp - 0xd8], eax
mov eax, dword [ebp - 0xf4]
push eax
push esi
call fcn.004499a0
add esp, 0x10
and dword [esi + 0x58], 0xfffffff7
jmp case.0x44c8ea.62
mov ecx, dword [edi + 0x10]
mov eax, dword [ecx + 8]
mov dword [ebp - 0xf4], eax
test eax, eax
je 0x451218
mov eax, dword [eax]
mov dword [ebp - 0x124], eax
test eax, eax
je 0x451218
cmp dword [eax + 0x34], 0
mov ecx, dword [edi + 8]
je case.0x44c8ea.62
mov eax, dword [ebp - 0xec]
mov ebx, dword [ebp - 0xdc]
mov esi, dword [eax + 0xc]
mov dl, byte [ebx + 0x45]
mov eax, dword [edi + 0xc]
mov byte [ebp - 0x119], dl
lea edx, [eax + eax*4]
mov eax, dword [ebp - 0x128]
lea edx, [eax + edx*8]
xor eax, eax
test ecx, ecx
jle 0x45168b
lea esp, [esp]
mov dword [esi + eax*4], edx
inc eax
add edx, 0x28
cmp eax, ecx
jl 0x451680
mov dl, byte [edi + 3]
lea eax, [ebp - 0x218]
push eax
push esi
mov byte [ebx + 0x45], dl
mov edx, dword [ebp - 0x124]
mov eax, dword [edx + 0x34]
push ecx
mov ecx, dword [ebp - 0xf4]
push ecx
call eax
mov edx, dword [ebp - 0xf4]
mov cl, byte [ebp - 0x119]
mov dword [ebp - 0xd8], eax
mov eax, dword [ebp - 0xec]
push edx
push eax
mov byte [ebx + 0x45], cl
call fcn.004499a0
mov edx, dword [ebp - 0xd8]
add esp, 0x18
test edx, edx
jne 0x4516fe
cmp dword [edi + 4], edx
je 0x4516fe
mov eax, dword [ebp - 0x218]
mov ecx, dword [ebp - 0x214]
mov dword [ebp - 0x150], eax
mov dword [ebp - 0x14c], ecx
mov dword [ebx + 0x20], eax
mov dword [ebx + 0x24], ecx
cmp dl, 0x13
jne 0x45174a
mov ecx, dword [edi + 0x10]
cmp byte [ecx + 0x10], 0
je 0x45174a
mov al, byte [edi + 3]
cmp al, 4
jne 0x451722
mov dword [ebp - 0xd8], 0
jmp case.0x44c8ea.62
cmp al, 5
jne 0x451739
mov edx, dword [ebp - 0xec]
mov eax, 2
mov byte [edx + 0x56], al
jmp case.0x44c8ea.62
mov edx, dword [ebp - 0xec]
movzx eax, al
mov byte [edx + 0x56], al
jmp case.0x44c8ea.62
mov eax, dword [ebp - 0xec]
inc dword [eax + 0x5c]
jmp case.0x44c8ea.62
mov eax, dword [edi + 8]
mov ecx, dword [esi + 8]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov edx, 0x2460
test word [eax + 8], dx
je 0x451776
call fcn.0044c790
jmp 0x45177f
mov ecx, 4
mov word [eax + 8], cx
mov edx, dword [edi + 4]
mov ecx, dword [ebp - 0xdc]
mov ecx, dword [ecx + 0x10]
add edx, edx
mov edx, dword [ecx + edx*8 + 4]
mov ecx, dword [edx + 4]
mov edx, dword [ecx + 0x2c]
mov dword [eax], edx
mov dword [eax + 4], 0
jmp case.0x44c8ea.62
mov eax, dword [edi + 8]
mov ecx, dword [esi + 8]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov edx, 0x2460
test word [eax + 8], dx
je 0x4517c3
call fcn.0044c790
jmp 0x4517cc
mov ecx, 4
mov word [eax + 8], cx
mov edx, dword [edi + 4]
mov esi, eax
mov eax, dword [ebp - 0xdc]
mov ecx, dword [eax + 0x10]
add edx, edx
mov eax, dword [ecx + edx*8 + 4]
mov ecx, dword [edi + 0xc]
xor ebx, ebx
test ecx, ecx
je 0x4517f5
mov edx, dword [eax + 4]
mov ebx, dword [edx + 0x2c]
cmp ebx, ecx
jae 0x4517f5
mov ebx, ecx
call fcn.0043ae10
cdq
mov dword [esi], eax
mov dword [esi + 4], edx
jmp case.0x44c8ea.62
mov eax, dword [ebp - 0xdc]
cmp dword [eax + 0xb0], 0
je 0x451856
test dword [esi + 0x58], 0x200
jne 0x451856
mov edx, dword [edi + 0x10]
test edx, edx
jne 0x45182b
mov edx, dword [esi + 0xa8]
test edx, edx
je 0x451856
mov ecx, esi
call fcn.0044c020
mov esi, dword [ebp - 0xdc]
mov ecx, dword [esi + 0xb4]
mov edx, dword [esi + 0xb0]
mov ebx, eax
push ebx
push ecx
call edx
add esp, 8
mov eax, ebx
mov ecx, esi
call fcn.004267e0
cmp dword [edi + 8], 0
je case.0x44c8ea.62
mov edi, dword [edi + 8]
mov ecx, dword [ebp - 0x118]
lea eax, [edi + edi*4]
lea edx, [ecx + eax*4 - 0x14]
mov dword [ebp - 0xe0], edx
mov edi, dword [ebp - 0xe0]
add edi, 0x14
cmp dword [ebp - 0xd8], 0
mov dword [ebp - 0xe0], edi
jne 0x4514d0
mov ebx, dword [ebp - 0x128]
mov esi, dword [ebp - 0xec]
mov edi, dword [ebp - 0xdc]
jmp 0x44c8c0
mov eax, dword [edi + 4]
mov dword [esi + 0x50], eax
mov cl, byte [edi + 8]
mov byte [esi + 0x56], cl
mov dword [esi + 0x4c], ebx
test eax, eax
je 0x451923
mov al, byte [edi + 3]
test al, al
je 0x4518e6
movzx edx, al
mov ecx, dword [edx*4 + 0x502004]
test ecx, ecx
je 0x4518e8
mov eax, dword [edi + 0x10]
test eax, eax
je 0x4518e8
push eax
push ecx
push 0x507c84
push esi
call fcn.00445100
add esp, 0x10
jmp 0x451906
xor ecx, ecx
mov eax, dword [edi + 0x10]
test eax, eax
je 0x4518f7
push eax
push 0x5013cc
jmp 0x4518fd
push ecx
push 0x507ca0
push esi
call fcn.00445100
add esp, 0xc
mov eax, dword [esi + 0x2c]
mov ecx, dword [esi + 0xa8]
mov edx, dword [edi + 4]
push eax
push ecx
push ebx
push 0x507c6c
push edx
call fcn.00428770
add esp, 0x14
mov eax, esi
call fcn.00447910
mov ebx, 5
cmp eax, ebx
jne 0x45193b
mov dword [esi + 0x50], ebx
jmp 0x451575
mov ebx, dword [esi + 0x50]
neg ebx
sbb ebx, ebx
and ebx, 0xffffff9c
add ebx, 0x65
jmp 0x451575
sub edi, dword [ebp - 0x118]
mov eax, 0x66666667
imul edi
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esi + 0x4c], eax
mov byte [ebx + 0x3f], 0
mov ebx, 5
mov dword [esi + 0x50], ebx
jmp 0x451575
test ecx, ecx
je 0x4519b6
mov esi, dword [ebp - 0xdc]
push 0x204
mov eax, esi
call fcn.0049add0
add esp, 4
mov byte [esi + 0x3f], 1
mov ebx, esi
mov edi, ebx
call fcn.0049a420
mov edx, dword [ebp - 0xec]
mov ebx, dword [edx + 0x50]
neg ebx
sbb ebx, ebx
and ebx, 0xffffff9c
add ebx, 0x65
jmp 0x451575
mov esi, dword [ebp - 0xec]
push 1
call fcn.004478a0
mov ebx, eax
add esp, 4
test ebx, ebx
jne 0x451575
mov cl, byte [ebp - 0xf4]
mov ebx, dword [ebp - 0xdc]
mov eax, esi
mov byte [ebx + 0x3f], cl
call fcn.00447910
cmp eax, 5
jne 0x451997
sub edi, dword [ebp - 0x118]
mov eax, 0x66666667
imul edi
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov cl, 1
sub cl, byte [ebp - 0xf4]
mov dword [esi + 0x4c], eax
mov byte [ebx + 0x3f], cl
mov ebx, 5
mov dword [esi + 0x50], ebx
jmp 0x451575
mov dword [ebp - 0xd8], 8
jmp 0x44f87a
sub edi, dword [ebp - 0x118]
mov eax, 0x66666667
imul edi
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov ebx, 5
mov dword [esi + 0x4c], eax
mov dword [esi + 0x50], ebx
jmp 0x451575
mov eax, 0x126b5
call fcn.0049cf30
mov dword [ebp - 0xd8], eax
jmp 0x44f87a
cmp dword [ebp - 0xd8], 0xc0a
je 0x4514d0
cmp dword [ebp - 0xd8], 0x204
je 0x451a96
mov ecx, dword [ebp - 0xd8]
mov eax, 0x50ac04
call fcn.0049af20
jmp 0x451a9b
mov eax, 0x50ac14
mov edx, dword [ebp - 0xec]
push eax
push 0x5013cc
push edx
call fcn.00445100
add esp, 0xc
jmp 0x4514d0
mov eax, dword [ebp - 0x10c]
mov ecx, dword [ebp - 0xf4]
mov edx, dword [ecx + 0x1c]
push eax
call edx
add esp, 4
mov ecx, dword [ebp - 0xec]
mov eax, dword [ebp - 0xdc]
push 0x505cd0
push ecx
mov byte [eax + 0x41], 1
call fcn.00445100
add esp, 8
mov dword [ebp - 0xd8], 7
jmp 0x4514d0
mov esi, dword [ebp - 0xec]
push 0x507bd0
push esi
call fcn.00445100
add esp, 8
mov dword [ebp - 0xd8], 0x12
jmp 0x4514d0
mov eax, 9
mov dword [esi + 0x50], eax
mov ecx, dword [0x504f6c]
mov dword [ebp - 0xd8], eax
mov eax, 0x50ac04
test ecx, ecx
je 0x451b39
mov eax, ecx
push eax
push 0x5013cc
push esi
call fcn.00445100
add esp, 0xc
jmp 0x4514d0