Function at 0x4456e0
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4b6918
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x260
mov eax, dword [0x4e9fd8]
mov dword [ebp - 0x10], ecx
push ebx
push esi
push edi
test al, 1
jne 0x44577d
or eax, 1
mov dword [0x4e9fd8], eax
mov ecx, 0x30
mov dword [ebp - 4], 0
call fcn.0047e400
mov esi, eax
test esi, esi
je 0x447e86
mov dword [ebp - 0x3c], esi
push 0x4d6f40
mov ecx, esi
mov byte [ebp - 4], 1
call fcn.004051d0
mov dword [esi + 0x24], 0
mov dword [esi], vtable.BuiltInFunc.0
mov dword [esi + 0x28], 0x4517d0
mov dword [esi + 0x1c], 1
mov dword [esi + 0x18], 1
mov byte [esi + 0x20], 0
mov dword [esi + 0x2c], 0
mov dword [0x4e9fdc], esi
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp + 8]
xor ecx, ecx
xor ebx, ebx
mov dword [ebp - 0x2c], ecx
mov dword [ebp - 0x1c], ebx
xor edx, edx
mov dword [ebp - 0x20], ecx
mov esi, dword [eax + 8]
mov edi, dword [eax + 0xc]
mov dword [ebp - 0x3c], 0xb
mov dword [ebp - 0x24], edi
mov dword [ebp - 0x14], edx
test edi, edi
je 0x4457b8
mov eax, dword [edi]
test eax, eax
je 0x4457b8
mov dword [ebp - 0x18], edi
cmp esi, eax
jb 0x4457c6
jmp 0x4462c1
xor edi, edi
mov dword [ebp - 0x18], edi
cmp word [esi], di
je 0x446c2f
mov dword [ebp - 0x48], edi
nop dword [eax]
lea eax, [edx + 5]
cmp eax, ecx
jle 0x445804
sub ecx, 0xffffff80
mov eax, ecx
mov dword [ebp - 0x2c], ecx
shl eax, 4
push eax
push ebx
call fcn.0049ee28
mov ebx, eax
add esp, 8
mov dword [ebp - 0x1c], ebx
test ebx, ebx
je 0x446792
mov eax, dword [ebp + 0xc]
mov edx, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x2c]
mov dword [eax], ebx
movzx eax, word [esi]
cmp eax, 0x20
je 0x445811
cmp eax, 9
jne 0x445816
add esi, 2
jmp 0x445804
test ax, ax
je 0x4462a2
test edi, edi
je 0x44582b
cmp esi, dword [edi]
jae 0x4462c1
mov eax, edx
lea ecx, [esi + 2]
shl eax, 4
lea edi, [eax + ebx]
mov dword [ebp - 0x28], eax
mov dword [edi], 0
mov dword [edi + 4], esi
movzx ebx, word [esi]
movzx eax, word [ecx]
mov edx, eax
mov dword [ebp - 0x30], edx
lea eax, [ebx - 0x21]
cmp eax, 0x5d
ja case.0x445860.35
movzx eax, byte [eax + 0x447eec]
jmp dword [eax*4 + 0x447e8c]
cmp edx, 0x3d
jne 0x445882
mov esi, ecx
mov edx, 8
mov ecx, edi
mov eax, 0x14
mov dword [ecx + edx], eax
jmp 0x445a94
cmp dword [ebp - 0x14], 0
je 0x4458b0
cmp dword [edi - 8], 0xf
jge 0x4458b0
cmp edx, 0x2b
mov eax, 9
mov edx, 8
cmove esi, ecx
mov ecx, 0x38
cmovne eax, ecx
mov ecx, edi
mov dword [ecx + edx], eax
jmp 0x445a94
cmp edx, 0x2b
jne 0x4458cb
mov esi, ecx
mov edx, 8
mov ecx, edi
mov eax, 0x44
mov dword [ecx + edx], eax
jmp 0x445a94
mov edx, 8
mov ecx, edi
mov eax, 0x3f
mov dword [ecx + edx], eax
jmp 0x445a94
cmp edx, 0x3d
jne 0x4458f2
mov esi, ecx
mov dword [edi + 8], 0x15
jmp 0x445a94
cmp dword [ebp - 0x14], 0
je 0x445919
cmp dword [edi - 8], 0xf
jge 0x445919
cmp edx, 0x2d
mov eax, 0xa
cmove esi, ecx
mov ecx, 0x39
cmovne eax, ecx
mov dword [edi + 8], eax
jmp 0x445a94
cmp edx, 0x2d
jne 0x44592c
mov esi, ecx
mov dword [edi + 8], 0x45
jmp 0x445a94
mov eax, dword [ebp - 0x30]
mov dword [edi + 8], 0x3e
cmp ax, 0x30
jb 0x445942
cmp ax, 0x39
jbe 0x44594c
cmp ax, 0x2e
jne 0x445a94
lea eax, [ebp - 0x38]
push eax
push esi
call fcn.004a8db3
mov ecx, dword [ebp - 0x18]
add esp, 8
mov eax, dword [ebp - 0x38]
fstp st(0)
test ecx, ecx
je 0x445970
cmp eax, dword [ecx]
jae 0x445a94
nop dword [eax]
movzx ecx, word [eax]
cmp ecx, 0x20
je 0x44597d
cmp ecx, 9
jne 0x445982
add eax, 2
jmp 0x445970
cmp ecx, 0x2a
jne 0x445991
cmp word [eax + 2], cx
je 0x445a94
mov edx, dword [ebp - 0x14]
test edx, edx
je 0x4459c8
mov ebx, dword [ebp - 0x1c]
mov eax, edx
add eax, eax
cmp dword [ebx + eax*8 - 8], 0xf
jge 0x4459c8
movzx eax, word [esi - 2]
cmp eax, 0x20
je 0x4459b8
cmp eax, 9
jne 0x446982
mov eax, edx
add eax, eax
inc edx
mov dword [ebp - 0x14], edx
mov dword [ebx + eax*8 + 8], 0x2f
movzx eax, word [esi]
mov ebx, edx
shl ebx, 4
add ebx, dword [ebp - 0x1c]
mov dword [ebp - 0x40], ebx
cmp eax, 0x39
ja 0x4461f0
cmp eax, 0x30
jae 0x4459f7
cmp eax, 0x2b
je 0x4459f7
cmp eax, 0x2d
je 0x4459f7
cmp eax, 0x2e
jne 0x4461f0
lea edx, [ebp - 0x4c]
mov ecx, esi
call fcn.00481d80
mov ecx, esi
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x28], edx
call fcn.00423af0
mov edi, dword [ebp - 0x4c]
test al, al
jne 0x446176
lea eax, [ebp - 0x50]
push eax
push esi
call fcn.004a8db3
mov eax, dword [ebp - 0x50]
add esp, 8
fstp qword [ebp - 0x58]
cmp eax, edi
jbe 0x446176
movzx eax, word [eax]
push eax
push 0x4d6b10
call fcn.0049c891
add esp, 8
test eax, eax
je 0x446176
mov edx, dword [ebp - 0x14]
movsd xmm0, qword [ebp - 0x58]
inc edx
mov esi, dword [ebp - 0x50]
mov edi, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x2c]
mov dword [ebx + 8], 2
movsd qword [ebx], xmm0
mov ebx, dword [ebp - 0x1c]
mov dword [ebp - 0x14], edx
jmp 0x4457d0
mov dword [edi + 8], 0x12
jmp 0x445a94
cmp edx, 0x3d
jne 0x445abe
mov esi, ecx
mov eax, 0x17
mov ecx, edi
mov edx, 8
mov dword [edx + ecx], eax
mov edx, dword [ebp - 0x14]
mov ecx, dword [edi + 8]
lea eax, [ecx - 0x13]
cmp eax, 0xc
ja 0x446130
inc dword [ebp - 0x20]
add esi, 2
mov ebx, dword [ebp - 0x1c]
inc edx
mov edi, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x2c]
mov dword [ebp - 0x14], edx
jmp 0x4457d0
cmp edx, 0x2f
jne 0x445ae6
lea eax, [esi + 4]
mov esi, eax
movzx eax, word [eax]
mov edx, eax
cmp eax, 0x3d
je 0x445ad4
mov esi, ecx
cmp edx, 0x3d
mov eax, 0x18
mov edx, 0x37
cmovne eax, edx
jmp 0x445a8a
mov eax, 0x3b
jmp 0x445a8a
cmp edx, 0x3d
jne 0x445afd
mov esi, ecx
mov dword [edi + 8], 0x16
jmp 0x445a94
cmp edx, 0x2a
mov edx, dword [ebp - 0x14]
jne 0x445b10
mov esi, ecx
mov dword [edi + 8], 0x3c
jmp 0x445a97
mov dword [edi + 8], 0x3a
jmp 0x445a97
cmp edx, 0x3d
jne 0x445b47
mov esi, ecx
movzx eax, word [esi + 2]
lea ecx, [esi + 2]
cmp eax, 0x3d
mov edx, eax
cmove esi, ecx
xor eax, eax
cmp edx, 0x3d
mov ecx, edi
sete al
add eax, 0x28
mov dword [ecx + 8], eax
jmp 0x445a94
mov ecx, edi
mov eax, 0x41
mov dword [ecx + 8], eax
jmp 0x445a94
mov edx, dword [ebp - 0x14]
test edx, edx
je 0x445b79
cmp dword [edi - 8], 0xf
jge 0x445b79
movzx eax, word [esi - 2]
cmp eax, 0x20
je 0x445b71
cmp eax, 9
jne 0x445b79
mov dword [edi + 8], 0x2f
inc edx
mov ecx, dword [ebp - 0x1c]
mov eax, edx
add eax, eax
mov dword [ecx + eax*8 + 8], 0xf
mov dword [ecx + eax*8], esi
jmp 0x445a97
mov dword [edi + 8], 0xc
jmp 0x445a94
mov edx, dword [ebp - 0x14]
test edx, edx
je 0x445bd8
cmp dword [edi - 8], 0xb
jne 0x445bd8
movzx eax, word [ecx]
cmp ax, 0x20
je 0x445bb8
cmp ax, 9
jne 0x445bbd
add ecx, 2
jmp 0x445ba9
cmp ax, 0x5d
je 0x445bd8
mov ecx, dword [ebp - 0x1c]
dec edx
mov eax, edx
add eax, eax
mov dword [ecx + eax*8 + 8], 0x10
jmp 0x445a97
mov ecx, 0x10
call fcn.0047e400
mov ecx, eax
test ecx, ecx
je 0x447e86
mov edx, dword [ebp - 0x14]
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 2
mov dword [ecx + 0xc], 0
test edx, edx
je 0x445c25
mov ebx, dword [ebp - 0x1c]
mov eax, edx
add eax, eax
cmp dword [ebx + eax*8 - 8], 0xf
jge 0x445c25
mov dword [ecx + 8], 0
jmp 0x445c2b
mov dword [ecx], vtable.Object.0
mov dword [edi], ecx
mov eax, edx
mov ecx, dword [ebp - 0x1c]
add eax, eax
mov dword [ecx + eax*8 + 8], 0x10
jmp 0x445a97
mov dword [edi + 8], 0xd
jmp 0x445a94
cmp dword [ebp - 0x14], 0
je 0x445c5d
cmp dword [edi - 8], 0xf
jl 0x4467fd
mov ecx, 0x10
call fcn.0047e400
test eax, eax
je 0x447e86
mov dword [eax + 4], 0
mov dword [eax + 8], 2
mov dword [eax + 0xc], 0
mov dword [edi], eax
mov dword [eax], vtable.Object.0
mov dword [edi + 8], 0x11
jmp 0x445a94
mov dword [edi + 8], 0xe
jmp 0x445a94
cmp edx, 0x3d
jne 0x445cab
mov esi, ecx
xor eax, eax
mov ecx, edi
cmp edx, 0x3d
sete al
add eax, 0x26
mov dword [ecx + 8], eax
jmp 0x445a94
sub edx, 0x3d
je 0x445d24
sub edx, 1
je 0x445cd4
mov eax, 0x2a
jmp 0x445a8a
cmp word [esi + 4], 0x3d
lea eax, [esi + 4]
mov esi, eax
jne 0x445cea
mov eax, 0x1d
jmp 0x445a8a
mov esi, ecx
cmp word [esi + 2], 0x3e
jne 0x445d1a
add esi, 2
movzx eax, word [esi + 2]
lea ecx, [esi + 2]
cmp eax, 0x3d
mov edx, eax
mov eax, 0x1e
cmove esi, ecx
cmp edx, 0x3d
mov ecx, 0x36
cmovne eax, ecx
jmp 0x445a8a
mov eax, 0x35
jmp 0x445a8a
mov esi, ecx
mov eax, 0x2c
jmp 0x445a8a
sub edx, 0x3c
je 0x445d57
sub edx, 1
mov edx, dword [ebp - 0x14]
je 0x445d49
mov dword [edi + 8], 0x2b
jmp 0x445a97
mov esi, ecx
mov dword [edi + 8], 0x2d
jmp 0x445a97
cmp word [esi + 4], 0x3d
lea eax, [esi + 4]
mov edx, dword [ebp - 0x14]
mov esi, eax
jne 0x445d72
mov dword [edi + 8], 0x1c
jmp 0x445a97
mov esi, ecx
mov dword [edi + 8], 0x34
jmp 0x445a97
cmp edx, 0x26
jne 0x445d93
mov esi, ecx
mov dword [edi + 8], 0x24
jmp 0x445a94
cmp edx, 0x3d
mov edx, dword [ebp - 0x14]
jne 0x445da9
mov esi, ecx
mov dword [edi + 8], 0x1b
jmp 0x445a97
test edx, edx
je 0x445dbf
cmp dword [edi - 8], 0xf
jge 0x445dbf
mov dword [edi + 8], 0x33
jmp 0x445a97
mov dword [edi + 8], 0x40
mov dword [edi + 4], 0
jmp 0x445a97
cmp edx, 0x7c
jne 0x445de5
mov esi, ecx
mov dword [edi + 8], 0x23
jmp 0x445a94
cmp edx, 0x3d
mov edx, dword [ebp - 0x14]
jne 0x445dfb
mov esi, ecx
mov dword [edi + 8], 0x19
jmp 0x445a97
mov dword [edi + 8], 0x31
jmp 0x445a97
cmp edx, 0x3d
jne 0x445e0e
mov esi, ecx
mov ecx, edi
mov eax, 0x1a
mov edx, 0x32
cmovne eax, edx
mov dword [ecx + 8], eax
jmp 0x445a94
cmp edx, 0x3d
jne 0x445e71
mov esi, ecx
lea ecx, [edx - 0x2d]
call fcn.0047e400
test eax, eax
je 0x447e86
mov dword [eax + 4], 0
mov ecx, edi
mov dword [eax + 8], 2
mov dword [eax + 0xc], 0
mov dword [edi], eax
mov dword [eax], vtable.Object.0
mov eax, dword [edi]
mov dword [eax + 0xc], 2
mov eax, 0x2e
mov dword [ecx + 8], eax
jmp 0x445a94
mov ecx, edi
mov eax, 0x42
mov dword [ecx + 8], eax
jmp 0x445a94
cmp edx, 0x3f
jne 0x445eb6
mov edx, dword [ebp - 0x14]
test edx, edx
je 0x446862
mov eax, dword [edi - 8]
cmp eax, 4
je 0x445ea1
cmp eax, 6
jne 0x446862
mov dword [edi - 0xc], 2
mov esi, ecx
mov dword [edi + 8], 0x22
jmp 0x445a97
cmp edx, 0x20
je 0x445ec0
cmp edx, 9
jne 0x445ed7
movzx eax, word [ecx]
cmp ax, 0x20
je 0x445ecf
cmp ax, 9
jne 0x445ed4
add ecx, 2
jmp 0x445ec0
movzx edx, ax
cmp edx, 0x29
je 0x445efe
cmp edx, 0x2c
je 0x445efe
cmp edx, 0x5d
je 0x445efe
cmp edx, 0x7d
je 0x445efe
cmp edx, 0x3a
je 0x445efe
mov dword [edi + 8], 0x21
mov dword [edi], esi
jmp 0x445a94
mov edx, dword [ebp - 0x14]
test edx, edx
je 0x446862
mov ebx, dword [ebp - 0x1c]
mov eax, edx
add eax, eax
mov eax, dword [ebx + eax*8 - 8]
cmp eax, 4
je 0x445f22
cmp eax, 6
jne 0x446862
mov edi, dword [ebp - 0x18]
mov eax, edx
mov ecx, dword [ebp - 0x2c]
add eax, eax
dec edx
add esi, 2
inc edx
mov dword [ebp - 0x14], edx
mov dword [ebx + eax*8 - 0xc], 2
jmp 0x4457d0
cmp edx, 0x3d
jne 0x445f57
mov esi, ecx
mov eax, 0x13
mov ecx, edi
mov dword [ecx + 8], eax
jmp 0x445a94
mov ecx, edi
mov dword [edi], esi
mov eax, 0x20
mov dword [ecx + 8], eax
jmp 0x445a94
mov edx, dword [ebp - 0x14]
dec edx
jmp 0x445a97
mov dword [edi + 8], 0x30
jmp 0x445a94
cmp ebx, 0x2e
jne 0x445991
cmp edx, 0x3d
jne 0x445f99
mov esi, ecx
mov dword [edi + 8], 0x1f
jmp 0x445a94
cmp edx, 0x20
je 0x446107
cmp edx, 9
je 0x446107
mov edx, dword [ebp - 0x14]
test edx, edx
je 0x4459c8
mov eax, dword [ebp - 0x28]
mov ebx, dword [ebp - 0x1c]
cmp dword [eax + ebx - 8], 0xf
jge 0x44599b
mov ecx, dword [ebp - 0x18]
test ecx, ecx
je 0x445fdb
lea eax, [esi + 2]
cmp dword [ecx], eax
jne 0x445fdb
dec edx
jmp 0x445a97
lea ebx, [esi + 2]
mov dword [ebp - 0x28], ebx
mov esi, ebx
movzx eax, word [esi]
cmp eax, 0x7f
ja 0x445ffe
push eax
call fcn.004a3030
add esp, 4
test eax, eax
jne 0x445ffe
cmp word [esi], 0x5f
jne 0x446003
add esi, 2
jmp 0x445fe3
mov dword [ebp - 0x38], esi
movzx eax, word [esi]
push eax
push 0x4d6b10
call fcn.0049c891
add esp, 8
test eax, eax
je 0x446917
cmp dword [ebp - 0x38], ebx
je 0x4468bb
mov ecx, 0x10
call fcn.0047e400
mov edi, eax
test edi, edi
je 0x447e86
mov dword [edi], 0
mov dword [edi + 4], 0
mov dword [edi + 8], 2
mov dword [edi + 0xc], 0
mov esi, dword [ebp - 0x38]
sub esi, ebx
sar esi, 1
test ebx, ebx
je 0x4460b5
cmp word [ebx], 0
je 0x4460b5
cmp esi, 0xffffffff
jne 0x446081
mov esi, ebx
lea ecx, [esi + 2]
mov ax, word [esi]
add esi, 2
test ax, ax
jne 0x446072
sub esi, ecx
sar esi, 1
lea eax, [esi + esi]
lea ecx, [eax + 2]
mov dword [ebp - 0x30], eax
call fcn.0047e400
mov ebx, eax
test ebx, ebx
je 0x447e86
test esi, esi
mov esi, dword [ebp - 0x30]
je 0x4460ad
push esi
push dword [ebp - 0x28]
push ebx
call fcn.0049c940
add esp, 0xc
xor eax, eax
mov word [ebx + esi], ax
jmp 0x4460ba
mov ebx, 0x4cdea8
mov dword [edi + 4], ebx
xor ecx, ecx
mov eax, dword [ebp - 0x38]
mov ebx, dword [ebp - 0x1c]
movzx edx, word [eax]
mov eax, 2
cmp edx, 0x28
mov edx, dword [ebp - 0x14]
cmovne eax, ecx
mov ecx, 0x46
mov dword [edi + 8], eax
mov eax, 0xb
cmovne ecx, eax
mov eax, edx
add eax, eax
mov dword [ebx + eax*8 + 8], ecx
mov eax, edx
mov ecx, dword [ebp - 0x2c]
add eax, eax
inc edx
mov dword [ebp - 0x14], edx
mov dword [ebx + eax*8], edi
mov esi, dword [ebp - 0x38]
mov edi, dword [ebp - 0x18]
jmp 0x4457d0
mov edx, dword [ebp - 0x14]
test edx, edx
je 0x446862
movzx eax, word [esi - 2]
cmp eax, 0x20
je 0x446124
cmp eax, 9
jne 0x446862
mov dword [edi + 8], 0x2f
jmp 0x445a97
cmp ecx, 9
je 0x44615d
cmp ecx, 0xa
je 0x44615d
cmp ecx, 0x44
je 0x446144
cmp ecx, 0x45
jne 0x446161
add dword [ebp - 0x20], 2
add esi, 2
mov ebx, dword [ebp - 0x1c]
inc edx
mov edi, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x2c]
mov dword [ebp - 0x14], edx
jmp 0x4457d0
add dword [ebp - 0x20], 4
mov ebx, dword [ebp - 0x1c]
add esi, 2
mov edi, dword [ebp - 0x18]
inc edx
mov ecx, dword [ebp - 0x2c]
mov dword [ebp - 0x14], edx
jmp 0x4457d0
cmp word [esi], 0x2e
je 0x446862
movzx eax, word [edi]
push eax
push 0x4d6b10
call fcn.0049c891
add esp, 8
test eax, eax
je 0x4461f0
mov ecx, edi
movzx eax, word [ecx]
cmp eax, 0x20
je 0x4461a4
cmp eax, 9
jne 0x4461a9
add ecx, 2
jmp 0x446197
mov edx, dword [ebp - 0x14]
cmp eax, 0x3a
jne 0x4461ca
test edx, edx
je 0x4461ca
mov ecx, dword [ebp - 0x1c]
mov eax, edx
add eax, eax
mov eax, dword [ecx + eax*8 - 8]
cmp eax, 0x11
je 0x4461f0
cmp eax, 0x12
je 0x4461f0
mov eax, dword [ebp - 0x30]
inc edx
mov ecx, dword [ebp - 0x2c]
mov esi, edi
mov edi, dword [ebp - 0x18]
mov dword [ebx], eax
mov eax, dword [ebp - 0x28]
mov dword [ebx + 8], 1
mov dword [ebx + 4], eax
mov ebx, dword [ebp - 0x1c]
mov dword [ebp - 0x14], edx
jmp 0x4457d0
mov edi, esi
movzx eax, word [edi]
cmp eax, 0x7f
ja 0x44620d
push eax
call fcn.004a3030
add esp, 4
test eax, eax
jne 0x44620d
cmp word [edi], 0x5f
jne 0x446212
add edi, 2
jmp 0x4461f2
mov ebx, edi
mov dword [ebp - 0x38], edi
sub ebx, esi
sar ebx, 1
cmp word [esi], 0
je 0x446272
cmp ebx, 0xffffffff
jne 0x44623f
mov ebx, esi
lea ecx, [ebx + 2]
nop dword [eax + eax]
mov ax, word [ebx]
add ebx, 2
test ax, ax
jne 0x446230
sub ebx, ecx
sar ebx, 1
lea edi, [ebx + ebx]
lea ecx, [edi + 2]
call fcn.0047e400
mov dword [ebp - 0x30], eax
test eax, eax
je 0x447e86
test ebx, ebx
je 0x446267
push edi
push esi
push eax
call fcn.0049c940
mov eax, dword [ebp - 0x30]
add esp, 0xc
xor ecx, ecx
mov word [eax + edi], cx
mov edi, dword [ebp - 0x38]
jmp 0x446277
mov eax, 0x4cdea8
mov ecx, dword [ebp - 0x40]
sub edi, esi
mov edx, dword [ebp - 0x14]
mov ebx, dword [ebp - 0x1c]
sar edi, 1
inc edx
mov dword [ecx + 4], edi
mov edi, dword [ebp - 0x18]
mov dword [ecx + 8], 0
mov dword [ecx], eax
mov esi, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x2c]
mov dword [ebp - 0x14], edx
jmp 0x4457d0
mov eax, dword [ebp - 0x48]
mov edi, eax
mov dword [ebp - 0x2c], ecx
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x14], edx
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x18], edi
test eax, eax
je 0x446c32
mov ecx, dword [ebp - 0x2c]
lea eax, [edx + 5]
cmp eax, ecx
jle 0x4462f5
sub ecx, 0xffffff80
mov eax, ecx
mov dword [ebp - 0x2c], ecx
shl eax, 4
push eax
push ebx
call fcn.0049ee28
mov ebx, eax
add esp, 8
mov dword [ebp - 0x1c], ebx
test ebx, ebx
je 0x446792
mov eax, dword [ebp + 0xc]
mov edx, dword [ebp - 0x14]
mov dword [eax], ebx
mov cl, byte [edi + 8]
cmp cl, 2
je 0x4465b0
cmp cl, 3
je 0x4465b0
cmp cl, 1
jne 0x44633f
mov ecx, dword [ebp - 0x2c]
mov eax, edx
add eax, eax
mov dword [ebx + eax*8 + 8], 6
mov dword [ebx + eax*8], 0
mov dword [ebx + eax*8 + 4], 0
mov eax, dword [edi + 0xc]
mov edi, dword [ebp - 0x24]
add edi, 0x10
inc edx
lea esi, [esi + eax*2]
jmp 0x44579c
cmp cl, 6
jne 0x4463c0
mov ecx, 0x10
call fcn.0047e400
mov edi, eax
test edi, edi
je 0x447e86
mov ecx, dword [ebp - 0x18]
mov eax, 0x46
mov edx, dword [ebp - 0x14]
mov dword [edi], 0
add edx, edx
mov dword [edi + 4], 0
mov dword [edi + 8], 2
mov dword [edi + 0xc], 0
mov ecx, dword [ecx]
movzx ecx, word [ecx]
cmp ecx, 0x28
cmovne eax, dword [ebp - 0x3c]
mov dword [ebx + edx*8 + 8], eax
xor eax, eax
cmp ecx, 0x28
mov ecx, dword [ebp - 0x2c]
sete al
lea eax, [eax*2 + 0x20000]
mov dword [edi + 8], eax
mov dword [ebx + edx*8], edi
mov edi, dword [ebp - 0x18]
mov edx, dword [ebp - 0x14]
mov eax, dword [edi + 0xc]
mov edi, dword [ebp - 0x24]
add edi, 0x10
inc edx
lea esi, [esi + eax*2]
jmp 0x44579c
cmp cl, 4
jne 0x446501
mov eax, dword [edi + 4]
cmp eax, 7
jne 0x446459
mov eax, dword [edi + 0xc]
lea ecx, [esi + eax*2]
movzx eax, word [ecx]
cmp eax, 0x28
je 0x446408
cmp ax, 0x20
je 0x4463ef
cmp ax, 9
jne 0x4463f8
movzx eax, word [ecx + 2]
add ecx, 2
jmp 0x4463e3
cmp ax, 0x2e
je 0x446408
cmp ax, 0x5b
jne 0x4469e3
mov eax, dword [0x4e37f8]
mov eax, dword [eax + 0x18]
test eax, eax
je 0x446a9c
cmp dword [eax + 0x30], 0
je 0x446a9c
test edx, edx
je 0x4464db
mov eax, edx
add eax, eax
cmp dword [ebx + eax*8 - 8], 0xf
jge 0x4464db
movzx ecx, word [esi - 2]
cmp ecx, 0x20
je 0x44644b
cmp ecx, 9
jne 0x446a51
mov dword [ebx + eax*8 + 8], 0x2f
inc edx
jmp 0x4464db
cmp eax, 0x43
jne 0x4464db
mov eax, dword [edi + 0xc]
cmp word [esi + eax*2], 0x28
jne 0x446b0a
test edx, edx
je 0x446499
mov eax, edx
add eax, eax
cmp dword [ebx + eax*8 - 8], 0xf
jge 0x446499
movzx ecx, word [esi - 2]
cmp ecx, 0x20
je 0x44648d
cmp ecx, 9
jne 0x446a51
inc edx
mov dword [ebx + eax*8 + 8], 0x2f
mov dword [ebp - 0x14], edx
mov ecx, 0x10
call fcn.0047e400
mov edx, eax
test edx, edx
je 0x447e86
mov eax, dword [ebp - 0x14]
add eax, eax
mov dword [edx + 4], 0
mov dword [edx + 8], 2
mov dword [edx + 0xc], 0
mov dword [ebx + eax*8], edx
mov eax, dword [0x4e9fdc]
mov dword [edx], eax
mov edx, dword [ebp - 0x14]
mov dword [edi + 4], 0x46
mov eax, dword [edi + 4]
mov ecx, edx
add ecx, ecx
mov dword [ebx + ecx*8 + 8], eax
mov eax, dword [edi]
mov dword [ebx + ecx*8 + 4], eax
mov eax, dword [edi + 0xc]
mov edi, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x2c]
add edi, 0x10
inc edx
lea esi, [esi + eax*2]
jmp 0x44579c
cmp cl, 5
jne 0x44655a
test edx, edx
je 0x446533
mov eax, edx
add eax, eax
cmp dword [ebx + eax*8 - 8], 0xf
jge 0x446533
movzx ecx, word [esi - 2]
cmp ecx, 0x20
je 0x446527
cmp ecx, 9
jne 0x446a51
inc edx
mov dword [ebx + eax*8 + 8], 0x2f
mov dword [ebp - 0x14], edx
push dword [edi + 4]
mov ecx, edx
shl ecx, 4
add ecx, ebx
call fcn.00401560
mov eax, dword [edi + 0xc]
mov edi, dword [ebp - 0x24]
mov edx, dword [ebp - 0x14]
add edi, 0x10
mov ecx, dword [ebp - 0x2c]
inc edx
lea esi, [esi + eax*2]
jmp 0x44579c
test edx, edx
je 0x446584
mov eax, edx
add eax, eax
cmp dword [ebx + eax*8 - 8], 0xf
jge 0x446584
movzx ecx, word [esi - 2]
cmp ecx, 0x20
je 0x44657b
cmp ecx, 9
jne 0x446a51
mov dword [ebx + eax*8 + 8], 0x2f
inc edx
mov ecx, dword [ebp - 0x2c]
mov eax, edx
add eax, eax
mov dword [ebx + eax*8], edi
mov dword [ebx + eax*8 + 8], 4
mov dword [ebx + eax*8 + 4], 0
mov eax, dword [edi + 0xc]
mov edi, dword [ebp - 0x24]
add edi, 0x10
inc edx
lea esi, [esi + eax*2]
jmp 0x44579c
mov bl, byte [edi + 9]
mov bh, byte [edi + 4]
mov byte [ebp - 0x41], bh
cmp bl, 1
ja 0x4465c6
mov byte [ebp - 0x31], 0
test bh, bh
jne 0x4465ca
mov byte [ebp - 0x31], 1
mov esi, dword [edi]
mov edi, dword [ebp - 0x1c]
mov dword [ebp - 0x40], esi
test edx, edx
je 0x44661b
add edx, edx
cmp dword [edi + edx*8 - 8], 0xf
jge 0x446618
xor eax, eax
cmp cl, 3
mov ecx, 2
cmove eax, ecx
mov ecx, esi
sub ecx, eax
movzx eax, word [ecx - 2]
cmp eax, 0x2e
je 0x446618
cmp eax, 0x20
je 0x446607
cmp eax, 9
jne 0x446b78
mov dword [edi + edx*8 + 8], 0x2f
mov edx, dword [ebp - 0x14]
inc edx
mov dword [ebp - 0x14], edx
jmp 0x44661b
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
cmp dword [eax + 0xc], 0
jne 0x446650
cmp byte [eax + 8], 3
je 0x446650
cmp word [esi], 0x25
mov cl, 1
jne 0x44663b
mov dword [eax + 0xc], 1
jmp 0x446652
test edx, edx
je 0x446650
mov eax, edx
add eax, eax
cmp dword [edi + eax*8 - 8], 0x30
jne 0x446650
dec edx
mov dword [ebp - 0x14], edx
jmp 0x446652
xor cl, cl
cmp byte [ebp - 0x31], 0
je 0x446670
cmp bl, 1
jne 0x446670
mov eax, edx
add eax, eax
inc edx
mov dword [ebp - 0x14], edx
mov dword [edi + eax*8 + 8], 0xf
mov dword [edi + eax*8], esi
test cl, cl
jne 0x446700
mov ecx, dword [ebp - 0x18]
mov eax, dword [ecx]
mov esi, dword [ecx + 0xc]
mov dword [ebp - 0x48], eax
test eax, eax
je 0x4466dd
cmp word [eax], 0
je 0x4466dd
cmp esi, 0xffffffff
jne 0x4466a6
mov esi, eax
lea ecx, [esi + 2]
mov ax, word [esi]
add esi, 2
test ax, ax
jne 0x446697
sub esi, ecx
sar esi, 1
lea ebx, [esi + esi]
lea ecx, [ebx + 2]
call fcn.0047e400
mov edi, eax
test edi, edi
je 0x447e86
test esi, esi
je 0x4466cc
push ebx
push dword [ebp - 0x48]
push edi
call fcn.0049c940
add esp, 0xc
mov edx, dword [ebp - 0x14]
xor eax, eax
mov ecx, dword [ebp - 0x18]
mov word [edi + ebx], ax
mov bh, byte [ebp - 0x41]
jmp 0x4466e2
mov edi, 0x4cdea8
mov ecx, dword [ecx + 0xc]
mov eax, edx
mov esi, dword [ebp - 0x40]
shl eax, 4
add eax, dword [ebp - 0x1c]
inc edx
mov dword [ebp - 0x14], edx
mov dword [eax + 8], 0
mov dword [eax], edi
mov dword [eax + 4], ecx
mov ecx, dword [ebp - 0x18]
mov eax, dword [ecx + 0xc]
lea esi, [esi + eax*2]
test bh, bh
je 0x44677f
cmp byte [ecx + 8], 3
jne 0x446759
movzx eax, word [esi + 2]
add esi, 2
cmp eax, 0x20
je 0x446713
cmp eax, 9
je 0x446713
test ax, ax
je 0x446759
push eax
push 0x4d7808
call fcn.0049c891
add esp, 8
test eax, eax
je 0x446756
movzx eax, word [esi + 2]
cmp eax, 0x3d
je 0x446756
cmp eax, 0x26
jne 0x446bd6
cmp word [esi], ax
jne 0x446bd6
mov edx, dword [ebp - 0x14]
cmp byte [ebp - 0x31], 0
mov ebx, dword [ebp - 0x1c]
je 0x446782
mov edi, dword [ebp - 0x24]
mov eax, edx
mov ecx, dword [ebp - 0x2c]
add eax, eax
inc edx
add edi, 0x10
dec edx
inc edx
mov dword [ebx + eax*8 + 8], 0xc
jmp 0x44579c
mov ebx, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x24]
dec edx
mov ecx, dword [ebp - 0x2c]
add edi, 0x10
inc edx
jmp 0x44579c
cmp byte [0x4e9604], 0
mov ecx, 0x4e8f30
je 0x4467bc
mov eax, dword [ebp - 0x10]
push 0
push eax
push 0
push 0x4cdea8
push 0x4d1758
call fcn.0040c800
jmp 0x447e6d
cmp byte [0x4e9607], 0
je 0x4467e6
mov edi, dword [ebp - 0x10]
push dword [edi + 4]
movzx eax, word [edi + 2]
push eax
push 0x4cdea8
push 0x4d1758
call fcn.0040c700
xor eax, eax
jmp 0x447e6d
mov eax, dword [ebp - 0x10]
push 0
push eax
push 0x4cdea8
push 0
push 0x4d1758
jmp 0x447e68
cmp byte [0x4e9604], 0
mov ecx, 0x4e8f30
mov eax, dword [ebp - 0x10]
je 0x446827
push 0
push eax
push 0
push 0x4cdea8
push 0x4d62fc
call fcn.0040c800
jmp 0x447e6d
cmp byte [0x4e9607], 0
je 0x44684e
push dword [eax + 4]
movzx eax, word [eax + 2]
push eax
push 0x4cdea8
push 0x4d62fc
call fcn.0040c700
xor eax, eax
jmp 0x447e6d
push 0
push eax
push 0x4cdea8
push 0
push 0x4d62fc
jmp 0x447e68
cmp byte [0x4e9604], 0
mov ecx, 0x4e8f30
mov eax, dword [ebp - 0x10]
je 0x446888
push 0
push eax
push 0
push esi
push 0x4d6b9c
call fcn.0040c800
jmp 0x447e6d
cmp byte [0x4e9607], 0
je 0x4468ab
push dword [eax + 4]
movzx eax, word [eax + 2]
push eax
push esi
push 0x4d6b9c
call fcn.0040c700
xor eax, eax
jmp 0x447e6d
push 0
push eax
push esi
push 0
push 0x4d6b9c
jmp 0x447e68
mov eax, dword [ebp - 0x10]
add ebx, 0xfffffffe
cmp byte [0x4e9604], 0
mov ecx, 0x4e8f30
je 0x4468e4
push 0
push eax
push 0
push ebx
push 0x4d6b9c
call fcn.0040c800
jmp 0x447e6d
cmp byte [0x4e9607], 0
je 0x446907
push dword [eax + 4]
movzx eax, word [eax + 2]
push eax
push ebx
push 0x4d6b9c
call fcn.0040c700
xor eax, eax
jmp 0x447e6d
push 0
push eax
push ebx
push 0
push 0x4d6b9c
jmp 0x447e68
mov eax, dword [ebp - 0x38]
mov ecx, 0x4cdea8
test eax, eax
cmovne ecx, eax
cmp byte [0x4e9604], 0
mov eax, dword [ebp - 0x10]
je 0x44694a
push 0
push eax
push 0
push ecx
push 0x4d6e80
mov ecx, 0x4e8f30
call fcn.0040c800
jmp 0x447e6d
cmp byte [0x4e9607], 0
je 0x446972
push dword [eax + 4]
movzx eax, word [eax + 2]
push eax
push ecx
push 0x4d6e80
mov ecx, 0x4e8f30
call fcn.0040c700
xor eax, eax
jmp 0x447e6d
push 0
push eax
push ecx
push 0
push 0x4d6e80
jmp 0x447e63
cmp byte [0x4e9604], 0
je 0x4469a8
mov eax, dword [ebp - 0x10]
mov ecx, 0x4e8f30
push 0
push eax
push 0
push esi
push 0x4d77b8
call fcn.0040c800
jmp 0x447e6d
cmp byte [0x4e9607], 0
mov ecx, 0x4e8f30
mov eax, dword [ebp - 0x10]
je 0x4469d3
push dword [eax + 4]
movzx eax, word [eax + 2]
push eax
push esi
push 0x4d77b8
call fcn.0040c700
xor eax, eax
jmp 0x447e6d
push 0
push eax
push esi
push 0
push 0x4d77b8
jmp 0x447e68
test esi, esi
mov ecx, 0x4cdea8
cmovne ecx, esi
cmp byte [0x4e9604], 0
je 0x446a13
mov eax, dword [ebp - 0x10]
push 0
push eax
push 0
push ecx
push 0x4d6b9c
mov ecx, 0x4e8f30
call fcn.0040c800
jmp 0x447e6d
cmp byte [0x4e9607], 0
je 0x446a3e
mov edi, dword [ebp - 0x10]
push dword [edi + 4]
movzx eax, word [edi + 2]
push eax
push ecx
push 0x4d6b9c
mov ecx, 0x4e8f30
call fcn.0040c700
xor eax, eax
jmp 0x447e6d
mov eax, dword [ebp - 0x10]
push 0
push eax
push ecx
push 0
push 0x4d6b9c
jmp 0x447e63
cmp byte [0x4e9604], 0
jne 0x44698b
cmp byte [0x4e9607], 0
mov ecx, 0x4e8f30
je 0x446a89
mov edi, dword [ebp - 0x10]
push dword [edi + 4]
movzx eax, word [edi + 2]
push eax
push esi
push 0x4d77b8
call fcn.0040c700
xor eax, eax
jmp 0x447e6d
mov eax, dword [ebp - 0x10]
push 0
push eax
push esi
push 0
push 0x4d77b8
jmp 0x447e68
test esi, esi
mov ecx, 0x4cdea8
cmovne ecx, esi
cmp byte [0x4e9604], 0
je 0x446acc
mov eax, dword [ebp - 0x10]
push 0
push eax
push 0
push ecx
push 0x4d7878
mov ecx, 0x4e8f30
call fcn.0040c800
jmp 0x447e6d
cmp byte [0x4e9607], 0
je 0x446af7
mov edi, dword [ebp - 0x10]
push dword [edi + 4]
movzx eax, word [edi + 2]
push eax
push ecx
push 0x4d7878
mov ecx, 0x4e8f30
call fcn.0040c700
xor eax, eax
jmp 0x447e6d
mov eax, dword [ebp - 0x10]
push 0
push eax
push ecx
push 0
push 0x4d7878
jmp 0x447e63
test esi, esi
mov ecx, 0x4cdea8
cmovne ecx, esi
cmp byte [0x4e9604], 0
je 0x446b3a
mov eax, dword [ebp - 0x10]
push 0
push eax
push 0
push ecx
push 0x4d78c4
mov ecx, 0x4e8f30
call fcn.0040c800
jmp 0x447e6d
cmp byte [0x4e9607], 0
je 0x446b65
mov edi, dword [ebp - 0x10]
push dword [edi + 4]
movzx eax, word [edi + 2]
push eax
push ecx
push 0x4d78c4
mov ecx, 0x4e8f30
call fcn.0040c700
xor eax, eax
jmp 0x447e6d
mov eax, dword [ebp - 0x10]
push 0
push eax
push ecx
push 0
push 0x4d78c4
jmp 0x447e63
cmp byte [0x4e9604], 0
mov eax, dword [ebp - 0x10]
je 0x446b9e
push 0
push eax
push 0
push ecx
push 0x4d77b8
mov ecx, 0x4e8f30
call fcn.0040c800
jmp 0x447e6d
cmp byte [0x4e9607], 0
je 0x446bc6
push dword [eax + 4]
movzx eax, word [eax + 2]
push eax
push ecx
push 0x4d77b8
mov ecx, 0x4e8f30
call fcn.0040c700
xor eax, eax
jmp 0x447e6d
push 0
push eax
push ecx
push 0
push 0x4d77b8
jmp 0x447e63
cmp byte [0x4e9604], 0
mov ecx, 0x4e8f30
mov eax, dword [ebp - 0x10]
je 0x446bfc
push 0
push eax
push 0
push esi
push 0x4d7818
call fcn.0040c800
jmp 0x447e6d
cmp byte [0x4e9607], 0
je 0x446c1f
push dword [eax + 4]
movzx eax, word [eax + 2]
push eax
push esi
push 0x4d7818
call fcn.0040c700
xor eax, eax
jmp 0x447e6d
push 0
push eax
push esi
push 0
push 0x4d7818
jmp 0x447e68
mov ecx, dword [ebp - 0x20]
test edx, edx
jne 0x446ca5
cmp byte [0x4e9604], dl
je 0x446c5f
mov eax, dword [ebp - 0x10]
mov ecx, 0x4e8f30
push 0
push eax
push 0
push 0x4cdea8
push 0x4d6b9c
call fcn.0040c800
jmp 0x447e6d
cmp byte [0x4e9607], 0
mov ecx, 0x4e8f30
je 0x446c8e
mov edi, dword [ebp - 0x10]
push dword [edi + 4]
movzx eax, word [edi + 2]
push eax
push 0x4cdea8
push 0x4d6b9c
call fcn.0040c700
xor eax, eax
jmp 0x447e6d
mov eax, dword [ebp - 0x10]
push 0
push eax
push 0x4cdea8
push 0
push 0x4d6b9c
jmp 0x447e68
mov eax, dword [ebp + 8]
cmp byte [eax], 2
jne 0x446cc7
cmp edx, 1
jne 0x446d42
cmp dword [ebx + 8], 4
jne 0x446d42
mov dword [ebx + 4], 5
mov eax, edx
add eax, eax
mov dword [ebx + eax*8 + 8], 0x49
lea eax, [ecx + edx]
lea eax, [eax*4 + 4]
call fcn.004b53e0
mov eax, dword [ebp - 0x14]
mov ebx, esp
mov dword [ebp - 0x30], ebx
lea eax, [eax*4 + 4]
call fcn.004b53e0
mov esi, dword [ebp - 0x1c]
lea ecx, [ebp - 0x68]
mov eax, esp
mov dword [ebp - 0x60], 8
xor edi, edi
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x28], edi
mov dword [ebp - 0x4c], 8
mov dword [eax], ecx
mov ecx, 1
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x18], esi
mov eax, dword [eax + ecx*4 - 4]
mov edx, dword [esi + 8]
mov dword [ebp - 0x24], esi
mov eax, dword [eax + 8]
mov dword [ebp + 0xc], eax
cmp edx, 8
jge 0x446d54
mov eax, dword [ebp - 0x14]
mov dword [ebx + edi*4], esi
add esi, 0x10
inc edi
jmp 0x446d1e
mov eax, dword [eax + 8]
mov ecx, 0x4cdea8
test eax, eax
cmovne ecx, eax
jmp 0x4469ed
lea eax, [edx - 0xb]
cmp eax, 0x3e
ja case.0x446d67.19
movzx eax, byte [eax + 0x447f70]
jmp dword [eax*4 + 0x447f4c]
cmp edx, 0x12
je 0x446dc5
mov eax, dword [ebp + 0xc]
sub eax, edx
cmp eax, 3
je 0x446dc5
mov eax, dword [ebp + 0xc]
cmp eax, 8
je 0x446d97
cmp eax, 0x11
jg 0x447213
cmp eax, 0xf
jl 0x447213
cmp byte [0x4e9604], 0
jne 0x446c3e
cmp byte [0x4e9607], 0
mov ecx, 0x4e8f30
mov eax, dword [ebp - 0x10]
je 0x4477c7
push dword [eax + 4]
movzx eax, word [eax + 2]
jmp 0x446c77
cmp dword [ebp - 0x28], 0
jne 0x446e12
mov eax, dword [esi - 8]
cmp eax, 0xf
je 0x446ddc
cmp eax, 0x12
jne 0x446ef7
mov eax, dword [esi + 4]
mov ecx, 0x4cdea8
test eax, eax
cmovne ecx, eax
cmp byte [0x4e9604], 0
jne 0x4469f6
mov eax, dword [ebp - 0x10]
cmp byte [0x4e9607], 0
je 0x4477db
push dword [eax + 4]
movzx eax, word [eax + 2]
jmp 0x446a26
mov eax, dword [ebp + 0xc]
add eax, 0xfffffff1
cmp eax, 2
ja 0x446ef7
mov eax, dword [ebp + 0xc]
cmp edx, 0x12
je 0x446e32
cmp dword [esi - 8], eax
je 0x446efa
cmp dword [esi - 8], 0x12
je 0x446e97
cmp dword [esi - 8], eax
je 0x446e97
mov eax, dword [ebp - 0x28]
mov eax, dword [eax + 0xc]
inc eax
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x28]
mov ebx, dword [ebp - 0x24]
mov dword [eax + 0xc], ebx
mov eax, dword [ebp + 0xc]
mov ebx, dword [ebp - 0x30]
cmp eax, 0x11
jne 0x446efa
test byte [ebp - 0x24], 1
je 0x446efa
cmp byte [0x4e9604], 0
mov ecx, 0x4e8f30
mov eax, dword [ebp - 0x10]
je 0x4477eb
push 0
push eax
push 0
push 0x4cdea8
push 0x4d78e0
call fcn.0040c800
jmp 0x447e6d
xor ecx, ecx
mov dword [ebp - 0x24], ecx
cmp edx, 0x12
jne 0x446eb1
add esi, 0x10
inc ecx
cmp dword [esi + 8], 0x12
je 0x446ea1
mov dword [ebp - 0x24], ecx
mov dword [ebp - 0x18], esi
mov edx, dword [esi + 8]
sub eax, edx
cmp eax, 3
je 0x446ef4
test ecx, ecx
jle 0x446ee3
mov esi, ecx
mov eax, 0x10
call fcn.004b5610
mov eax, esp
mov dword [eax + 8], 3
mov dword [ebx + edi*4], eax
inc edi
sub esi, 1
jne 0x446ec1
mov esi, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x28]
add dword [eax + 0xc], ecx
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x14]
jmp 0x446d21
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp + 0xc]
mov dword [ebp + 0xc], edx
sub dword [ebp + 0xc], 0xc
je 0x446f5c
sub dword [ebp + 0xc], 1
je 0x446f3d
sub dword [ebp + 0xc], 1
je 0x446f3d
mov al, byte [eax + 0x4d8460]
cmp al, byte [edx + 0x4d8460]
jae 0x447213
cmp dword [ebp - 0x28], 0
jne 0x4470ff
mov eax, dword [ebp - 0x14]
mov dword [eax + ecx*4], esi
inc ecx
add esi, 0x10
mov dword [ebp - 0x18], esi
jmp 0x447216
mov eax, dword [ebp - 0x14]
add esi, 0x10
mov dword [ebp - 0x18], esi
mov eax, dword [eax + ecx*4 - 4]
mov dword [eax + 8], 0x46
mov eax, dword [eax + 4]
mov dword [ebp - 0x28], eax
jmp 0x447213
mov eax, dword [ebp - 0x14]
dec ecx
add esi, 0x10
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x18], esi
mov eax, dword [eax + ecx*4]
mov eax, dword [eax + 4]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + ecx*4 - 4]
cmp dword [eax + 8], 0x46
je 0x447213
mov eax, dword [ebp - 0x14]
jmp 0x446d21
mov eax, dword [ebp - 0x14]
mov dword [eax + ecx*4], esi
add esi, 0x10
mov eax, dword [ebp - 0x28]
inc ecx
mov dword [esi + 4], eax
mov eax, dword [ebp - 0x24]
mov eax, dword [eax]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x14]
mov dword [eax + ecx*4], esi
inc ecx
mov dword [ebp - 0x20], ecx
add esi, 0x10
jmp 0x446d1e
mov esi, dword [ebp - 0x24]
mov eax, dword [ebp - 0x28]
mov dword [esi + 4], eax
cmp esi, dword [ebp - 0x1c]
jbe 0x447034
cmp dword [esi - 8], 0xf
jge 0x447034
mov eax, dword [esi]
cmp word [eax], 0x28
jne 0x447034
mov eax, 0x10
call fcn.004b5610
mov eax, esp
mov ecx, 0x10
mov dword [ebp + 0xc], eax
mov dword [eax + 8], 0x46
call fcn.0047e400
mov dword [ebp - 0x28], eax
test eax, eax
je 0x447e86
mov ecx, dword [ebp - 0x20]
mov edx, esp
mov dword [eax], 0
mov dword [eax + 4], 0
mov dword [eax + 8], 2
mov dword [eax + 0xc], 0
mov dword [edx], eax
mov eax, dword [ebp - 0x14]
mov dword [eax + ecx*4], edx
inc ecx
mov dword [eax + ecx*4], esi
inc ecx
mov dword [ebp - 0x20], ecx
add esi, 0x10
jmp 0x446d1e
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x28], 0
mov dword [eax + ecx*4], esi
inc ecx
mov dword [ebp - 0x20], ecx
add esi, 0x10
jmp 0x446d1e
mov eax, dword [ebp - 0x28]
mov dword [esi + 4], eax
mov eax, dword [esi]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x14]
mov dword [eax + ecx*4], esi
inc ecx
mov dword [ebp - 0x20], ecx
add esi, 0x10
jmp 0x446d1e
mov eax, dword [ebp - 0x14]
mov dword [esi + 8], 0x46
mov dword [eax + ecx*4], esi
inc ecx
add esi, 0x10
mov dword [ebp - 0x18], esi
jmp 0x447216
mov eax, dword [ebp + 0xc]
cmp eax, 8
je 0x4479ba
cmp dword [ebp - 0x28], 0
je 0x44710a
cmp eax, 0x11
jne 0x44710a
test edi, edi
je 0x4470f9
mov eax, dword [ebx + edi*4 - 4]
mov eax, dword [eax + 8]
test eax, eax
je 0x4470c4
cmp eax, 6
jne 0x447826
mov eax, dword [ebp - 0x28]
dec edi
inc dword [eax + 0xc]
add esi, 0x10
mov eax, dword [ebp - 0x14]
jmp 0x446d1e
mov ebx, dword [esi]
movzx eax, word [ebx - 2]
sub ebx, 2
cmp eax, 0x20
je 0x4470c6
cmp eax, 9
je 0x4470c6
cmp eax, 0x7f
ja 0x4470f6
push eax
call fcn.004a3030
add esp, 4
test eax, eax
jne 0x4470f3
cmp word [ebx], 0x5f
jne 0x447826
mov ecx, dword [ebp - 0x20]
mov ebx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x28]
inc dword [eax + 0xc]
mov eax, dword [ebp - 0x14]
add esi, 0x10
jmp 0x446d1e
cmp eax, 0xf
je 0x447955
cmp eax, 0x10
je 0x4478f0
cmp eax, 0x11
je 0x44788b
cmp eax, 0x21
mov eax, dword [ebp - 0x14]
jne 0x447216
mov eax, dword [eax + ecx*4 - 4]
mov dword [eax], esi
mov eax, dword [ebp - 0x14]
mov dword [ebx + edi*4], esi
inc edi
mov dword [eax + ecx*4 - 4], esi
add esi, 0x10
jmp 0x446d1e
mov eax, dword [ebp + 0xc]
cmp eax, 8
je 0x447a1f
cmp eax, 0xf
je 0x447169
cmp eax, 0x10
je 0x447169
cmp eax, 0x11
jne 0x447213
cmp byte [0x4e9604], 0
jne 0x446c3e
cmp byte [0x4e9607], 0
mov ecx, 0x4e8f30
mov eax, dword [ebp - 0x10]
je 0x4477c7
push dword [eax + 4]
movzx eax, word [eax + 2]
push eax
push 0x4cdea8
push 0x4d6b9c
call fcn.0040c700
xor eax, eax
jmp 0x447e6d
mov eax, dword [ebp - 0x28]
test eax, eax
je case.0x446d67.19
cmp dword [esi + 0x18], 0xc
je 0x4471bc
cmp dword [esi + 0x18], 0xd
jne case.0x446d67.19
or dword [eax + 8], 0x10000
add esi, 0x10
mov eax, dword [ebp - 0x14]
jmp 0x446d1e
movzx eax, byte [edx + 0x4d8460]
mov ecx, eax
and ecx, 1
add ecx, eax
mov eax, dword [ebp + 0xc]
movzx eax, byte [eax + 0x4d8460]
cmp eax, ecx
jb 0x4476c1
cmp edx, 0x1f
jg 0x4471fc
cmp edx, 0x13
jge 0x4476c1
cmp dword [ebp + 0xc], 0x3c
jne 0x447210
cmp edx, 0x3d
jl 0x447210
cmp edx, 0x42
jle 0x4476c1
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + ecx*4 - 4]
dec ecx
mov dword [ebx + edi*4], eax
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x20], ecx
mov edx, dword [eax + 8]
mov dword [ebp + 0xc], edx
lea eax, [edx - 0x20]
cmp eax, 0x26
ja case.0x44723d.37
movzx eax, byte [eax + 0x447fd0]
jmp dword [eax*4 + 0x447fb0]
mov eax, dword [ebp - 0x2c]
inc edi
mov ecx, dword [ebp - 0x20]
mov dword [eax + 8], 0x2f
mov eax, dword [ebp - 0x14]
jmp 0x446d21
mov eax, dword [esi + 8]
mov edx, dword [ebp - 0x2c]
mov dword [ebp - 0x24], eax
mov eax, dword [edx]
mov dword [ebp + 0xc], eax
mov esi, dword [eax + 8]
and esi, 3
mov dword [ebp - 0x3c], esi
mov esi, dword [ebp - 0x18]
jne 0x447487
mov eax, dword [ebp - 0x24]
add eax, 0xffffffed
cmp eax, 0xc
ja 0x447319
cmp dword [ebp - 0x24], 0x13
je 0x447300
mov ecx, 0x10
call fcn.0047e400
test eax, eax
je 0x447e86
mov edx, dword [ebp + 0xc]
mov dword [eax], 0
mov dword [eax + 4], 0
mov dword [eax + 8], 2
mov dword [eax + 0xc], 0
mov ecx, dword [ebx + edi*4]
mov dword [ecx], eax
mov eax, dword [ebx + edi*4]
mov ecx, dword [edx + 8]
or ecx, 0x40000
mov eax, dword [eax]
mov dword [eax + 8], ecx
mov eax, dword [ebx + edi*4]
mov ecx, dword [eax]
mov eax, dword [edx + 4]
mov dword [ecx + 4], eax
mov eax, dword [ebx + edi*4]
mov ecx, dword [eax]
mov eax, dword [edx + 0xc]
mov dword [ecx + 0xc], eax
or dword [edx + 8], 1
inc dword [edx + 0xc]
inc edi
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x14]
mov dword [esi], edx
jmp 0x446d21
mov edx, dword [ebp + 0xc]
dec edi
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x14]
or dword [edx + 8], 1
inc dword [edx + 0xc]
inc edi
mov dword [esi], edx
jmp 0x446d21
cmp dword [ebp - 0x24], 8
jl 0x4476b5
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + ecx*4 - 4]
mov ecx, dword [eax + 8]
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x48], ecx
cmp eax, 9
je 0x44736c
cmp eax, 0xa
je 0x44736c
mov byte [ebp + 0xf], 0
cmp eax, 0xb
je 0x4476b5
cmp eax, 0xf
je 0x4476b5
cmp eax, 0x10
je 0x4476b5
cmp ecx, 0x44
je 0x447370
cmp ecx, 0x45
jne 0x4476b5
jmp 0x447370
mov byte [ebp + 0xf], 1
mov eax, dword [edx]
mov ecx, 0x10
mov dword [ebp - 0x3c], eax
call fcn.0047e400
mov ecx, eax
mov dword [ebp - 0x40], ecx
test ecx, ecx
je 0x447e86
mov edx, dword [ebp - 0x3c]
mov dword [ecx + 4], 0
mov dword [ecx + 8], 2
mov dword [ecx + 0xc], 0
mov dword [ecx], 0
mov eax, dword [edx + 4]
mov dword [ecx + 4], eax
mov eax, dword [edx + 8]
or eax, 1
mov dword [ecx + 8], eax
mov eax, dword [edx + 0xc]
inc eax
mov dword [ecx + 0xc], eax
or dword [edx + 8], 0x40000
cmp byte [ebp + 0xf], 0
je 0x4473de
cmp dword [ebp - 0x24], 9
mov ecx, esi
sete dl
add esi, 0x10
mov dword [ebp - 0x18], esi
jmp 0x4473f2
cmp dword [ebp - 0x48], 0x44
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x14]
sete dl
dec eax
mov dword [ebp - 0x20], eax
mov ecx, dword [ecx + eax*4]
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x1c], eax
movzx eax, dl
mov dword [ebp - 0x24], ecx
lea eax, [eax*2 - 1]
push eax
call fcn.00401560
mov eax, 0x10
mov dword [ebx + edi*4 + 4], ecx
call fcn.004b5610
mov eax, esp
mov dword [ebx + edi*4 + 8], eax
mov dword [eax + 8], 0x38
mov eax, 0x10
call fcn.004b5610
cmp byte [ebp + 0xf], 0
mov eax, esp
mov ecx, dword [ebp - 0x40]
mov dword [ebx + edi*4 + 0xc], eax
mov dword [eax + 8], 0x46
mov eax, dword [ebx + edi*4 + 0xc]
mov dword [eax], ecx
je 0x447478
mov eax, dword [ebp - 0x24]
mov dword [ebx + edi*4 + 0x10], eax
mov eax, 0x10
call fcn.004b5610
mov ecx, dword [ebp - 0x20]
mov eax, esp
add edi, 5
mov dword [ebx + edi*4], eax
inc edi
mov dword [eax + 8], 0x39
mov eax, dword [ebp - 0x14]
jmp 0x446d21
mov ecx, dword [ebp - 0x20]
add edi, 3
mov eax, dword [ebp - 0x14]
inc edi
jmp 0x446d21
cmp dword [ebp - 0x3c], 2
jne 0x4476b5
cmp dword [eax + 0xc], 1
jne 0x4476b5
mov eax, dword [eax]
cmp eax, dword [0x4e9fdc]
jne 0x4476b5
mov eax, dword [ebx + edi*4 - 4]
mov ecx, dword [eax + 8]
cmp ecx, 4
je 0x4474be
cmp ecx, 6
jne 0x447cae
mov ecx, dword [ebp - 0x20]
inc edi
mov dword [eax + 4], 1
mov eax, dword [ebp - 0x14]
jmp 0x446d21
mov eax, dword [ebp - 0x2c]
inc edi
mov ecx, dword [ebp - 0x20]
mov dword [eax + 8], 0x46
mov eax, dword [ebp - 0x14]
jmp 0x446d21
mov edx, dword [ebx + edi*4 - 4]
mov eax, dword [ebp - 0x2c]
cmp eax, edx
je 0x447d19
mov dword [eax], edx
mov eax, dword [ebp - 0x14]
jmp 0x446d21
mov ecx, dword [ebx + edi*4 - 4]
mov eax, dword [ecx + 8]
cmp eax, 4
je 0x44755f
cmp eax, 6
je 0x44755f
cmp eax, 0x1f
jg 0x44751f
cmp eax, 0x13
jge 0x4476b5
cmp eax, 0x44
je 0x4476b5
cmp eax, 0x45
je 0x4476b5
cmp byte [0x4e9604], 0
mov eax, dword [ebp - 0x10]
je 0x447d77
push 0
push eax
push 0
push 0x4cdea8
push 0x4d7afc
mov ecx, 0x4e8f30
call fcn.0040c800
jmp 0x447e6d
mov eax, dword [ebp - 0x14]
inc edi
mov dword [ecx + 4], 3
mov ecx, dword [ebp - 0x20]
jmp 0x446d21
test edi, edi
je 0x4476b5
mov ecx, dword [ebx + edi*4 - 4]
mov eax, dword [ecx + 8]
cmp eax, 4
je 0x4475e5
cmp eax, 6
je 0x4475e5
cmp eax, 0x1f
jg 0x447599
cmp eax, 0x13
jge 0x4476b5
cmp eax, 0x44
je 0x4476b5
cmp eax, 0x45
je 0x4476b5
mov eax, dword [ebp - 0x2c]
mov eax, dword [eax + 4]
test eax, eax
mov ecx, 0x4cdea8
cmovne ecx, eax
cmp byte [0x4e9604], 0
mov eax, dword [ebp - 0x10]
je 0x447db7
push 0
push eax
push 0
push ecx
push 0x4d7a44
mov ecx, 0x4e8f30
call fcn.0040c800
jmp 0x447e6d
mov eax, dword [ebp - 0x14]
inc edi
mov dword [ecx + 4], 4
mov ecx, dword [ebp - 0x20]
jmp 0x446d21
lea eax, [edx - 0x13]
cmp eax, 0xc
ja 0x4476b5
mov eax, dword [ebp - 0x2c]
cmp dword [eax], 0
je 0x4476b5
cmp edx, 0x13
je 0x4476ae
add edx, 0xffffffec
cmp edx, 0xb
ja case.default.0x447621
jmp dword [edx*4 + 0x447ff8]
mov dword [ebp + 0xc], 0x38
jmp case.default.0x447621
mov dword [ebp + 0xc], 0x39
jmp case.default.0x447621
mov dword [ebp + 0xc], 0x3a
jmp case.default.0x447621
mov dword [ebp + 0xc], 0x3b
jmp case.default.0x447621
mov dword [ebp + 0xc], 0x37
jmp case.default.0x447621
mov dword [ebp + 0xc], 0x31
jmp case.default.0x447621
mov dword [ebp + 0xc], 0x32
jmp case.default.0x447621
mov dword [ebp + 0xc], 0x33
jmp case.default.0x447621
mov dword [ebp + 0xc], 0x34
jmp case.default.0x447621
mov dword [ebp + 0xc], 0x35
jmp case.default.0x447621
mov dword [ebp + 0xc], 0x36
jmp case.default.0x447621
mov dword [ebp + 0xc], 0x2f
mov eax, 0x10
call fcn.004b5610
mov ecx, dword [ebp + 0xc]
mov eax, esp
mov dword [ebx + edi*4], eax
inc edi
mov dword [eax + 8], ecx
mov eax, dword [ebp - 0x2c]
mov dword [ebx + edi*4], eax
mov dword [eax + 8], 0x46
mov ecx, dword [ebp - 0x20]
inc edi
mov eax, dword [ebp - 0x14]
jmp 0x446d21
cmp esi, dword [ebp - 0x1c]
jbe 0x4476ce
mov eax, dword [esi - 8]
mov dword [ebp + 0xc], eax
jmp 0x4476d5
mov dword [ebp + 0xc], 0x49
mov ecx, dword [esi + 0x18]
test edi, edi
je 0x4476e5
mov eax, dword [ebx + edi*4 - 4]
mov eax, dword [eax + 8]
jmp 0x4476ea
mov eax, 0x49
cmp edx, 0x1f
jg 0x4476f4
cmp edx, 0x13
jge 0x447746
cmp edx, 9
je 0x447746
cmp edx, 0xa
je 0x447746
mov eax, dword [ebp + 0xc]
cmp eax, 0xf
jl 0x447712
mov dword [ebp + 0xc], 0
cmp eax, 0x46
jne 0x447719
mov dword [ebp + 0xc], 1
lea eax, [edx - 0x3d]
cmp dword [ebp - 0x4c], eax
sbb eax, eax
inc eax
cmp dword [ebp + 0xc], eax
jne 0x447786
mov eax, dword [esi + 4]
mov ecx, 0x4cdea8
test eax, eax
cmovne ecx, eax
cmp byte [0x4e9604], 0
je 0x446df6
jmp 0x4469f6
cmp dword [esi], 0
jne 0x44777c
cmp eax, 4
je 0x447771
cmp eax, 6
je 0x447771
cmp eax, 0x1f
jg 0x44775f
cmp eax, 0x13
jge 0x44777c
cmp eax, 0x44
je 0x44777c
cmp eax, 0x45
je 0x44777c
mov eax, dword [esi + 4]
jmp 0x4475b1
mov eax, dword [ebx + edi*4 - 4]
mov dword [eax + 4], 4
cmp edx, 9
je 0x4477b2
cmp edx, 0xa
je 0x4477b2
cmp ecx, 8
jl 0x4477a6
cmp ecx, 0x46
je 0x4477a6
cmp ecx, 0x11
jg 0x44779a
cmp ecx, 0xf
jge 0x4477a6
lea eax, [ecx - 0x3d]
cmp eax, 8
ja 0x447e50
lea eax, [edx - 0x21]
cmp eax, 3
ja 0x4477b2
mov dword [ebx + edi*4], esi
inc edi
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x14]
mov dword [eax + ecx*4], esi
inc ecx
mov dword [ebp - 0x20], ecx
add esi, 0x10
jmp 0x446d1e
push 0
push eax
push 0x4cdea8
push 0
push 0x4d6b9c
jmp 0x447e68
push 0
push eax
push ecx
push 0
push 0x4d6b9c
jmp 0x447e63
cmp byte [0x4e9607], 0
je 0x447812
push dword [eax + 4]
movzx eax, word [eax + 2]
push eax
push 0x4cdea8
push 0x4d78e0
call fcn.0040c700
xor eax, eax
jmp 0x447e6d
push 0
push eax
push 0x4cdea8
push 0
push 0x4d78e0
jmp 0x447e68
cmp byte [0x4e9604], 0
mov ecx, 0x4e8f30
mov eax, dword [ebp - 0x10]
je 0x447850
push 0
push eax
push 0
push 0x4cdea8
push 0x4d7970
call fcn.0040c800
jmp 0x447e6d
cmp byte [0x4e9607], 0
je 0x447877
push dword [eax + 4]
movzx eax, word [eax + 2]
push eax
push 0x4cdea8
push 0x4d7970
call fcn.0040c700
xor eax, eax
jmp 0x447e6d
push 0
push eax
push 0x4cdea8
push 0
push 0x4d7970
jmp 0x447e68
cmp byte [0x4e9604], 0
mov ecx, 0x4e8f30
mov eax, dword [ebp - 0x10]
je 0x4478b5
push 0
push eax
push 0
push 0x4cdea8
push 0x4d7a14
call fcn.0040c800
jmp 0x447e6d
cmp byte [0x4e9607], 0
je 0x4478dc
push dword [eax + 4]
movzx eax, word [eax + 2]
push eax
push 0x4cdea8
push 0x4d7a14
call fcn.0040c700
xor eax, eax
jmp 0x447e6d
push 0
push eax
push 0x4cdea8
push 0
push 0x4d7a14
jmp 0x447e68
cmp byte [0x4e9604], 0
mov ecx, 0x4e8f30
mov eax, dword [ebp - 0x10]
je 0x44791a
push 0
push eax
push 0
push 0x4cdea8
push 0x4d79e4
call fcn.0040c800
jmp 0x447e6d
cmp byte [0x4e9607], 0
je 0x447941
push dword [eax + 4]
movzx eax, word [eax + 2]
push eax
push 0x4cdea8
push 0x4d79e4
call fcn.0040c700
xor eax, eax
jmp 0x447e6d
push 0
push eax
push 0x4cdea8
push 0
push 0x4d79e4
jmp 0x447e68
cmp byte [0x4e9604], 0
mov ecx, 0x4e8f30
mov eax, dword [ebp - 0x10]
je 0x44797f
push 0
push eax
push 0
push 0x4cdea8
push 0x4d79c4
call fcn.0040c800
jmp 0x447e6d
cmp byte [0x4e9607], 0
je 0x4479a6
push dword [eax + 4]
movzx eax, word [eax + 2]
push eax
push 0x4cdea8
push 0x4d79c4
call fcn.0040c700
xor eax, eax
jmp 0x447e6d
push 0
push eax
push 0x4cdea8
push 0
push 0x4d79c4
jmp 0x447e68
cmp byte [0x4e9604], 0
mov ecx, 0x4e8f30
mov eax, dword [ebp - 0x10]
je 0x4479e4
push 0
push eax
push 0
push 0x4cdea8
push 0x4d7938
call fcn.0040c800
jmp 0x447e6d
cmp byte [0x4e9607], 0
je 0x447a0b
push dword [eax + 4]
movzx eax, word [eax + 2]
push eax
push 0x4cdea8
push 0x4d7938
call fcn.0040c700
xor eax, eax
jmp 0x447e6d
push 0
push eax
push 0x4cdea8
push 0
push 0x4d7938
jmp 0x447e68
test edi, edi
jne 0x447a4d
mov eax, dword [ebp - 0x10]
cmp byte [eax + 1], 1
jbe 0x447a36
mov ecx, dword [ebp + 8]
mov ecx, dword [ecx + 8]
test ecx, ecx
jne 0x447a3b
mov ecx, 0x4cdea8
cmp byte [0x4e9604], 0
je 0x446df9
jmp 0x4469f9
mov ecx, dword [ebx]
mov edx, dword [ecx + 8]
cmp edi, 1
jne 0x447b4f
cmp edx, 8
jge 0x447b4f
mov eax, dword [ebp - 0x10]
mov al, byte [eax]
cmp al, 0xf
jb 0x447a75
cmp al, 0x11
jbe 0x447b4f
cmp al, 0x1a
je 0x447b4f
cmp al, 0x1b
je 0x447b4f
cmp al, 0x19
je 0x447b4f
cmp al, 6
je 0x447b4f
cmp edx, 4
jne 0x447aa4
cmp al, 0x15
je 0x447b4f
cmp edx, edx
ja 0x447b4f
jmp dword [edx*4 + 0x448028]
mov esi, dword [ebp + 8]
lea ecx, [edi + 1]
shl ecx, 4
call fcn.0047e400
test eax, eax
je 0x447e86
mov dword [esi + 0x10], eax
xor ecx, ecx
xor esi, esi
mov dword [ebp + 0xc], ecx
xor eax, eax
mov dword [ebp - 0x24], esi
mov dword [ebp - 0x2c], eax
test edi, edi
jle 0x447c8e
xor edx, edx
mov dword [ebp - 0x18], edx
mov ecx, dword [ebp + 8]
mov esi, dword [ecx + 0x10]
mov ecx, dword [ebx + eax*4]
add esi, edx
mov edx, dword [ecx]
mov eax, dword [ecx + 4]
mov dword [esi], edx
mov dword [esi + 4], eax
mov eax, dword [ecx + 8]
mov dword [esi + 8], eax
mov dword [ebp - 0x30], edx
cmp eax, 0x24
jg 0x447bd6
mov dword [ebp - 0x30], edx
cmp eax, 0x20
jl 0x447bd6
mov eax, dword [ebp - 0x2c]
lea ecx, [eax + 1]
cmp dword [ebx + eax*4 + 4], edx
je 0x447bc6
nop dword [eax + eax]
inc ecx
cmp dword [ebx + ecx*4], edx
jne 0x447bc0
mov eax, dword [ebp + 8]
shl ecx, 4
mov eax, dword [eax + 0x10]
add eax, ecx
mov dword [ebp - 0x30], eax
mov dword [esi], eax
mov edx, dword [esi + 8]
cmp edx, 8
jl 0x447be3
cmp edx, 0x46
jne 0x447c50
mov eax, dword [ebp + 0xc]
inc eax
mov dword [ebp - 0x3c], eax
mov ecx, eax
mov dword [ebp + 0xc], ecx
cmp edx, 4
jne 0x447c53
cmp dword [esi + 4], 3
mov dword [ebp + 0xc], ecx
jl 0x447c53
mov eax, dword [ebp - 0x30]
mov ecx, 0x4e8f30
push 3
push dword [eax + 0xc]
push dword [eax]
call fcn.00443c20
mov dword [esi], eax
test eax, eax
je 0x4467df
or byte [eax + 0x15], 4
cmp byte [eax + 0x17], 0
jne 0x447c2d
mov ecx, dword [eax + 0xc]
call fcn.004383d0
mov eax, dword [ebp + 8]
mov edx, dword [ebp - 0x3c]
mov ecx, edx
mov dword [ebp + 0xc], ecx
cmp byte [eax], 2
jne 0x447c53
mov ecx, dword [ebp + 8]
mov eax, dword [esi]
mov dword [ecx + 0xc], eax
mov byte [ecx + 1], 0
mov ecx, edx
mov dword [ebp + 0xc], ecx
jmp 0x447c53
mov ecx, dword [ebp + 0xc]
mov eax, dword [esi + 8]
cmp eax, 6
je 0x447c6a
cmp eax, 0x46
je 0x447c6a
cmp eax, 0x2f
je 0x447c6a
cmp eax, 0x40
jne 0x447c73
mov esi, dword [ebp - 0x24]
inc esi
mov dword [ebp - 0x24], esi
jmp 0x447c76
mov esi, dword [ebp - 0x24]
mov eax, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x18]
inc eax
add edx, 0x10
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x18], edx
cmp eax, edi
jl 0x447b84
mov edx, dword [ebp + 8]
add edi, edi
mov eax, dword [edx + 0x10]
mov dword [eax + edi*8 + 8], 0x49
mov eax, 1
mov dword [edx + 0x14], ecx
mov dword [edx + 0x18], esi
jmp 0x447e6d
mov eax, dword [edx + 4]
mov ecx, 0x4cdea8
test eax, eax
cmovne ecx, eax
cmp byte [0x4e9604], 0
mov eax, dword [ebp - 0x10]
je 0x447ce1
push 0
push eax
push 0
push ecx
push 0x4d7a90
mov ecx, 0x4e8f30
call fcn.0040c800
jmp 0x447e6d
cmp byte [0x4e9607], 0
je 0x447d09
push dword [eax + 4]
movzx eax, word [eax + 2]
push eax
push ecx
push 0x4d7a90
mov ecx, 0x4e8f30
call fcn.0040c700
xor eax, eax
jmp 0x447e6d
push 0
push eax
push ecx
push 0
push 0x4d7a90
jmp 0x447e63
mov eax, dword [eax]
test eax, eax
mov ecx, 0x4cdea8
cmovne ecx, eax
cmp byte [0x4e9604], 0
mov eax, dword [ebp - 0x10]
je 0x447d4b
push 0
push eax
push 0
push ecx
push 0x4d7a6c
mov ecx, 0x4e8f30
call fcn.0040c800
jmp 0x447e6d
cmp byte [0x4e9607], 0
je 0x447e58
push dword [eax + 4]
movzx eax, word [eax + 2]
push eax
push ecx
push 0x4d7a6c
mov ecx, 0x4e8f30
call fcn.0040c700
xor eax, eax
jmp 0x447e6d
cmp byte [0x4e9607], 0
mov ecx, 0x4e8f30
je 0x447da3
push dword [eax + 4]
movzx eax, word [eax + 2]
push eax
push 0x4cdea8
push 0x4d7afc
call fcn.0040c700
xor eax, eax
jmp 0x447e6d
push 0
push eax
push 0x4cdea8
push 0
push 0x4d7afc
jmp 0x447e68
cmp byte [0x4e9607], 0
je 0x447ddf
push dword [eax + 4]
movzx eax, word [eax + 2]
push eax
push ecx
push 0x4d7a44
mov ecx, 0x4e8f30
call fcn.0040c700
xor eax, eax
jmp 0x447e6d
push 0
push eax
push ecx
push 0
push 0x4d7a44
jmp 0x447e63
mov eax, dword [ebp - 0x2c]
mov ecx, 0x4cdea8
mov eax, dword [eax]
test eax, eax
cmovne ecx, eax
cmp byte [0x4e9604], 0
mov eax, dword [ebp - 0x10]
je 0x447e1e
push 0
push eax
push 0
push ecx
push 0x4d7ac8
mov ecx, 0x4e8f30
call fcn.0040c800
jmp 0x447e6d
cmp byte [0x4e9607], 0
je 0x447e43
push dword [eax + 4]
movzx eax, word [eax + 2]
push eax
push ecx
push 0x4d7ac8
mov ecx, 0x4e8f30
call fcn.0040c700
xor eax, eax
jmp 0x447e6d
push 0
push eax
push ecx
push 0
push 0x4d7ac8
jmp 0x447e63
mov eax, dword [esi + 4]
jmp 0x447d1b
push 0
push eax
push ecx
push 0
push 0x4d7a6c
mov ecx, 0x4e8f30
call fcn.0040d430
lea esp, [ebp - 0x278]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
call fcn.0040dba0
nop
sbb al, 0x5b
inc esp
add byte [eax + 0x5f], ch
inc esp
add byte [ecx + 0x5f], dh
inc esp
add byte [eax + 0x5600445d], al
pop ebx
inc esp
add byte [eax - 0x12ffbba5], dl
pop edx
inc esp
add byte [edi + 0x58], ah
inc esp
add byte [ebp + 0x5a], dh
inc esp
add bh, bl
pop eax
inc esp
add byte [esi + 0x5a], bh
inc esp
add byte [ecx + 0x5f], al
inc esp
add byte [eax], dh
pop ebp
inc esp
add byte [esp + ebx*2 + 0x5cc00044], ah
inc esp
add byte [eax - 0x63ffbba2], al
pop ebx
inc esp
add byte [ecx + 0x5c], al
inc esp
add byte [edi], al
pop esi
inc esp
add byte [ebp + 0x5c], cl
inc esp
add dl, dl
pop ebp
inc esp
add byte [eax + 0x2500445c], bl
pop esi
inc esp
add byte [ebp + 0x5f], bh
inc esp
add byte [eax], al
add dword [edi], edx
pop ss
add al, byte [ebx]
add dword [eax + 151521030], eax
pop ss
or dl, byte [edi]
pop ss
pop ss
pop ss
pop ss
pop ss
pop ss
pop ss
pop ss
pop ss
or edx, dword [edi]
or al, 13
push cs
movhps qword [edi], xmm2
pop ss
pop ss
pop ss
pop ss
pop ss
pop ss
pop ss
pop ss
pop ss
pop ss
pop ss
pop ss
pop ss
pop ss
pop ss
pop ss
pop ss
pop ss
pop ss
pop ss
pop ss
pop ss
pop ss
pop ss
pop ss
adc byte [edi], dl
adc dword [edx], edx
pop ss
pop ss
pop ss
pop ss
pop ss
pop ss
pop ss
pop ss
pop ss
pop ss
pop ss
pop ss
pop ss
pop ss
pop ss
pop ss
pop ss
pop ss
pop ss
pop ss
pop ss
pop ss
pop ss
pop ss
pop ss
pop ss
pop ss
pop ss
adc edx, dword [edx + 1787848214]
jo 4489107
add byte [esi + 0x6d], ch
inc esp
add byte [ebp + 0x4d00446f], dh
jo 0x447f9f
add byte [ebx - 0x56ffbb90], al
jno 0x447fa7
add byte [ebx + 0x4a00446f], cl
jno 0x447faf
add dh, cl
jno 0x447fb3
add byte [eax], al
add dword [ecx], eax
add dword [edx], eax
add eax, dword [ebx]
add dword [eax], ecx
or byte [eax], cl
or byte [eax], cl
or byte [eax], cl
or byte [eax], cl
or byte [eax], cl
or byte [eax], cl
add al, 8
or byte [eax], cl
or byte [eax], cl
or byte [eax], cl
or byte [eax], cl
or byte [eax], cl
or byte [eax], cl
or byte [eax], cl
or byte [eax], cl
or byte [eax], cl
or byte [eax], cl
or byte [eax], cl
or byte [eax], cl
add eax, 0x8080808
or byte [eax], cl
or byte [eax], cl
or byte [eax], cl
or byte [esi], al
or byte [eax], cl
or byte [eax], cl
push es
or byte [eax], cl
pop es
nop
out 0x74, eax
inc esp
add ah, ch
jge 0x447ffb
add cl, dl
je 0x447fff
add byte [edx + esi*2 + 0x44], al
add byte [eax], al
jne 0x448007
add byte [edx + 0x75], dh
inc esp
add byte [edx + 0x72], bl
inc esp
add al, bh
jne 0x448013
add byte [eax], al
add dword [eax], eax
add byte [eax], al
pop es
pop es
pop es
pop es
pop es
pop es
pop es
pop es
pop es
add al, byte [edi]
add eax, dword [edi]
pop es
pop es
pop es
pop es
pop es
pop es
pop es
pop es
pop es
pop es
pop es
pop es
pop es
pop es
add al, 7
pop es
pop es
add eax, 680527365
jbe 4489279
add byte [ecx], dh
jbe 0x448043
add byte [edx], bh
jbe 0x448047
add byte [ebx + 0x76], al
inc esp
add byte [esi + esi*2 + 0x44], cl
add byte [ebp + 0x76], dl
inc esp
add byte [esi + 0x76], bl
inc esp
add byte [edi + 0x76], ah
inc esp
add byte [eax + 0x76], dh
inc esp
add byte [ecx + 0x76], bh
inc esp
add byte [edx - 0x74ffbb8a], al
jbe 0x44806b
add byte [ebx + edi*2], dh
inc esp
add byte [ecx - 0x4effbb86], dh
jp 0x448077
add byte [edi + 0x7b], cl
inc esp
add byte [edx + 0x7b], al
inc esp
add ah, cl
int3
int3
sub esp, 0x828
add byte [eax], al
mov eax, dword [ebp + 8]
push ebx
push esi
push edi
mov eax, dword [eax + 0x14]
mov edi, ecx
shl eax, 2
mov dword [ebp - 8], edi
call fcn.004b53e0
mov eax, dword [ebp + 8]
mov ebx, esp
xor esi, esi
mov dword [ebp - 0x1c], ebx
mov edx, dword [eax + 0x10]
mov dword [ebp - 0x10], edx
cmp dword [edx + 8], 0x49
je 0x448755
adc byte [ecx + 0x7a83f055], cl
or byte [ecx + 0xf], cl
test ah, bl
push es
add byte [eax], al
nop dword [eax]
mov ecx, dword [edx + 8]
cmp ecx, 8
jge 0x4480bf
cmp ecx, 6
jne 0x4480b6
cmp esi, 1
jl 0x448407
mov eax, dword [ebx + esi*4 - 4]
mov ecx, dword [eax + 8]
cmp ecx, 3
je 0x448407
cmp ecx, 4
jne 0x4480b5
cmp dword [eax + 4], 2
je 0x448407
dec esi
mov dword [ebx + esi*4], edx
inc esi
jmp 0x4483c0
cmp ecx, 9
je 0x448394
cmp ecx, 0xa
je 0x448394
cmp ecx, 0x3d
jl 0x4480df
cmp ecx, 0x45
jle 0x448394
lea eax, [ecx - 0x20]
cmp eax, 4
ja 0x44811e
cmp esi, 1
jl 0x44847f
mov eax, dword [ebx + esi*4 - 4]
mov edx, dword [eax + 8]
cmp edx, 3
je 0x448107
cmp edx, 4
jne 0x448115
cmp dword [eax + 4], 2
jne 0x448115
cmp ecx, 0x20
je 0x448115
cmp ecx, 0x22
jne 0x44847f
mov edx, dword [ebp - 0x10]
dec esi
jmp 0x4483c0
cmp ecx, 0x12
jne 0x448151
cmp esi, 1
jl 0x4484aa
mov eax, dword [ebx + esi*4 - 4]
mov ecx, dword [eax + 8]
cmp ecx, 3
je 0x4484aa
cmp ecx, 4
jne 0x44814b
cmp dword [eax + 4], 2
je 0x4484aa
dec esi
jmp 0x4483c0
cmp ecx, 0x46
je 0x4481a7
cmp esi, 2
jl 0x4484aa
mov eax, dword [ebx + esi*4 - 4]
mov edx, dword [eax + 8]
cmp edx, 3
je 0x448176
cmp edx, 4
jne 0x44817f
cmp dword [eax + 4], 2
jne 0x44817f
cmp ecx, 0x13
jne 0x4484aa
mov eax, dword [ebx + esi*4 - 8]
mov ecx, dword [eax + 8]
cmp ecx, 3
je 0x4484aa
cmp ecx, 4
jne 0x44819e
cmp dword [eax + 4], 2
je 0x4484aa
mov edx, dword [ebp - 0x10]
dec esi
jmp 0x4483bc
mov ebx, dword [edx]
mov edi, dword [ebp - 0x1c]
mov dword [ebp - 0x14], esi
mov edx, dword [ebx + 0xc]
sub esi, edx
cmp dword [ebx + 4], 0
mov dword [ebp - 0x18], edx
lea eax, [edi + esi*4]
mov dword [ebp - 0xc], eax
jne 0x4481d1
mov eax, dword [ebx + 8]
and eax, 3
cmp al, 2
jne 0x4481d1
mov al, 1
jmp 0x4481d3
xor al, al
mov ecx, dword [ebx + 8]
and ecx, 0x20000
je 0x4481df
dec esi
test ecx, ecx
movzx eax, al
mov ecx, 0
cmove ecx, eax
mov dword [ebp - 0x20], ecx
test esi, esi
js 0x4484aa
mov ebx, dword [ebx]
test ebx, ebx
jne 0x448254
cmp esi, 1
jl 0x4484aa
mov eax, dword [edi + esi*4 - 4]
dec esi
mov ecx, dword [eax + 8]
cmp ecx, 5
jne 0x448217
mov eax, dword [eax]
jmp 0x448238
cmp ecx, 4
jne 0x448236
mov eax, dword [eax]
cmp byte [eax + 0x17], 0
jne 0x44822c
mov ecx, dword [eax + 0xc]
call fcn.004051b0
test byte [eax + 0x15], 0x40
je 0x448236
mov eax, dword [eax]
jmp 0x448238
xor eax, eax
push 0
push 0x4e6c78
push 0x4e6ccc
push 0
push eax
call fcn.004b5e18
mov edx, dword [ebp - 0x18]
add esp, 0x14
mov ebx, eax
mov ecx, dword [ebp - 0x10]
mov ecx, dword [ecx]
mov eax, dword [ecx + 8]
test eax, 0x40000
cmovne esi, dword [ebp - 0x14]
test ebx, ebx
je 0x448388
cmp byte [ebp - 0x20], 0
je 0x448388
shr eax, 0x10
and al, 1
je 0x448282
dec edx
mov dword [ebp - 0x18], edx
cmp edx, dword [ebx + 0x1c]
jge 0x44828f
test al, al
je 0x4484b8
cmp edx, dword [ebx + 0x18]
jle 0x44829e
cmp byte [ebx + 0x20], 0
je 0x44853a
push 0
push 0x4e6b68
push 0x4e6c78
push 0
push ebx
call fcn.004b5e18
add esp, 0x14
test eax, eax
je 0x4482be
mov edx, dword [eax + 0x28]
jmp 0x4482c0
xor edx, edx
mov eax, dword [ebp - 0x18]
xor edi, edi
mov dword [ebp - 0x14], edx
test eax, eax
jle 0x448355
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + edi*4]
mov eax, dword [eax + 8]
cmp eax, 3
je 0x448340
cmp eax, 0x40
jne 0x448349
mov eax, dword [ebx]
mov ecx, ebx
push edi
mov eax, dword [eax + 0x3c]
call eax
mov edx, dword [ebp - 0x14]
test al, al
je 0x448349
test edx, edx
je 0x44830f
cmp edx, 0x451a90
je 0x44830f
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + edi*4]
mov dword [eax + 4], 5
jmp 0x448325
mov ecx, dword [ebp - 0xc]
mov eax, dword [ecx + edi*4]
mov dword [eax + 4], 3
test edx, edx
jne 0x448325
mov eax, dword [ecx + edi*4]
mov dword [eax], ebx
mov eax, dword [ebp - 0xc]
mov ecx, dword [eax + edi*4]
mov eax, dword [ecx - 8]
cmp eax, 6
je 0x448338
cmp eax, 4
jne 0x448349
mov eax, dword [ecx + 4]
mov dword [ecx - 0xc], eax
jmp 0x448349
cmp edi, dword [ebx + 0x1c]
jl 0x4485bc
mov eax, dword [ebp - 0x18]
inc edi
cmp edi, eax
jl 0x4482d0
cmp edx, 0x41e410
jne 0x448388
test eax, eax
je 0x448388
mov ebx, dword [ebp - 0xc]
mov ecx, dword [ebx]
cmp dword [ecx + 8], 0
jne 0x448388
mov ecx, dword [ecx]
xor edx, edx
call fcn.0041e1f0
test eax, eax
je 0x448388
mov ecx, dword [ebx]
cdq
mov dword [ecx + 8], 1
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov ebx, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x10]
mov dword [ebx + esi*4], edx
inc esi
jmp 0x4483c0
cmp esi, 1
jl 0x4484aa
mov eax, dword [ebx + esi*4 - 4]
mov ecx, dword [eax + 8]
cmp ecx, 3
je 0x4484aa
cmp ecx, 4
jne 0x4483bc
cmp dword [eax + 4], 2
je 0x4484aa
mov dword [ebx + esi*4 - 4], edx
add edx, 0x10
mov dword [ebp - 0x10], edx
cmp dword [edx + 8], 0x49
jne 0x448080
cmp esi, 1
jne 0x448752
mov eax, dword [ebx]
mov ecx, dword [eax + 8]
cmp ecx, 3
je 0x4483f6
cmp ecx, 4
jne 0x448633
cmp dword [eax + 4], 2
jne 0x448633
mov edi, dword [ebp - 8]
cmp byte [edi], 1
jne 0x448755
jmp 0x448636
cmp byte [0x4e9604], 0
je 0x44843b
mov eax, dword [ebp - 8]
push 0
push eax
push 0
push 0x4cdea8
push 0x4d6b9c
mov ecx, 0x4e8f30
call fcn.0040c800
lea esp, [ebp - 0x834]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
cmp byte [0x4e9607], 0
mov ecx, 0x4e8f30
je 0x448474
mov edi, dword [ebp - 8]
push dword [edi + 4]
movzx eax, word [edi + 2]
push eax
push 0x4cdea8
push 0x4d6b9c
call fcn.0040c700
xor eax, eax
lea esp, [ebp - 0x834]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov eax, dword [ebp - 8]
push 0
push eax
jmp 0x44877b
cmp byte [0x4e9604], 0
jne 0x448410
cmp byte [0x4e9607], 0
mov ecx, 0x4e8f30
mov eax, dword [ebp - 8]
je 0x4484a2
push dword [eax + 4]
movzx eax, word [eax + 2]
jmp 0x448453
push 0
push eax
jmp 0x44877b
cmp byte [0x4e9604], 0
je 0x448488
jmp 0x448410
mov eax, dword [ebx + 0x14]
mov ecx, 0x4cdea8
test eax, eax
cmovne ecx, eax
cmp byte [0x4e9604], 0
mov eax, dword [ebp - 8]
je 0x4484f5
push 0
push eax
push 0
push ecx
push 0x4cfba8
mov ecx, 0x4e8f30
call fcn.0040c800
lea esp, [ebp - 0x834]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
cmp byte [0x4e9607], 0
je 0x448516
push dword [eax + 4]
movzx eax, word [eax + 2]
push eax
push ecx
push 0x4cfba8
mov ecx, 0x4e8f30
jmp 0x44845e
push 0
push eax
push ecx
push 0
push 0x4cfba8
mov ecx, 0x4e8f30
call fcn.0040d430
lea esp, [ebp - 0x834]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov eax, dword [ebx + 0x14]
mov ecx, 0x4cdea8
test eax, eax
cmovne ecx, eax
cmp byte [0x4e9604], 0
mov eax, dword [ebp - 8]
je 0x448577
push 0
push eax
push 0
push ecx
push 0x4d7b30
mov ecx, 0x4e8f30
call fcn.0040c800
lea esp, [ebp - 0x834]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
cmp byte [0x4e9607], 0
je 0x448598
push dword [eax + 4]
movzx eax, word [eax + 2]
push eax
push ecx
push 0x4d7b30
mov ecx, 0x4e8f30
jmp 0x44845e
push 0
push eax
push ecx
push 0
push 0x4d7b30
mov ecx, 0x4e8f30
call fcn.0040d430
lea esp, [ebp - 0x834]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
cmp byte [0x4e9604], 0
mov ecx, 0x4e8f30
mov eax, dword [ebp - 8]
je 0x4485f0
push 0
push eax
push 0
push 0x4cdea8
push 0x4d3b74
call fcn.0040c800
lea esp, [ebp - 0x834]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
cmp byte [0x4e9607], 0
je 0x448610
push dword [eax + 4]
movzx eax, word [eax + 2]
push eax
push 0x4cdea8
push 0x4d3b74
jmp 0x44845e
push 0
push eax
push 0x4cdea8
push 0
push 0x4d3b74
call fcn.0040d430
lea esp, [ebp - 0x834]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov edi, dword [ebp - 8]
mov eax, dword [ebp + 8]
mov esi, dword [eax + 0x10]
cmp dword [esi + 8], 0x49
je 0x44873e
cmp dword [esi + 8], 4
jne 0x448731
push dword [esi + 4]
mov ecx, edi
push dword [esi]
call fcn.0040d7f0
test eax, eax
je 0x448463
mov edi, dword [esi]
mov cl, byte [edi + 0x15]
mov al, cl
and al, 0xfe
cmp al, 2
jne 0x44872e
cmp dword [esi + 4], 0
jne 0x44872e
mov ebx, dword [0x4e380c]
test ebx, ebx
je 0x44872e
test cl, 1
jne 0x44872e
mov al, byte [edi + 0x16]
or cl, 1
and al, 0x42
mov byte [edi + 0x15], cl
cmp al, 2
jne 0x4486c5
push 0
push 0
push 0
push 1
push 0
push dword [edi + 0x18]
mov ecx, 0x4e8f30
call fcn.00443cc0
mov ecx, 0x4d1a78
test eax, eax
jne 0x4486ca
mov ecx, 0x4cdea8
movzx eax, byte [edi + 0x16]
test al, 2
je 0x4486ee
test al, 0x20
je 0x4486dd
mov eax, 0x4d1134
jmp 0x4486f3
test al, 0x10
mov edx, 0x4d1158
mov eax, 0x4d1144
cmove eax, edx
jmp 0x4486f3
mov eax, 0x4d1164
push ecx
push dword [edi + 0x18]
push eax
push 0x4d1aac
lea eax, [ebp - 0x824]
push 0x400
push eax
call fcn.004816a0
mov edi, dword [ebp - 8]
lea eax, [ebp - 0x824]
add esp, 0x18
mov ecx, 0x4e8f30
push edi
push eax
push 0x4d1ac0
push ebx
call fcn.0040e6f0
jmp 0x448731
mov edi, dword [ebp - 8]
add esi, 0x10
cmp dword [esi + 8], 0x49
jne 0x448646
mov eax, 1
lea esp, [ebp - 0x834]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov edi, dword [ebp - 8]
cmp byte [0x4e9604], 0
je 0x448766
push 0
push edi
jmp 0x448416
cmp byte [0x4e9607], 0
mov ecx, 0x4e8f30
jne 0x44844c
push 0
push edi
push 0x4cdea8
push 0
push 0x4d6b9c
call fcn.0040d430
lea esp, [ebp - 0x834]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4