Function at 0x40932a
Capabilities:
Encode data using base64
Parse credit card information

Disassembly:
push ebp
mov eax, 0x45cc
mov ebp, esp
push edi
push esi
push ebx
call fcn.00447e80
sub esp, eax
cmp dword [ebp + 0x14], 0
mov dword [ebp - 0x4514], 1
mov dword [ebp - 0x4510], 0
sete dl
cmp dword [ebp + 0x18], 0
sete al
xor ebx, ebx
or dl, al
jne 0x40d114
mov eax, dword [ebp + 0x14]
cmp dword [ebp + 8], 0
mov dword [eax], 0x64
mov eax, dword [ebp + 0x18]
mov dword [eax], 0
jne 0x40938e
mov eax, dword [ebp + 0x14]
mov dword [eax], 0x74
jmp 0x40d114
cmp dword [ebp + 0x1c], 0
jne 0x40939b
mov dword [ebp + 0x1c], 0x76e0e0
mov eax, dword [ebp + 0x10]
bt eax, 0x1a
jae 0x4093ab
or dword [ebp + 0x10], 0x80000
test dword [ebp + 0x10], 0x18000000
jne 0x4093c1
mov eax, dword [ebp + 0x1c]
mov eax, dword [eax + 0x24]
test eax, 0xffffffc0
je 0x4093cc
mov eax, dword [ebp + 0x14]
mov dword [eax], 0x75
jmp 0x409418
mov ebx, dword [ebp + 0x10]
and ebx, 0x2000000
je 0x4093f0
test dword [ebp + 0x10], 0x1976fef3
jne 0x4093e5
and eax, 0xfffffff3
je 0x4093f0
mov eax, dword [ebp + 0x14]
mov dword [eax], 0xc0
jmp 0x409418
cmp dword [ebp + 0xc], 0xffffffff
jne 0x409404
mov eax, dword [ebp + 8]
mov dword [esp], eax
call fcn.0043adb5
mov dword [ebp + 0xc], eax
mov eax, dword [ebp + 0x1c]
mov edi, dword [ebp + 0xc]
cmp dword [eax + 0x18], edi
jae 0x40941f
mov eax, dword [ebp + 0x14]
mov dword [eax], 0xbc
xor ebx, ebx
jmp 0x40d114
mov eax, dword [ebp + 0x1c]
mov eax, dword [eax + 0x14]
test eax, eax
mov dword [ebp - 0x4538], eax
jne 0x409439
mov dword [ebp - 0x4538], 0x78aac0
mov eax, dword [ebp - 0x4538]
mov edi, dword [ebp + 8]
mov dword [ebp - 0x4434], 0
mov dword [ebp - 0x43ec], 0
mov dword [ebp - 0x4438], 0
mov dword [ebp - 0x43f0], 0
mov dword [ebp - 0x44a4], eax
add eax, 0x100
mov dword [ebp - 0x4430], 0
mov dword [ebp - 0x44a0], eax
mov eax, dword [ebp - 0x4538]
mov dword [ebp - 0x4400], 0
mov dword [ebp - 0x4484], 0
mov dword [ebp - 0x4440], 0x14
mov dword [ebp - 0x4454], 0
add eax, 0x200
mov dword [ebp - 0x4450], 0
mov dword [ebp - 0x444c], 0
mov dword [ebp - 0x449c], eax
mov eax, dword [ebp - 0x4538]
mov dword [ebp - 0x4448], 0
mov dword [ebp - 0x43fc], 0
add eax, 0x340
mov dword [ebp - 0x4498], eax
mov eax, dword [ebp + 0x1c]
mov dword [ebp - 0x44a8], eax
mov eax, dword [ebp + 0xc]
add eax, eax
add eax, dword [ebp + 8]
mov dword [ebp - 0x4488], eax
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x443c], eax
lea eax, [ebp - 0x42f8]
mov dword [ebp - 0x4424], eax
lea eax, [ebp - 0x43e8]
mov dword [ebp - 0x4444], eax
lea eax, [ebp - 0x3ef8]
mov dword [ebp - 0x442c], eax
lea eax, [ebp - 0x2ef8]
mov dword [ebp - 0x4490], eax
mov dword [ebp - 0x448c], edi
mov dword [ebp - 0x4494], eax
mov dword [ebp - 0x4480], 0xbb8
xor eax, eax
mov dword [ebp - 0x4420], 0
mov dword [ebp - 0x441c], 0
mov dword [ebp + eax*4 - 0x447c], 0xffffffff
inc eax
cmp eax, 0xa
jne 0x409573
test ebx, ebx
mov dword [ebp - 0x454c], 0
mov ebx, 0
mov dword [ebp - 0x4550], 0
mov dword [ebp - 0x4544], 0
mov dword [ebp - 0x456c], 0xffffffff
mov dword [ebp - 0x4568], 0xffffffff
mov dword [ebp - 0x4578], 0xffffffff
jne 0x40976c
mov eax, dword [ebp + 0xc]
mov edx, dword [ebp + 8]
sub eax, ebx
mov dword [ebp - 0x451c], eax
lea eax, [ebx + ebx]
add edx, eax
cmp dword [ebp - 0x451c], 1
jbe 0x40976c
cmp word [edx], 0x28
jne 0x40976c
mov esi, dword [ebp + 8]
cmp word [esi + eax + 2], 0x2a
jne 0x40976c
lea edi, [ebx + 2]
mov esi, 0x739020
mov dword [ebp - 0x4520], edi
mov edi, dword [ebp + 8]
lea edx, [edi + eax + 4]
xor edi, edi
movzx eax, word [esi + 4]
mov ecx, dword [ebp - 0x451c]
sub ecx, 2
cmp ecx, eax
jb 0x409752
mov dword [esp + 8], eax
mov eax, dword [esi]
mov dword [esp], edx
mov dword [ebp - 0x4524], edx
mov dword [esp + 4], eax
call fcn.0043ad89
test eax, eax
mov edx, dword [ebp - 0x4524]
jne 0x409752
mov dx, word [esi + 6]
movzx ebx, word [esi + 4]
add ebx, dword [ebp - 0x4520]
cmp dx, 6
ja case.default.0x409673
movzx eax, dx
jmp dword [eax*4 + 0x76d784]
mov eax, dword [esi + 8]
or dword [ebp - 0x443c], eax
jmp case.default.0x409673
mov edi, dword [esi + 8]
or dword [ebp - 0x454c], edi
jmp case.default.0x409673
mov eax, dword [esi + 8]
or dword [ebp - 0x454c], 0x8000
mov dword [ebp - 0x4544], eax
jmp case.default.0x409673
mov eax, dword [esi + 8]
or dword [ebp - 0x454c], 0x4000
mov dword [ebp - 0x4550], eax
jmp case.default.0x409673
mov edi, dword [ebp + 8]
lea esi, [ebx + ebx]
add edi, esi
mov ax, word [edi]
sub eax, 0x30
cmp ax, 9
jbe 0x4096e6
mov dword [ebp - 0x4510], 0xa0
jmp 0x409720
xor eax, eax
mov edi, dword [ebp + 8]
movzx ecx, word [edi + ebx*2]
inc ebx
lea esi, [ecx - 0x30]
cmp si, 9
ja 0x409709
cmp eax, 0x19999998
ja 0x409709
imul eax, eax, 0xa
lea eax, [eax + ecx - 0x30]
jmp 0x4096e8
cmp cx, 0x29
je 0x409727
mov edi, dword [ebp + 8]
add ebx, ebx
mov dword [ebp - 0x4510], 0xa0
add edi, ebx
xor ebx, ebx
jmp 0x40d096
cmp dx, 4
je 0x409761
mov edi, dword [ebp - 0x4568]
cmp dx, 5
cmove edi, eax
cmove eax, dword [ebp - 0x456c]
mov dword [ebp - 0x4568], edi
mov dword [ebp - 0x456c], eax
jmp case.default.0x409673
inc edi
add esi, 0xc
cmp edi, 0x15
jne 0x40961d
jmp 0x40976c
mov dword [ebp - 0x4578], eax
jmp case.default.0x409673
mov edi, dword [ebp + 8]
mov eax, dword [ebp - 0x443c]
lea esi, [ebx + ebx]
add edi, esi
and eax, 0x80000
mov dword [ebp - 0x4574], eax
je 0x4097e7
mov eax, dword [ebp + 0x10]
bt eax, 0xc
jae 0x40979c
mov dword [ebp - 0x4510], 0xae
jmp 0x409720
mov eax, dword [ebp + 0x10]
bt eax, 0x1e
jae 0x4097bd
mov eax, dword [ebp + 0x1c]
test byte [eax + 0x24], 1
je 0x4097e7
mov dword [ebp - 0x4510], 0xbf
jmp 0x409720
mov eax, dword [ebp + 0x18]
mov dword [esp + 8], eax
mov eax, dword [ebp + 0xc]
mov dword [esp + 4], eax
mov eax, dword [ebp + 8]
mov dword [esp], eax
call fcn.0043c1e8
test eax, eax
mov dword [ebp - 0x4510], eax
je 0x4097a5
xor ebx, ebx
jmp 0x40d0a2
mov eax, dword [ebp - 0x443c]
and eax, 0x20800
cmp eax, 0x20800
jne 0x409808
mov dword [ebp - 0x4510], 0xaf
jmp 0x409720
cmp dword [ebp - 0x4550], 0
jne 0x40981e
mov eax, dword [ebp + 0x1c]
movzx eax, word [eax + 0x1c]
mov dword [ebp - 0x4550], eax
cmp dword [ebp - 0x4544], 0
jne 0x409834
mov eax, dword [ebp + 0x1c]
movzx eax, word [eax + 0x1e]
mov dword [ebp - 0x4544], eax
mov eax, dword [ebp - 0x4544]
mov dword [ebp - 0x4418], 0
dec eax
cmp eax, 5
ja case.default.0x40984a
jmp dword [eax*4 + 0x76d7a0]
mov dword [ebp - 0x4414], 1
mov word [ebp - 0x4408], 0xd
jmp 0x4098cd
mov dword [ebp - 0x4414], 1
mov word [ebp - 0x4408], 0xa
jmp 0x4098cd
mov dword [ebp - 0x4414], 1
mov word [ebp - 0x4408], 0
jmp 0x4098cd
mov dword [ebp - 0x4414], 2
mov dword [ebp - 0x4408], 0xa000d
jmp 0x4098cd
mov dword [ebp - 0x4418], 1
jmp 0x4098cd
mov dword [ebp - 0x4418], 2
jmp 0x4098cd
mov dword [ebp - 0x4510], 0x9c
jmp 0x409720
mov eax, dword [ebp + 0xc]
mov esi, dword [ebp + 0x1c]
sub eax, ebx
test byte [esi + 0x24], 0xc
je 0x4098de
add eax, 4
test byte [ebp + 0x10], 4
je 0x4098e8
inc eax
lea eax, [eax + eax*4]
cmp eax, 0x3ff
lea ebx, [eax*4 + 4]
jbe 0x409920
mov eax, dword [ebp + 0x1c]
mov eax, dword [eax + 8]
mov dword [esp], ebx
mov dword [esp + 4], eax
mov eax, dword [ebp + 0x1c]
call dword [eax]
test eax, eax
jne 0x40991a
mov eax, dword [ebp + 0x14]
mov dword [eax], 0x79
jmp 0x40d0b5
mov dword [ebp - 0x442c], eax
mov esi, dword [ebp - 0x442c]
mov dword [ebp - 0x450c], edi
mov dword [ebp - 0x4500], 0
lea eax, [esi + ebx]
mov dword [ebp - 0x4564], eax
mov dword [ebp - 0x4428], eax
mov eax, dword [ebp - 0x443c]
mov dword [ebp - 0x4528], eax
mov eax, dword [ebp - 0x44a8]
mov ebx, dword [ebp - 0x4528]
mov eax, dword [eax + 0x24]
mov dword [ebp - 0x44fc], 0
mov dword [ebp - 0x4554], eax
mov eax, dword [ebp - 0x4528]
and eax, 0x80000
mov dword [ebp - 0x453c], eax
xor eax, eax
and ebx, 4
setne al
mov dword [ebp - 0x457c], eax
mov eax, dword [ebp - 0x4488]
mov dword [ebp - 0x451c], eax
mov eax, dword [ebp - 0x4554]
and eax, 8
mov dword [ebp - 0x45a4], eax
je 0x4099b4
mov dword [esi], 0x80090000
jmp 0x4099c3
test byte [ebp - 0x4554], 4
je 0x4099cd
mov dword [esi], 0x80180005
mov dword [esi + 4], 0x801a0000
add esi, 8
mov eax, dword [ebp - 0x4528]
bt eax, 0x19
jae 0x409aaf
mov eax, dword [ebp - 0x450c]
cmp dword [ebp - 0x451c], eax
jbe 0x409a97
cmp dword [ebp - 0x4564], esi
ja 0x409a10
mov dword [ebp - 0x44fc], 0xa3
mov dword [ebp - 0x4560], 0
jmp 0x40c6de
lea edx, [eax + 2]
cmp dword [ebp - 0x453c], 0
mov dword [ebp - 0x450c], edx
movzx edx, word [eax]
mov ecx, edx
mov dword [ebp - 0x4508], edx
je 0x409a63
and cx, 0xfc00
cmp cx, 0xd800
jne 0x409a63
lea ecx, [eax + 4]
shl edx, 0xa
and edx, 0xffc00
mov dword [ebp - 0x450c], ecx
mov cx, word [eax + 2]
and ecx, 0x3ff
or edx, ecx
add edx, 0x10000
mov dword [ebp - 0x4508], edx
test ebx, ebx
je 0x409a86
lea edx, [ebp - 0x448c]
mov dword [esp], esi
mov ecx, 1
mov dword [esp + 4], edx
lea edx, [ebp - 0x4500]
call fcn.0040538a
mov esi, eax
mov eax, dword [ebp - 0x4508]
add esi, 4
mov dword [esi - 4], eax
jmp 0x4099dd
mov dword [ebp - 0x4560], 0
mov word [ebp - 0x452c], 0
jmp 0x40c659
mov ecx, dword [ebp - 0x4480]
xor edx, edx
mov ebx, 0xc
add ecx, ecx
mov eax, ecx
div ebx
mov eax, dword [ebp - 0x4528]
sub ecx, edx
add ecx, dword [ebp - 0x4494]
bt eax, 0x18
mov dword [ebp - 0x4580], ecx
jae 0x409ae6
or dword [ebp - 0x4528], 0x80
cmp dword [ebp - 0x453c], 0
mov dword [ebp - 0x455c], 0
mov dword [ebp - 0x4560], 0
mov dword [ebp - 0x4524], 0
mov dword [ebp - 0x4598], 0
mov dword [ebp - 0x4548], 0
setne byte [ebp - 0x4591]
movzx eax, byte [ebp - 0x4591]
xor edi, edi
xor ebx, ebx
mov dword [ebp - 0x4558], 0
mov dword [ebp - 0x4520], 0
mov dword [ebp - 0x4534], 0
mov word [ebp - 0x452c], 0
mov dword [ebp - 0x4570], 0
mov dword [ebp - 0x4584], 0
mov dword [ebp - 0x4530], eax
mov eax, dword [ebp - 0x450c]
cmp dword [ebp - 0x451c], eax
mov dword [ebp - 0x4540], eax
jbe 0x40c641
cmp dword [ebp - 0x4564], esi
jbe 0x40c6b6
mov edx, dword [ebp - 0x44a8]
movzx eax, word [ebp - 0x452c]
cmp eax, dword [edx + 0x20]
jbe 0x409bb7
mov dword [ebp - 0x44fc], 0x77
jmp 0x40c6de
mov eax, dword [ebp - 0x4540]
add eax, 2
cmp dword [ebp - 0x453c], 0
mov dword [ebp - 0x450c], eax
mov eax, dword [ebp - 0x4540]
movzx eax, word [eax]
mov ecx, eax
mov dword [ebp - 0x4508], eax
je 0x409c20
and cx, 0xfc00
cmp cx, 0xd800
jne 0x409c20
mov ecx, dword [ebp - 0x4540]
shl eax, 0xa
and eax, 0xffc00
add ecx, 4
mov dword [ebp - 0x450c], ecx
mov ecx, dword [ebp - 0x4540]
mov cx, word [ecx + 2]
and ecx, 0x3ff
or eax, ecx
add eax, 0x10000
mov dword [ebp - 0x4508], eax
cmp dword [ebp - 0x4558], 0
mov eax, dword [ebp - 0x4508]
je 0x409cdd
cmp eax, 0x5c
mov edx, dword [ebp - 0x450c]
jne 0x409c64
cmp dword [ebp - 0x451c], edx
jbe 0x409c64
cmp word [edx], 0x45
jne 0x409c64
add edx, 2
mov dword [ebp - 0x4558], 0
mov dword [ebp - 0x450c], edx
jmp 0x409b72
cmp dword [ebp - 0x4520], 0
jle 0x409c7b
sub edx, 2
mov dword [ebp - 0x450c], edx
jmp 0x40a197
cmp dword [ebp - 0x4548], 0
je 0x409c97
mov dword [esi], eax
mov eax, dword [ebp - 0x4548]
mov dword [ebp - 0x4558], eax
jmp 0x40a41d
mov eax, dword [ebp - 0x4534]
test eax, eax
lea ebx, [eax - 1]
jg 0x409cca
lea eax, [ebp - 0x448c]
mov ecx, dword [ebp - 0x457c]
lea edx, [ebp - 0x4500]
mov dword [esp], esi
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x4540]
call fcn.0040538a
mov esi, eax
mov eax, dword [ebp - 0x4508]
mov dword [ebp - 0x4534], ebx
mov dword [esi], eax
jmp 0x40a715
cmp dword [ebp - 0x4548], 0
je 0x409e62
mov ecx, dword [ebp - 0x4528]
and ecx, 0x400080
cmp ecx, 0x400080
jne 0x409d49
cmp eax, 0xff
jbe 0x409d1a
mov ecx, eax
or ecx, 1
cmp ecx, 0x200f
je 0x409d1a
cmp ecx, 0x2029
jne 0x409d53
cmp eax, 0xff
ja 0x409e62
cmp eax, 0x23
je 0x409e62
mov ecx, dword [ebp - 0x4498]
test byte [ecx + eax], 1
jne 0x409e62
cmp eax, 0x85
je 0x409e62
cmp eax, 0x29
je 0x409d5d
cmp eax, 0x5c
je 0x409dca
mov dword [esi], eax
add esi, 4
jmp 0x409b72
mov eax, dword [ebp - 0x450c]
mov edx, eax
sub edx, dword [ebp - 0x4598]
cmp edx, 0x20000
jle 0x409d8b
sub eax, 2
mov dword [ebp - 0x44fc], 0xb0
mov dword [ebp - 0x450c], eax
jmp 0x40c6de
mov eax, esi
sub eax, dword [ebp - 0x4584]
mov ecx, dword [ebp - 0x4584]
mov dword [ebp - 0x4548], 0
sar eax, 2
dec eax
cmp dword [ebp - 0x455c], 0
mov dword [ecx], eax
je 0x409b72
mov eax, dword [ebp - 0x455c]
mov dword [ebp - 0x455c], 0
mov dword [esi], eax
jmp 0x409d55
mov eax, dword [ebp - 0x4528]
bt eax, 0x16
jae 0x409e48
lea eax, [ebp - 0x44a8]
mov dword [esp + 0x18], 0
mov dword [esp + 0x1c], eax
mov eax, dword [edx + 0x24]
mov dword [esp + 0x14], eax
mov eax, dword [ebp - 0x4528]
mov dword [esp + 0x10], eax
lea eax, [ebp - 0x44fc]
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x4508]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x451c]
mov dword [esp + 4], eax
lea eax, [ebp - 0x450c]
mov dword [esp], eax
call fcn.004089dc
cmp dword [ebp - 0x44fc], 0
jne 0x40c6de
cmp eax, 0x19
je 0x409b72
cmp eax, 0x1a
je 0x40c626
test eax, eax
jne 0x409e53
mov eax, dword [ebp - 0x4508]
jmp 0x409d53
mov dword [ebp - 0x44fc], 0x8c
jmp 0x40c6de
cmp eax, 0x5c
jne 0x409e97
mov edx, dword [ebp - 0x450c]
cmp dword [ebp - 0x451c], edx
jbe 0x409e97
cmp word [edx], 0x51
sete cl
cmp word [edx], 0x45
je 0x409e86
test cl, cl
je 0x409e97
movzx eax, cl
add edx, 2
mov dword [ebp - 0x4558], eax
jmp 0x40a03c
test byte [ebp - 0x4528], 0x80
je 0x409fe9
cmp eax, 0xff
ja 0x409ec6
mov edx, dword [ebp - 0x4498]
test byte [edx + eax], 1
jne 0x409b72
cmp eax, 0x85
je 0x409b72
mov edx, eax
or edx, 1
cmp edx, 0x2029
je 0x409b72
cmp edx, 0x200f
je 0x409b72
cmp eax, 0x23
jne 0x409fe9
mov edx, dword [ebp - 0x450c]
cmp dword [ebp - 0x451c], edx
jbe 0x409b72
mov eax, dword [ebp - 0x4418]
mov ecx, dword [ebp - 0x4488]
test eax, eax
mov dword [ebp - 0x4540], eax
je 0x409f4b
xor eax, eax
cmp edx, ecx
jae 0x409f8b
mov eax, dword [ebp - 0x4530]
mov dword [esp + 8], ecx
mov dword [esp], edx
mov dword [esp + 0x10], eax
lea eax, [ebp - 0x4414]
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x4540]
mov dword [esp + 4], eax
call fcn.0043a410
test eax, eax
setne al
jmp 0x409f88
mov eax, dword [ebp - 0x4414]
mov dword [ebp - 0x4540], eax
add eax, eax
sub ecx, eax
xor eax, eax
cmp edx, ecx
ja 0x409f8b
mov ecx, dword [ebp - 0x4408]
cmp word [edx], cx
jne 0x409f8b
cmp dword [ebp - 0x4540], 1
mov eax, 1
je 0x409f8b
mov ax, word [ebp - 0x4406]
cmp word [edx + 2], ax
sete al
movzx eax, al
and eax, 1
mov edx, dword [ebp - 0x450c]
test al, al
je 0x409fa7
mov eax, dword [ebp - 0x4414]
add eax, eax
add edx, eax
jmp 0x40a03c
lea eax, [edx + 2]
cmp dword [ebp - 0x451c], eax
mov dword [ebp - 0x450c], eax
jbe 0x409eec
cmp byte [ebp - 0x4591], 0
je 0x409eec
mov ax, word [edx + 2]
and ax, 0xfc00
cmp ax, 0xdc00
jne 0x409eec
add edx, 4
mov dword [ebp - 0x450c], edx
jmp 0x409eec
cmp eax, 0x28
jne 0x40a047
mov edx, dword [ebp - 0x450c]
mov ecx, dword [ebp - 0x451c]
sub ecx, edx
cmp ecx, 2
jle 0x40a047
cmp word [edx], 0x3f
jne 0x40a047
cmp word [edx + 2], 0x23
jne 0x40a047
lea eax, [edx + 2]
cmp dword [ebp - 0x451c], eax
jbe 0x40a024
cmp word [edx + 2], 0x29
je 0x40a039
mov edx, eax
jmp 0x40a00e
mov dword [ebp - 0x450c], eax
mov dword [ebp - 0x44fc], 0x76
jmp 0x40c6de
add edx, 4
mov dword [ebp - 0x450c], edx
jmp 0x409b72
lea edx, [eax - 0x2a]
cmp edx, 1
jbe 0x40a0e1
cmp eax, 0x3f
je 0x40a0e1
cmp eax, 0x7b
je 0x40a0a5
mov eax, dword [ebp - 0x4534]
dec eax
cmp dword [ebp - 0x4534], 0
mov dword [ebp - 0x4588], eax
jg 0x40a0db
lea eax, [ebp - 0x448c]
mov ecx, dword [ebp - 0x457c]
lea edx, [ebp - 0x4500]
mov dword [esp], esi
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x4540]
call fcn.0040538a
mov esi, eax
mov eax, dword [ebp - 0x4588]
jmp 0x40a0db
mov eax, dword [ebp - 0x450c]
mov edx, dword [ebp - 0x451c]
xor ecx, ecx
mov dword [esp], 0
mov dword [ebp - 0x44ec], eax
lea eax, [ebp - 0x44fc]
mov dword [esp + 4], eax
lea eax, [ebp - 0x44ec]
call fcn.00403988
test eax, eax
je 0x40a061
jmp 0x40a0e1
mov dword [ebp - 0x4534], eax
cmp dword [ebp - 0x4520], 0
mov eax, dword [ebp - 0x4508]
jle 0x40a1a6
cmp eax, 0x28
mov ecx, dword [ebp - 0x450c]
jne 0x40a18e
mov edx, dword [ebp - 0x451c]
sub edx, ecx
cmp edx, 4
jle 0x40a18e
mov dx, word [ecx]
cmp dx, 0x3f
mov word [ebp - 0x4540], dx
je 0x40a126
cmp dx, 0x2a
jne 0x40a18e
cmp word [ebp - 0x4540], 0x2a
movzx edx, word [ecx + 2]
jne 0x40a147
cmp dx, 0xff
ja 0x40a18e
mov eax, dword [ebp - 0x4498]
test byte [eax + edx], 4
jmp 0x40a188
cmp dx, 0x3c
je 0x40a16f
ja 0x40a157
cmp dx, 0x21
je 0x40a1a6
jmp 0x40a18e
cmp dx, 0x3d
je 0x40a1a6
cmp dx, 0x43
jne 0x40a18e
cmp dword [ebp - 0x4520], 2
sete al
jmp 0x40a183
mov dx, word [ecx + 4]
cmp dx, 0x3d
sete al
cmp dx, 0x21
sete dl
or eax, edx
movzx eax, al
test eax, eax
jne 0x40b01f
sub ecx, 2
mov dword [ebp - 0x450c], ecx
mov dword [ebp - 0x44fc], pe_nt_image_headers32
jmp 0x40c6de
test edi, edi
je 0x40a1da
cmp eax, 0x3f
je 0x40a1b4
cmp eax, 0x2b
jne 0x40a1da
cmp eax, 0x3f
mov edx, 0x20000
mov eax, 0x10000
cmove eax, edx
xor edx, edx
cmp edi, 0x803d0000
setne dl
add edi, eax
mov dword [esi + edx*8 - 0xc], edi
jmp 0x40c609
cmp eax, 0x2e
je 0x40a6c0
ja 0x40a223
cmp eax, 0x29
je 0x40c53f
ja 0x40a207
cmp eax, 0x24
je 0x40a6b5
cmp eax, 0x28
jne 0x40a368
jmp 0x40b01f
cmp eax, 0x2a
je 0x40a71f
cmp eax, 0x2b
mov edi, 0x80370000
je 0x40a72b
jmp 0x40a368
cmp eax, 0x5c
je 0x40a267
ja 0x40a23d
cmp eax, 0x3f
je 0x40a25d
cmp eax, 0x5b
je 0x40a7a0
jmp 0x40a368
cmp eax, 0x7b
je 0x40a6cb
cmp eax, 0x7c
je 0x40c4e7
cmp eax, 0x5e
jne 0x40a368
jmp 0x40a6aa
mov edi, 0x803a0000
jmp 0x40a72b
mov eax, dword [ebp - 0x450c]
mov dword [esp + 0x18], 0
mov dword [ebp - 0x44ec], eax
lea eax, [ebp - 0x44a8]
mov dword [esp + 0x1c], eax
mov eax, dword [ebp - 0x44a8]
mov eax, dword [eax + 0x24]
mov dword [esp + 0x14], eax
mov eax, dword [ebp - 0x4528]
mov dword [esp + 0x10], eax
lea eax, [ebp - 0x44fc]
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x4508]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x451c]
mov dword [esp + 4], eax
lea eax, [ebp - 0x450c]
mov dword [esp], eax
call fcn.004089dc
mov ebx, eax
mov eax, dword [ebp - 0x44fc]
test eax, eax
mov dword [ebp - 0x4520], eax
je 0x40a35e
test byte [ebp - 0x4554], 2
je 0x40c6de
mov edx, dword [ebp - 0x44ec]
cmp dword [ebp - 0x451c], edx
mov dword [ebp - 0x450c], edx
ja 0x40a30b
mov dword [ebp - 0x4508], 0x5c
jmp 0x40a362
lea eax, [edx + 2]
cmp dword [ebp - 0x453c], 0
mov dword [ebp - 0x450c], eax
movzx eax, word [edx]
mov ecx, eax
mov dword [ebp - 0x4508], eax
je 0x40a362
and cx, 0xfc00
cmp cx, 0xd800
jne 0x40a362
lea ecx, [edx + 4]
mov dx, word [edx + 2]
shl eax, 0xa
and eax, 0xffc00
mov dword [ebp - 0x450c], ecx
and edx, 0x3ff
or eax, edx
add eax, 0x10000
mov dword [ebp - 0x4508], eax
jmp 0x40a362
test ebx, ebx
jne 0x40a374
mov eax, dword [ebp - 0x4508]
mov dword [esi], eax
xor edi, edi
add esi, 4
jmp 0x40bb45
jns 0x40a3cf
mov eax, dword [ebp - 0x450c]
sub eax, dword [ebp - 0x448c]
lea edx, [esi + 4]
sar eax, 1
dec eax
mov dword [ebp - 0x44e8], eax
mov eax, ebx
neg eax
mov ecx, eax
or ecx, 0x80030000
cmp ebx, 0xfffffff7
mov dword [esi], ecx
jl 0x40a3c4
add eax, 8
cmp dword [ebp + eax*4 - 0x449c], 0xffffffff
jne 0x40c5f5
mov ecx, dword [ebp - 0x44e8]
mov dword [ebp + eax*4 - 0x449c], ecx
jmp 0x40c5f5
mov eax, dword [ebp - 0x44e8]
jmp 0x40a51f
lea eax, [ebx - 6]
cmp eax, 0x16
ja case.0x40a3d7.13
jmp dword [eax*4 + 0x76d7b8]
mov edi, dword [ebp - 0x4528]
and edi, 0x100000
je 0x40a3fb
mov dword [ebp - 0x44fc], 0xb7
jmp 0x40a2de
mov dword [esi], 0x8018000e
jmp 0x40a717
sub ebx, 0x7fe80000
mov dword [esi], ebx
jmp 0x40a715
sub ebx, 0x7fe80000
mov dword [esi], ebx
xor ebx, ebx
xor edi, edi
jmp 0x409d55
mov edi, dword [ebp - 0x4528]
lea edx, [esi + 4]
and edi, 0x20000
jne 0x40a442
sub ebx, 0x7fe80000
mov dword [esi], ebx
jmp 0x40c5f7
mov eax, ebx
and eax, 0xfffffffd
cmp eax, 9
je 0x40a456
cmp ebx, 7
mov eax, 0x8018000f
jne 0x40a45b
mov eax, 0x80180010
mov dword [esi], eax
mov cl, bl
mov eax, 1
shl eax, cl
test ah, 0xc
jne 0x40a490
test ah, 3
jne 0x40a484
test al, 0xc0
je 0x40c5f5
mov dword [esi + 4], 0x3000d
jmp 0x40a522
mov dword [esi + 4], 0x60000
jmp 0x40a522
mov dword [esi + 4], 0x80000
jmp 0x40a522
lea eax, [ebp - 0x44a8]
lea ecx, [ebp - 0x4516]
lea edx, [ebp - 0x44e8]
mov word [ebp - 0x4516], 0
mov word [ebp - 0x44f0], 0
mov dword [esp + 8], eax
lea eax, [ebp - 0x44fc]
mov dword [esp + 4], eax
lea eax, [ebp - 0x44f0]
mov dword [esp], eax
lea eax, [ebp - 0x450c]
call fcn.007211a3
test eax, eax
je 0x40a2de
cmp dword [ebp - 0x44e8], 0
je 0x40a504
cmp ebx, 0xf
jne 0x40a4ff
mov ebx, 0x10
jmp 0x40a504
mov ebx, 0xf
movzx eax, word [ebp - 0x4516]
movzx edx, word [ebp - 0x44f0]
sub ebx, 0x7fe80000
mov dword [esi], ebx
shl eax, 0x10
or eax, edx
mov dword [esi + 4], eax
xor edi, edi
add esi, 8
jmp 0x40c5f9
mov eax, dword [ebp - 0x450c]
cmp dword [ebp - 0x451c], eax
jbe 0x40a54f
mov dx, word [eax]
cmp dx, 0x7b
je 0x40a56a
cmp dx, 0x3c
je 0x40a56a
cmp dx, 0x27
je 0x40a58a
cmp ebx, 0x1b
mov eax, 0xa9
mov edx, 0x9d
cmove eax, edx
mov dword [ebp - 0x44fc], eax
jmp 0x40a2de
cmp dx, 0x3c
mov edi, 0x3e
je 0x40a58f
cmp dx, 0x27
mov edx, 0x27
mov ecx, 0x7d
mov edi, edx
cmovne edi, ecx
jmp 0x40a58f
mov edi, 0x27
cmp ebx, 0x1b
jne 0x40a624
cmp edi, 0x7d
je 0x40a624
add eax, 2
mov ecx, dword [ebp - 0x4434]
mov edx, dword [ebp - 0x451c]
mov dword [ebp - 0x44e8], eax
lea eax, [ebp - 0x44fc]
mov dword [esp + 4], 0xa1
mov dword [esp], 0xffff
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x44f8]
mov dword [esp + 8], eax
lea eax, [ebp - 0x44e8]
call fcn.00403898
test eax, eax
je 0x40a617
mov eax, dword [ebp - 0x44e8]
cmp dword [ebp - 0x451c], eax
jbe 0x40a5fd
movzx edx, word [eax]
cmp edi, edx
je 0x40a60c
mov dword [ebp - 0x44fc], 0x9d
jmp 0x40a2de
mov dword [ebp - 0x450c], eax
jmp 0x40ba9f
cmp dword [ebp - 0x44fc], 0
jne 0x40a2de
lea eax, [ebp - 0x44a8]
mov ecx, dword [ebp - 0x4530]
mov edx, dword [ebp - 0x451c]
mov dword [esp], edi
mov dword [esp + 0x14], eax
lea eax, [ebp - 0x44fc]
mov dword [esp + 0x10], eax
lea eax, [ebp - 0x4504]
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x44f4]
mov dword [esp + 8], eax
lea eax, [ebp - 0x44e8]
mov dword [esp + 4], eax
lea eax, [ebp - 0x450c]
call fcn.00720f90
test eax, eax
je 0x40a2de
cmp ebx, 0x1c
je 0x40a687
cmp edi, 0x7d
mov eax, 0x80210000
jne 0x40a68c
mov eax, 0x80040000
mov dword [esi], eax
mov eax, dword [ebp - 0x4504]
xor edi, edi
add esi, 0xc
mov dword [esi - 8], eax
mov eax, dword [ebp - 0x44e8]
mov dword [esi - 4], eax
jmp 0x40c5f9
mov dword [esi], 0x80090000
jmp 0x40c535
mov dword [esi], 0x80160000
jmp 0x40c535
mov dword [esi], 0x80170000
jmp 0x40a36a
lea eax, [ebp - 0x44fc]
mov edx, dword [ebp - 0x451c]
lea ecx, [ebp - 0x44f0]
mov dword [esp + 4], eax
lea eax, [ebp - 0x44e8]
mov dword [esp], eax
lea eax, [ebp - 0x450c]
call fcn.00403988
test eax, eax
jne 0x40a726
mov eax, dword [ebp - 0x44fc]
test eax, eax
mov dword [ebp - 0x4520], eax
jne 0x40c6de
mov eax, dword [ebp - 0x4508]
mov dword [esi], eax
xor edi, edi
add esi, 4
jmp 0x40c5f9
mov edi, 0x80340000
jmp 0x40a72b
mov edi, 0x803d0000
test ebx, ebx
jne 0x40a73e
mov dword [ebp - 0x44fc], 0x6d
jmp 0x40c635
cmp dword [esi - 4], 0x802a0000
mov eax, esi
jne 0x40a774
lea eax, [esi - 4]
cmp eax, dword [ebp - 0x4570]
jb 0x40a75e
mov edx, dword [eax]
sub eax, 4
mov dword [eax + 8], edx
jmp 0x40a74c
mov eax, dword [ebp - 0x4570]
mov dword [eax], 0x801a0000
lea eax, [esi + 8]
mov dword [esi + 4], 0x80190000
mov dword [eax], edi
cmp dword [ebp - 0x4508], 0x7b
lea esi, [eax + 4]
jne 0x40c615
mov edx, dword [ebp - 0x44f0]
lea esi, [eax + 0xc]
mov dword [eax + 4], edx
mov edx, dword [ebp - 0x44e8]
mov dword [eax + 8], edx
jmp 0x40c615
mov eax, dword [ebp - 0x450c]
mov edx, dword [ebp - 0x451c]
sub edx, eax
cmp edx, 0xa
jle 0x40a86d
mov dword [esp + 8], 6
mov dword [esp + 4], 0x76d760
mov dword [esp], eax
call fcn.0043ad89
test eax, eax
jne 0x40a7f2
mov eax, dword [ebp - 0x450c]
mov dword [esi], 0x80180005
cmp word [eax + 4], 0x3c
jne 0x40a816
lea eax, [esi + 8]
mov dword [esi + 4], 0x80230000
jmp 0x40a831
mov eax, dword [ebp - 0x450c]
mov dword [esp + 8], 6
mov dword [esp + 4], str._:_:__
mov dword [esp], eax
call fcn.0043ad89
test eax, eax
je 0x40a7d3
jmp 0x40a86d
lea eax, [esi + 0xc]
mov dword [esi + 4], 0x80250000
mov dword [esi + 8], 0
mov dword [ebp - 0x4560], 1
mov esi, dword [ebp - 0x4528]
bt esi, 0x11
jb 0x40a848
lea edx, [eax + 4]
mov dword [eax], 0x8018000b
jmp 0x40a858
lea edx, [eax + 8]
mov dword [eax], 0x80180010
mov dword [eax + 4], 0x80000
mov dword [edx], 0x80190000
lea esi, [edx + 4]
add dword [ebp - 0x450c], 0xc
jmp 0x40b018
mov eax, dword [ebp - 0x450c]
cmp dword [ebp - 0x451c], eax
ja 0x40a882
xor ebx, ebx
jmp 0x40a9ca
mov di, word [eax]
lea edx, [edi - 0x2e]
cmp dx, 0xf
ja 0x40a8ce
mov ecx, 0x9001
bt ecx, edx
jae 0x40a8ce
mov edx, dword [ebp - 0x451c]
lea ecx, [ebp - 0x44ec]
call fcn.00403a9e
test eax, eax
je 0x40a8ce
mov eax, dword [ebp - 0x450c]
cmp word [eax], 0x3a
lea edx, [eax - 2]
mov dword [ebp - 0x450c], edx
setne al
movzx eax, al
add eax, 0x70
jmp 0x40b1dd
xor ebx, ebx
mov edx, dword [ebp - 0x450c]
cmp dword [ebp - 0x451c], edx
jbe 0x40a9ca
lea eax, [edx + 2]
cmp dword [ebp - 0x453c], 0
mov dword [ebp - 0x450c], eax
movzx eax, word [edx]
mov ecx, eax
mov dword [ebp - 0x4508], eax
je 0x40a933
and cx, 0xfc00
cmp cx, 0xd800
jne 0x40a933
lea ecx, [edx + 4]
mov dx, word [edx + 2]
shl eax, 0xa
and eax, 0xffc00
mov dword [ebp - 0x450c], ecx
and edx, 0x3ff
or eax, edx
add eax, 0x10000
mov dword [ebp - 0x4508], eax
mov eax, dword [ebp - 0x4508]
cmp eax, 0x5c
jne 0x40a995
mov eax, dword [ebp - 0x450c]
cmp dword [ebp - 0x451c], eax
jbe 0x40a960
cmp word [eax], 0x45
jne 0x40a960
add eax, 2
mov dword [ebp - 0x450c], eax
jmp 0x40a8d0
mov edx, dword [ebp - 0x451c]
sub edx, eax
cmp edx, 4
jle 0x40a9ca
mov dword [esp + 8], 3
mov dword [esp + 4], 0x76d76e
mov dword [esp], eax
call fcn.0043ad89
test eax, eax
jne 0x40a9ca
add dword [ebp - 0x450c], 6
jmp 0x40a8d0
mov edi, dword [ebp - 0x4528]
bt edi, 0x18
jae 0x40a9b3
cmp eax, 0x20
je 0x40a8d0
cmp eax, 9
je 0x40a8d0
test ebx, ebx
jne 0x40a9ca
cmp eax, 0x5e
jne 0x40a87b
mov ebx, 1
jmp 0x40a8d0
cmp ebx, 1
sbb eax, eax
cmp dword [ebp - 0x4508], 0x5d
jne 0x40a9ee
test byte [ebp - 0x443c], 1
je 0x40a9ee
xor ax, ax
sub eax, 0x7ff40000
jmp 0x40a368
and eax, 0xfffc0000
lea ebx, [esi + 4]
mov dword [ebp - 0x4520], 0
sub eax, 0x7ff20000
xor edi, edi
mov dword [esi], eax
cmp dword [ebp - 0x4520], 0
mov edx, dword [ebp - 0x4508]
mov eax, dword [ebp - 0x450c]
je 0x40aa55
cmp edx, 0x5c
jne 0x40acb9
cmp dword [ebp - 0x451c], eax
jbe 0x40acb9
cmp word [eax], 0x45
jne 0x40acb9
add eax, 2
mov dword [ebp - 0x4520], 0
mov dword [ebp - 0x450c], eax
jmp 0x40af7d
mov esi, dword [ebp - 0x4528]
bt esi, 0x18
jae 0x40aa73
cmp edx, 0x20
je 0x40af7d
cmp edx, 9
je 0x40af7d
cmp edx, 0x5b
jne 0x40ab8f
mov edx, dword [ebp - 0x451c]
sub edx, eax
cmp edx, 4
jle 0x40ab8f
mov si, word [eax]
lea edx, [esi - 0x2e]
cmp dx, 0xf
ja 0x40ab8f
mov ecx, 0x9001
bt ecx, edx
jae 0x40ab8f
mov edx, dword [ebp - 0x451c]
lea ecx, [ebp - 0x44ec]
call fcn.00403a9e
test eax, eax
je 0x40ab8f
dec edi
mov eax, dword [ebp - 0x450c]
je 0x40aef9
cmp word [eax], 0x3a
je 0x40aae6
mov dword [ebp - 0x44fc], 0x71
jmp 0x40c635
xor edi, edi
cmp word [eax + 2], 0x5e
lea edx, [eax + 2]
mov dword [ebp - 0x450c], edx
jne 0x40ab06
add eax, 4
mov edi, 1
mov dword [ebp - 0x450c], eax
mov ecx, dword [ebp - 0x450c]
mov eax, dword [ebp - 0x44ec]
xor esi, esi
mov dword [ebp - 0x4540], 0x76db00
sub eax, ecx
sar eax, 1
mov dword [ebp - 0x4588], eax
movzx eax, byte [esi + 0x76dae8]
test al, al
je 0x40d0bc
cmp dword [ebp - 0x4588], eax
mov dword [ebp - 0x458c], eax
je 0x40ab5e
mov edx, dword [ebp - 0x4540]
mov eax, dword [ebp - 0x458c]
inc esi
lea eax, [edx + eax + 1]
mov dword [ebp - 0x4540], eax
jmp 0x40ab28
mov eax, dword [ebp - 0x4588]
mov dword [esp], ecx
mov dword [ebp - 0x4590], ecx
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x4540]
mov dword [esp + 4], eax
call fcn.0043ad89
test eax, eax
mov ecx, dword [ebp - 0x4590]
jne 0x40ab45
jmp 0x40af14
mov eax, dword [ebp - 0x4508]
cmp eax, 0x2d
jne 0x40abc3
cmp edi, 1
jbe 0x40d104
cmp edi, 3
mov eax, 0x801e0000
mov edx, 0x801f0000
cmove eax, edx
mov edi, 1
add ebx, 4
mov dword [ebx - 4], eax
jmp 0x40af7d
cmp eax, 0x5c
jne 0x40acb9
mov eax, dword [ebp - 0x450c]
mov dword [esp + 0x18], 1
mov dword [ebp - 0x44ec], eax
lea eax, [ebp - 0x44a8]
mov dword [esp + 0x1c], eax
mov eax, dword [ebp - 0x44a8]
mov eax, dword [eax + 0x24]
mov dword [esp + 0x14], eax
mov eax, dword [ebp - 0x4528]
mov dword [esp + 0x10], eax
lea eax, [ebp - 0x44fc]
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x4508]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x451c]
mov dword [esp + 4], eax
lea eax, [ebp - 0x450c]
mov dword [esp], eax
call fcn.004089dc
cmp dword [ebp - 0x44fc], 0
mov esi, eax
je 0x40ad34
test byte [ebp - 0x4554], 2
je 0x40c6de
mov edx, dword [ebp - 0x44ec]
cmp dword [ebp - 0x451c], edx
mov dword [ebp - 0x450c], edx
ja 0x40acd6
mov dword [ebp - 0x4508], 0x5c
dec edi
mov edi, 2
jne 0x40acc5
xor eax, eax
mov esi, dword [ebp - 0x4508]
cmp dword [ebx - 8], esi
jne 0x40ac84
sub ebx, 4
jmp 0x40af7b
jbe 0x40ac95
mov dword [ebp - 0x44fc], 0x6c
jmp 0x40c635
test eax, eax
jne 0x40aca9
cmp dword [ebx - 4], 0x801f0000
jne 0x40aca9
mov dword [ebx - 4], 0x801e0000
mov eax, dword [ebp - 0x4508]
mov dword [ebx], eax
add ebx, 4
jmp 0x40af7b
dec edi
je 0x40d10a
mov edi, 3
mov eax, dword [ebp - 0x4508]
add ebx, 4
mov dword [ebx - 4], eax
jmp 0x40af7d
lea eax, [edx + 2]
cmp dword [ebp - 0x453c], 0
mov dword [ebp - 0x450c], eax
movzx eax, word [edx]
mov ecx, eax
mov dword [ebp - 0x4508], eax
je 0x40ac67
and cx, 0xfc00
cmp cx, 0xd800
jne 0x40ac67
lea ecx, [edx + 4]
mov dx, word [edx + 2]
shl eax, 0xa
and eax, 0xffc00
mov dword [ebp - 0x450c], ecx
and edx, 0x3ff
or eax, edx
add eax, 0x10000
mov dword [ebp - 0x4508], eax
jmp 0x40ac67
cmp eax, 0x11
je case.0x40ad94.13
jg 0x40ad56
cmp eax, 4
je case.0x40ad94.13
cmp eax, 5
je 0x40ad72
test eax, eax
jne 0x40ad81
jmp 0x40ac67
cmp eax, 0x19
je 0x40af7d
cmp eax, 0x1a
je 0x40af08
cmp eax, 0x16
jne 0x40ad81
jmp case.0x40ad94.13
mov dword [ebp - 0x4508], 8
jmp 0x40ac67
dec edi
je 0x40aef9
lea eax, [esi - 6]
cmp eax, 0xf
ja case.0x40ad94.13
jmp dword [eax*4 + 0x76d814]
mov dword [ebp - 0x44fc], 0xab
jmp 0x40c6de
sub esi, 0x7fe80000
add ebx, 4
mov dword [ebx - 4], esi
jmp 0x40aecd
mov eax, dword [ebp - 0x4528]
lea edx, [ebx + 4]
bt eax, 0x11
jb 0x40add7
sub esi, 0x7fe80000
mov dword [ebx], esi
jmp 0x40aecb
mov eax, esi
and eax, 0xfffffffd
cmp eax, 9
je 0x40adeb
cmp esi, 7
mov eax, 0x8018000f
jne 0x40adf0
mov eax, 0x80180010
mov dword [ebx], eax
mov ecx, esi
mov eax, 1
shl eax, cl
test ah, 0xc
jne 0x40ae25
test ah, 3
jne 0x40ae19
test al, 0xc0
je 0x40aecb
mov dword [ebx + 4], 0x3000d
jmp 0x40aeb7
mov dword [ebx + 4], 0x60000
jmp 0x40aeb7
mov dword [ebx + 4], 0x80000
jmp 0x40aeb7
lea eax, [ebp - 0x44a8]
lea ecx, [ebp - 0x4516]
lea edx, [ebp - 0x44e8]
mov word [ebp - 0x4516], 0
mov word [ebp - 0x44f0], 0
mov dword [esp + 8], eax
lea eax, [ebp - 0x44fc]
mov dword [esp + 4], eax
lea eax, [ebp - 0x44f0]
mov dword [esp], eax
lea eax, [ebp - 0x450c]
call fcn.007211a3
test eax, eax
je 0x40c6de
cmp dword [ebp - 0x44e8], 0
je 0x40ae99
cmp esi, 0xf
jne 0x40ae94
mov esi, 0x10
jmp 0x40ae99
mov esi, 0xf
movzx eax, word [ebp - 0x4516]
movzx edx, word [ebp - 0x44f0]
sub esi, 0x7fe80000
mov dword [ebx], esi
shl eax, 0x10
or eax, edx
mov dword [ebx + 4], eax
add ebx, 8
jmp 0x40aecd
mov dword [ebp - 0x44fc], 0x6b
jmp 0x40c635
mov ebx, edx
mov esi, dword [ebp - 0x451c]
mov eax, dword [ebp - 0x450c]
lea edx, [esi - 2]
cmp eax, edx
jae 0x40af7b
cmp word [eax], 0x2d
jne 0x40af7b
cmp word [eax + 2], 0x5d
je 0x40af7b
mov dword [ebp - 0x44fc], 0x96
jmp 0x40c6de
mov dword [ebp - 0x4520], 1
jmp 0x40af7d
mov eax, dword [ebp - 0x44ec]
mov ecx, dword [ebp - 0x451c]
lea edx, [eax + 4]
sub ecx, 2
cmp edx, ecx
mov dword [ebp - 0x450c], edx
jae 0x40af3b
cmp word [eax + 4], 0x2d
je 0x40d0cb
mov eax, dword [ebp - 0x4528]
bt eax, 0x11
jae 0x40d0ed
lea edx, [esi + esi]
mov eax, dword [edx*4 + 0x76d9c0]
mov edx, dword [edx*4 + 0x76d9c4]
test eax, eax
js 0x40d0db
neg edi
shl eax, 0x10
mov ecx, edi
or edx, eax
sub ecx, 0x7fe7fff0
mov dword [ebx + 4], edx
mov dword [ebx], ecx
add ebx, 8
xor edi, edi
mov edx, dword [ebp - 0x450c]
cmp dword [ebp - 0x451c], edx
ja 0x40af9a
mov dword [ebp - 0x44fc], 0x6a
jmp 0x40c6de
lea eax, [edx + 2]
cmp dword [ebp - 0x453c], 0
mov dword [ebp - 0x450c], eax
movzx eax, word [edx]
mov ecx, eax
mov dword [ebp - 0x4508], eax
je 0x40afeb
and cx, 0xfc00
cmp cx, 0xd800
jne 0x40afeb
lea ecx, [edx + 4]
mov dx, word [edx + 2]
shl eax, 0xa
and eax, 0xffc00
mov dword [ebp - 0x450c], ecx
and edx, 0x3ff
or eax, edx
add eax, 0x10000
mov dword [ebp - 0x4508], eax
cmp dword [ebp - 0x4508], 0x5d
jne 0x40aa09
cmp dword [ebp - 0x4520], 0
jne 0x40aa09
dec edi
jne 0x40b00f
mov dword [ebx - 4], 0x2d
lea esi, [ebx + 4]
mov dword [ebx], 0x800d0000
xor edi, edi
jmp 0x40bb45
mov eax, dword [ebp - 0x450c]
cmp dword [ebp - 0x451c], eax
jbe 0x40c6d4
mov dx, word [eax]
cmp dx, 0x3f
je 0x40b4c5
cmp dx, 0x2a
je 0x40b088
mov edi, dword [ebp - 0x4528]
inc word [ebp - 0x452c]
and edi, 0x2000
jne 0x40b07d
mov eax, dword [ebp - 0x4434]
cmp eax, 0xfffe
ja 0x40c2ea
inc eax
mov dword [ebp - 0x4434], eax
or eax, 0x80080000
mov dword [esi], eax
jmp 0x40c537
mov dword [esi], 0x801a0000
jmp 0x40c535
mov edx, dword [ebp - 0x451c]
sub edx, eax
cmp edx, 2
jle 0x40c609
movzx eax, word [eax + 2]
cmp eax, 0x29
mov dword [ebp - 0x4508], eax
je 0x40c609
cmp eax, 0xff
ja 0x40b2f3
mov edx, dword [ebp - 0x4498]
test byte [edx + eax], 4
je 0x40b2f3
lea eax, [ebp - 0x44a8]
mov ecx, dword [ebp - 0x4530]
mov edx, dword [ebp - 0x451c]
mov dword [esp], 0
mov dword [esp + 0x14], eax
lea eax, [ebp - 0x44fc]
mov dword [esp + 0x10], eax
lea eax, [ebp - 0x4504]
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x44f4]
mov dword [esp + 8], eax
lea eax, [ebp - 0x44e8]
mov dword [esp + 4], eax
lea eax, [ebp - 0x450c]
call fcn.00720f90
test eax, eax
je 0x40c6de
mov eax, dword [ebp - 0x450c]
cmp dword [ebp - 0x451c], eax
jbe 0x40b19b
cmp word [eax], 0x3a
jne 0x40b19b
mov dword [ebp - 0x44f8], 0
mov ebx, 0x76dc20
mov eax, dword [ebp - 0x44f8]
cmp eax, 0x10
jg 0x40b190
mov eax, dword [eax*8 + 0x76db80]
cmp eax, dword [ebp - 0x4504]
je 0x40b176
mov eax, dword [ebp - 0x44f8]
mov edx, dword [eax*8 + 0x76db80]
inc eax
mov dword [ebp - 0x44f8], eax
lea ebx, [ebx + edx + 1]
jmp 0x40b142
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x44f4]
mov dword [esp + 4], ebx
mov dword [esp], eax
call fcn.0043ad89
test eax, eax
jne 0x40b15c
mov eax, dword [ebp - 0x44f8]
cmp eax, 0x10
jle 0x40b1aa
mov dword [ebp - 0x44fc], 0xc3
jmp 0x40c6de
cmp dword [ebp - 0x4520], 0
mov eax, dword [eax*8 + 0x76db84]
jle 0x40b1e8
lea edx, [eax + 0x7fdd0000]
cmp edx, 0x30000
jbe 0x40b1e8
add eax, 0x7fd90000
and eax, 0xfffeffff
cmp eax, 1
sbb eax, eax
and eax, 0x46
sub eax, 0xffffff80
mov dword [ebp - 0x44fc], eax
jmp 0x40c6de
cmp eax, 0x80250000
je 0x40b259
ja 0x40b21f
cmp eax, 0x80220000
je 0x40b26a
ja 0x40b207
cmp eax, 0x80020000
je 0x40c168
jmp 0x40b23f
cmp eax, 0x80230000
je 0x40c181
cmp eax, 0x80240000
je 0x40c193
jmp 0x40b23f
cmp eax, 0x80270000
je 0x40b24e
ja 0x40b231
cmp eax, 0x80260000
je 0x40b259
jmp 0x40b23f
cmp eax, 0x80280000
je 0x40b259
cmp eax, 0x8fff0000
je 0x40b26a
mov dword [ebp - 0x44fc], 0xbd
jmp 0x40c6de
mov dword [esi], 0x80270000
jmp 0x40c187
mov dword [esi], eax
lea edx, [esi + 4]
sub dword [ebp - 0x450c], 2
jmp 0x40c1d6
mov dword [esi], 0x80220000
inc word [ebp - 0x452c]
lea edx, [esi + 4]
add dword [ebp - 0x450c], 2
cmp eax, 0x8fff0000
jne 0x40c603
cmp dword [ebp - 0x4524], 0
lea eax, [esi + 8]
mov dword [esi + 4], 0x80020000
jne 0x40b2ad
mov esi, dword [ebp - 0x4494]
mov dword [ebp - 0x4524], esi
jmp 0x40b2c6
add dword [ebp - 0x4524], 0xc
mov edi, dword [ebp - 0x4524]
cmp dword [ebp - 0x4580], edi
jbe 0x40c247
mov edx, dword [ebp - 0x4528]
mov esi, dword [ebp - 0x4524]
mov edi, dword [ebp - 0x452c]
and edx, 0x10424e8
mov word [esi + 6], 4
mov word [esi], di
mov dword [esi + 8], edx
xor edi, edi
mov esi, eax
jmp 0x40c615
lea eax, [ebp - 0x44a8]
mov ecx, dword [ebp - 0x4530]
mov edx, dword [ebp - 0x451c]
mov dword [esp], 0
mov dword [esp + 0x14], eax
lea eax, [ebp - 0x44fc]
mov dword [esp + 0x10], eax
lea eax, [ebp - 0x4504]
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x44f4]
mov dword [esp + 8], eax
lea eax, [ebp - 0x44e8]
mov dword [esp + 4], eax
lea eax, [ebp - 0x450c]
call fcn.00720f90
test eax, eax
je 0x40c6de
mov eax, dword [ebp - 0x450c]
cmp dword [ebp - 0x451c], eax
jbe 0x40c64a
mov ax, word [eax]
cmp ax, 0x3a
je 0x40b370
cmp ax, 0x29
jne 0x40c64a
mov dword [ebp - 0x44f8], 0
mov ebx, 0x76ddc0
mov eax, dword [ebp - 0x44f8]
cmp eax, 8
jg 0x40b3d1
imul eax, eax, 0xc
mov eax, dword [eax + 0x76dd40]
cmp eax, dword [ebp - 0x4504]
je 0x40b3b7
mov eax, dword [ebp - 0x44f8]
imul edx, eax, 0xc
inc eax
mov dword [ebp - 0x44f8], eax
mov edx, dword [edx + 0x76dd40]
lea ebx, [ebx + edx + 1]
jmp 0x40b37f
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x44f4]
mov dword [esp + 4], ebx
mov dword [esp], eax
call fcn.0043ad89
test eax, eax
jne 0x40b39b
mov eax, dword [ebp - 0x44f8]
mov edx, dword [ebp - 0x450c]
cmp eax, 8
jg 0x40c64a
cmp word [edx], 0x3a
jne 0x40b404
lea ecx, [edx + 2]
cmp dword [ebp - 0x451c], ecx
jbe 0x40b404
cmp word [edx + 2], 0x29
jne 0x40b404
mov dword [ebp - 0x450c], ecx
imul edx, eax, 0xc
mov ecx, dword [edx + 0x76dd48]
mov edx, dword [ebp - 0x450c]
test ecx, ecx
mov di, word [edx]
jle 0x40b42f
cmp di, 0x3a
je 0x40b42f
mov dword [ebp - 0x44fc], 0xa6
jmp 0x40c6de
imul eax, eax, 0xc
xor ebx, ebx
mov eax, dword [eax + 0x76dd44]
cmp eax, 0x802a0000
sete bl
add edx, 2
cmp di, 0x3a
mov dword [ebp - 0x4520], edx
mov dword [ebp - 0x450c], edx
lea edx, [esi + 4]
jne 0x40b4b4
test ecx, ecx
jns 0x40b466
mov dword [esi], 0x80290000
jmp 0x40b482
cmp eax, 0x80290000
mov ecx, 0
mov edi, 0x10000
cmovne ecx, edi
add ecx, eax
mov eax, dword [ebp - 0x455c]
mov dword [esi], ecx
mov edi, dword [ebp - 0x4520]
mov dword [ebp - 0x4570], esi
add esi, 8
mov dword [ebp - 0x455c], eax
mov dword [ebp - 0x4584], edx
mov dword [ebp - 0x4548], 1
mov dword [ebp - 0x4598], edi
xor edi, edi
jmp 0x40c617
mov dword [esi], eax
mov dword [ebp - 0x4570], esi
xor edi, edi
mov esi, edx
jmp 0x40c617
lea ecx, [eax + 2]
cmp dword [ebp - 0x451c], ecx
mov dword [ebp - 0x450c], ecx
jbe 0x40c6d4
mov dx, word [eax + 2]
cmp dx, 0x39
ja 0x40b526
cmp dx, 0x30
jae 0x40ba1d
cmp dx, 0x27
je 0x40c284
ja 0x40b510
cmp dx, 0x21
je 0x40c193
cmp dx, 0x26
je 0x40bad0
jmp 0x40b566
cmp dx, 0x28
je 0x40bd47
cmp dx, 0x2b
je 0x40b9f4
jmp 0x40b566
cmp dx, 0x3e
je 0x40c168
ja 0x40b548
cmp dx, 0x3c
je 0x40c19b
cmp dx, 0x3d
je 0x40c181
jmp 0x40b566
cmp dx, 0x50
je 0x40b914
cmp dx, 0x52
je 0x40b9bf
cmp dx, 0x43
je 0x40bb4f
cmp dx, 0x2d
jne 0x40b58a
mov edi, dword [ebp - 0x451c]
sub edi, ecx
cmp edi, 2
jle 0x40b58a
mov bx, word [eax + 4]
lea ecx, [ebx - 0x30]
cmp cx, 9
jbe 0x40ba1d
mov ebx, dword [ebp - 0x452c]
cmp dword [ebp - 0x4524], 0
lea edi, [ebx + 1]
mov word [ebp - 0x4588], di
jne 0x40b5b1
mov ebx, dword [ebp - 0x4494]
mov dword [ebp - 0x4524], ebx
jmp 0x40b5ca
add dword [ebp - 0x4524], 0xc
mov ebx, dword [ebp - 0x4524]
cmp dword [ebp - 0x4580], ebx
jbe 0x40c247
mov edi, dword [ebp - 0x4524]
mov ebx, dword [ebp - 0x4588]
mov edx, dword [ebp - 0x4528]
mov word [edi], bx
mov word [edi + 6], 0
and edx, 0x10424e8
cmp word [eax + 2], 0x7c
mov ebx, dword [ebp - 0x4438]
mov dword [edi + 8], edx
jne 0x40b63c
mov edx, dword [ebp - 0x4434]
add eax, 4
or ebx, 0x200000
mov word [edi + 6], 1
mov word [edi + 2], dx
mov word [edi + 4], dx
mov dword [ebp - 0x4438], ebx
mov dword [esi], 0x801a0000
mov dword [ebp - 0x450c], eax
mov eax, dword [ebp - 0x4588]
mov word [ebp - 0x452c], ax
jmp 0x40c535
mov edi, dword [ebp - 0x4524]
mov dword [edi + 2], 0
cmp word [eax + 2], 0x5e
mov dword [ebp - 0x44e8], 0
mov dword [ebp - 0x44f0], 0
jne 0x40b68b
mov edi, dword [ebp - 0x4528]
add eax, 4
mov dword [ebp - 0x458c], 0
mov dword [ebp - 0x450c], eax
and edi, 0xfeffdb57
mov dword [ebp - 0x45a0], edi
jmp 0x40b6a1
mov eax, dword [ebp - 0x4528]
mov dword [ebp - 0x458c], 1
mov dword [ebp - 0x45a0], eax
mov edx, dword [ebp - 0x450c]
lea eax, [ebp - 0x44f0]
mov byte [ebp - 0x4520], 0
mov byte [ebp - 0x4540], 0
cmp dword [ebp - 0x451c], edx
jbe 0x40b832
mov di, word [edx]
cmp di, 0x3a
setne cl
cmp di, 0x29
setne byte [ebp - 0x4590]
and cl, byte [ebp - 0x4590]
mov byte [ebp - 0x4590], cl
je 0x40b832
lea ecx, [edx + 2]
cmp di, 0x69
mov dword [ebp - 0x459c], ecx
je 0x40b78f
ja 0x40b71f
cmp di, 0x4a
je 0x40b778
cmp di, 0x55
je 0x40b7a4
cmp di, 0x2d
jne 0x40b7e7
jmp 0x40b74d
cmp di, 0x6e
je 0x40b797
ja 0x40b73c
cmp di, 0x6d
jne 0x40b7e7
or dword [eax], 0x400
jmp 0x40b81b
cmp di, 0x73
je 0x40b79f
cmp di, 0x78
je 0x40b7ac
jmp 0x40b7e7
cmp dword [ebp - 0x458c], 0
jne 0x40b80b
cmp byte [ebp - 0x4520], 0
je 0x40b769
mov dword [ebp - 0x4438], ebx
mov dword [ebp - 0x44fc], 0xc2
jmp 0x40b800
mov cl, byte [ebp - 0x4590]
or dword [eax], 0x40
or bh, 4
mov byte [ebp - 0x4520], cl
jmp 0x40b81b
or dword [eax], 8
jmp 0x40b81b
or dword [eax], 0x2000
jmp 0x40b81b
or dword [eax], 0x20
jmp 0x40b81b
or dword [eax], 0x40000
jmp 0x40b81b
mov edi, dword [eax]
lea ecx, [edx + 2]
mov dword [ebp - 0x4540], edi
or edi, 0x80
cmp dword [ebp - 0x451c], ecx
mov dword [eax], edi
jbe 0x40b81b
cmp word [edx + 2], 0x78
jne 0x40b81b
mov ecx, dword [ebp - 0x4540]
lea edi, [edx + 4]
mov dword [ebp - 0x459c], edi
or ecx, 0x1000080
mov dword [eax], ecx
jmp 0x40b81b
cmp byte [ebp - 0x4520], 0
je 0x40b7f6
mov dword [ebp - 0x4438], ebx
mov dword [ebp - 0x44fc], 0x6f
mov dword [ebp - 0x450c], edx
jmp 0x40c6de
lea eax, [ebp - 0x44e8]
mov dword [ebp - 0x458c], 0
mov cl, byte [ebp - 0x4590]
mov edx, dword [ebp - 0x459c]
mov byte [ebp - 0x4540], cl
jmp 0x40b6bb
cmp byte [ebp - 0x4540], 0
je 0x40b841
mov dword [ebp - 0x450c], edx
cmp byte [ebp - 0x4520], 0
je 0x40b850
mov dword [ebp - 0x4438], ebx
mov eax, dword [ebp - 0x44f0]
mov ecx, dword [ebp - 0x44e8]
mov ebx, eax
and ebx, 0x1000080
add ebx, 0xffffff80
je 0x40b86e
test cl, 0x80
je 0x40b87a
or ecx, 0x1000000
mov dword [ebp - 0x44e8], ecx
or eax, dword [ebp - 0x45a0]
mov ecx, dword [ebp - 0x44e8]
not ecx
and eax, ecx
cmp dword [ebp - 0x451c], edx
jbe 0x40c6d4
cmp word [edx], 0x29
lea ecx, [edx + 2]
mov dword [ebp - 0x450c], ecx
jne 0x40b8d9
mov ebx, dword [ebp - 0x4524]
cmp ebx, dword [ebp - 0x4494]
jbe 0x40b8c8
mov edi, dword [ebp - 0x452c]
cmp di, word [ebx - 0xc]
jne 0x40b8c8
sub dword [ebp - 0x4524], 0xc
jmp 0x40b8ef
mov ebx, dword [ebp - 0x4524]
mov edi, dword [ebp - 0x452c]
mov word [ebx], di
jmp 0x40b8ef
mov ebx, dword [ebp - 0x4588]
mov dword [esi], 0x801a0000
add esi, 4
mov word [ebp - 0x452c], bx
cmp dword [ebp - 0x4528], eax
je 0x40c609
mov dword [esi], 0x801b0000
mov dword [esi + 4], eax
xor edi, edi
add esi, 8
mov dword [ebp - 0x4528], eax
jmp 0x40c615
lea edx, [eax + 4]
cmp dword [ebp - 0x451c], edx
mov dword [ebp - 0x450c], edx
jbe 0x40c6d4
mov ax, word [eax + 4]
cmp ax, 0x3c
jne 0x40b93d
mov eax, 0x3e
jmp 0x40c289
cmp ax, 0x3e
je 0x40bad0
cmp ax, 0x3d
je 0x40b95c
mov dword [ebp - 0x44fc], 0x8d
jmp 0x40c6de
lea eax, [ebp - 0x44a8]
mov ecx, dword [ebp - 0x4530]
mov edx, dword [ebp - 0x451c]
mov dword [esp], 0x29
mov dword [esp + 0x14], eax
lea eax, [ebp - 0x44fc]
mov dword [esp + 0x10], eax
lea eax, [ebp - 0x4504]
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x44f4]
mov dword [esp + 8], eax
lea eax, [ebp - 0x44e8]
mov dword [esp + 4], eax
lea eax, [ebp - 0x450c]
call fcn.00720f90
test eax, eax
je 0x40c6de
mov dword [esi], 0x80040000
jmp 0x40bb2e
lea edx, [eax + 4]
cmp dword [ebp - 0x451c], edx
mov dword [ebp - 0x44f8], 0
mov dword [ebp - 0x450c], edx
jbe 0x40b9e5
cmp word [eax + 4], 0x29
je 0x40ba9f
mov dword [ebp - 0x44fc], 0x9e
jmp 0x40c6de
mov edi, dword [ebp - 0x451c]
sub edi, ecx
cmp edi, 2
jle 0x40ba0e
mov ax, word [eax + 4]
sub eax, 0x30
cmp ax, 9
jbe 0x40ba1d
mov dword [ebp - 0x44fc], 0x81
jmp 0x40c6de
sub edx, 0x30
or ecx, 0xffffffff
cmp dx, 9
jbe 0x40ba2f
mov ecx, dword [ebp - 0x4434]
lea eax, [ebp - 0x44fc]
mov edx, dword [ebp - 0x451c]
mov dword [esp + 4], 0xa1
mov dword [esp], 0xffff
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x44f8]
mov dword [esp + 8], eax
lea eax, [ebp - 0x450c]
call fcn.00403898
test eax, eax
je 0x40c6de
cmp dword [ebp - 0x44f8], 0
mov eax, dword [ebp - 0x450c]
jns 0x40ba89
mov dword [ebp - 0x44fc], 0x73
jmp 0x40c635
cmp dword [ebp - 0x451c], eax
jbe 0x40c6d4
cmp word [eax], 0x29
jne 0x40c6d4
mov eax, dword [ebp - 0x44f8]
xor edi, edi
add esi, 8
or eax, 0x80200000
mov dword [esi - 8], eax
mov eax, dword [ebp - 0x450c]
mov edx, eax
sub edx, dword [ebp - 0x448c]
add eax, 2
mov dword [ebp - 0x450c], eax
sar edx, 1
mov dword [esi - 4], edx
jmp 0x40bb45
lea eax, [ebp - 0x44a8]
mov ecx, dword [ebp - 0x4530]
mov edx, dword [ebp - 0x451c]
mov dword [esp], 0x29
mov dword [esp + 0x14], eax
lea eax, [ebp - 0x44fc]
mov dword [esp + 0x10], eax
lea eax, [ebp - 0x4504]
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x44f4]
mov dword [esp + 8], eax
lea eax, [ebp - 0x44e8]
mov dword [esp + 4], eax
lea eax, [ebp - 0x450c]
call fcn.00720f90
test eax, eax
je 0x40c6de
mov dword [esi], 0x80210000
mov eax, dword [ebp - 0x4504]
xor edi, edi
add esi, 0xc
mov dword [esi - 8], eax
mov eax, dword [ebp - 0x44e8]
mov dword [esi - 4], eax
mov ebx, 1
jmp 0x40c617
lea edi, [eax + 4]
cmp dword [ebp - 0x451c], edi
mov dword [ebp - 0x450c], edi
jbe 0x40c6d4
mov edx, dword [ebp - 0x4500]
dec dword [ebp - 0x4520]
test edx, edx
je 0x40bb8f
test byte [ebp - 0x4528], 4
je 0x40bb8f
lea ecx, [esi - 0x10]
cmp edx, ecx
jne 0x40bb8f
cmp dword [esi - 4], 0xff
jne 0x40bb8f
mov esi, edx
mov dx, word [eax + 4]
mov dword [ebp - 0x4500], esi
lea eax, [edx - 0x30]
cmp ax, 9
seta cl
cmp dx, 0x29
setne al
and al, cl
je 0x40bc97
movzx ebx, dx
mov dword [ebp - 0x44f8], 0
mov byte [ebp - 0x4534], 0
mov dword [ebp - 0x4540], 0
mov dword [ebp - 0x4588], ebx
mov ecx, dword [ebp - 0x4540]
mov edx, dword [ecx*4 + 0x771d20]
test edx, edx
mov ebx, edx
je 0x40bc1e
cmp dword [ebp - 0x4588], ebx
lea edx, [ecx + 1]
mov dword [ebp - 0x4540], edx
jne 0x40bc16
cmp byte [ebp - 0x4534], 0
je 0x40bc09
mov dword [ebp - 0x44f8], ecx
mov edx, dword [ecx*4 + 0x771ce0]
test edx, edx
jne 0x40bc2d
jmp 0x40bc1e
mov byte [ebp - 0x4534], al
jmp 0x40bbd6
mov dword [ebp - 0x44fc], 0xb6
jmp 0x40c6de
mov dword [esi], 0x80070000
mov ecx, edi
mov eax, ecx
lea ecx, [ecx + 2]
cmp dword [ebp - 0x451c], ecx
ja 0x40bc57
mov dword [ebp - 0x44fc], 0xb5
mov dword [ebp - 0x450c], edi
jmp 0x40c6de
movzx ebx, word [eax + 2]
cmp edx, ebx
jne 0x40bc35
lea ecx, [eax + 4]
cmp dword [ebp - 0x451c], ecx
jbe 0x40bc72
movzx eax, word [eax + 4]
cmp edx, eax
je 0x40bc35
mov eax, edi
sub eax, dword [ebp - 0x448c]
mov dword [ebp - 0x450c], ecx
sub ecx, edi
add esi, 0x14
sar ecx, 1
mov dword [esi - 8], ecx
sar eax, 1
mov dword [ebp - 0x44e8], eax
mov dword [esi - 4], eax
jmp 0x40bcee
mov dword [esi], 0x80060000
xor edx, edx
movzx ecx, word [edi]
lea ebx, [ecx - 0x30]
cmp bx, 9
ja 0x40bcde
imul edx, edx, 0xa
add edi, 2
lea edx, [edx + ecx - 0x30]
cmp edx, 0xff
jle 0x40bcd2
mov dword [ebp - 0x450c], edi
mov dword [ebp - 0x44fc], 0x8a
jmp 0x40c6de
cmp dword [ebp - 0x451c], edi
mov al, 1
ja 0x40bc9f
jmp 0x40bce2
test al, al
je 0x40bce8
mov dword [ebp - 0x450c], edi
mov dword [esi + 0xc], edx
add esi, 0x10
mov eax, dword [ebp - 0x450c]
cmp dword [ebp - 0x451c], eax
mov edx, dword [ebp - 0x448c]
jbe 0x40bd08
cmp word [eax], 0x29
je 0x40bd17
mov dword [ebp - 0x44fc], 0x8b
jmp 0x40c6de
add eax, 2
mov ecx, dword [ebp - 0x4500]
xor edi, edi
mov dword [ebp - 0x450c], eax
sub eax, edx
xor ebx, ebx
sar eax, 1
mov dword [ebp - 0x4534], 1
mov dword [ecx + 4], eax
mov dword [ecx + 8], 0
jmp 0x409b72
lea edx, [eax + 4]
cmp dword [ebp - 0x451c], edx
mov dword [ebp - 0x450c], edx
jbe 0x40c6d4
mov ax, word [eax + 4]
inc word [ebp - 0x452c]
cmp ax, 0x3f
sete dl
cmp ax, 0x2a
sete al
or dl, al
mov byte [ebp - 0x4520], dl
je 0x40bda1
mov dword [esi], 0x800f0000
xor edi, edi
mov dword [ebp - 0x450c], ecx
add esi, 4
xor ebx, ebx
mov dword [ebp - 0x4520], 2
jmp 0x409b72
lea eax, [ebp - 0x44fc]
mov ecx, dword [ebp - 0x4434]
mov edx, dword [ebp - 0x451c]
mov dword [esp + 4], 0xa1
mov dword [esp], 0xffff
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x44f8]
mov dword [esp + 8], eax
lea eax, [ebp - 0x450c]
call fcn.00403898
test eax, eax
mov eax, dword [ebp - 0x450c]
je 0x40be28
sub eax, dword [ebp - 0x448c]
sar eax, 1
cmp dword [ebp - 0x44f8], 0
jg 0x40be05
mov dword [ebp - 0x44fc], 0x73
jmp 0x40c6de
sub eax, 2
mov dword [esi], 0x80120000
add esi, 0xc
mov dword [ebp - 0x44e8], eax
mov dword [esi - 8], eax
mov eax, dword [ebp - 0x44f8]
mov dword [esi - 4], eax
jmp 0x40c137
mov edi, dword [ebp - 0x44fc]
test edi, edi
jne 0x40c6de
mov edx, dword [ebp - 0x451c]
sub edx, eax
cmp edx, 0x12
jle 0x40bfaf
mov dword [esp + 8], 7
mov dword [esp + 4], str.VERSION
mov dword [esp], eax
call fcn.0043ad89
test eax, eax
mov ebx, eax
jne 0x40bfaf
mov eax, dword [ebp - 0x450c]
mov dx, word [eax + 0xe]
cmp dx, 0x29
je 0x40bfaf
lea ecx, [eax + 0xe]
cmp dx, 0x3e
mov dword [ebp - 0x44e8], 0
mov dword [ebp - 0x450c], ecx
jne 0x40bea4
add eax, 0x10
mov edi, 1
mov dword [ebp - 0x450c], eax
mov eax, dword [ebp - 0x450c]
cmp word [eax], 0x3d
jne 0x40bfa0
lea edx, [eax + 2]
mov ax, word [eax + 2]
mov dword [ebp - 0x450c], edx
sub eax, 0x30
cmp ax, 9
ja 0x40bfa0
lea eax, [ebp - 0x44fc]
mov edx, dword [ebp - 0x451c]
or ecx, 0xffffffff
mov dword [esp + 4], 0xb3
mov dword [esp], 0x3e8
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x44e8]
mov dword [esp + 8], eax
lea eax, [ebp - 0x450c]
call fcn.00403898
test eax, eax
je 0x40c6de
mov eax, dword [ebp - 0x450c]
cmp dword [ebp - 0x451c], eax
jbe 0x40bfa0
cmp word [eax], 0x2e
jne 0x40bf83
lea edx, [eax + 2]
cmp dword [ebp - 0x451c], edx
mov dword [ebp - 0x450c], edx
jbe 0x40bfa0
movzx ebx, word [eax + 2]
lea edx, [ebx - 0x30]
cmp dx, 9
ja 0x40bfa0
lea edx, [eax + 4]
sub ebx, 0x30
imul ebx, ebx, 0xa
mov dword [ebp - 0x450c], edx
mov dx, word [eax + 4]
lea ecx, [edx - 0x30]
cmp cx, 9
ja 0x40bf6f
add eax, 6
mov dword [ebp - 0x450c], eax
movzx eax, dx
lea ebx, [ebx + eax - 0x30]
mov eax, dword [ebp - 0x450c]
cmp dword [ebp - 0x451c], eax
jbe 0x40bfa0
cmp word [eax], 0x29
jne 0x40bfa0
mov dword [esi], 0x80150000
mov dword [esi + 4], edi
add esi, 0x10
mov eax, dword [ebp - 0x44e8]
mov dword [esi - 4], ebx
mov dword [esi - 8], eax
jmp 0x40c137
mov dword [ebp - 0x44fc], 0xb3
jmp 0x40c6de
mov eax, dword [ebp - 0x450c]
mov dx, word [eax]
cmp dx, 0x52
jne 0x40bfe2
mov edx, dword [ebp - 0x451c]
sub edx, eax
cmp edx, 2
jle 0x40bff8
cmp word [eax + 2], 0x26
jne 0x40bff8
add eax, 2
mov edi, 1
mov dword [ebp - 0x450c], eax
jmp 0x40c001
cmp dx, 0x3c
mov ebx, 0x3e
je 0x40c006
cmp dx, 0x27
mov ebx, 0x27
je 0x40c006
sub eax, 2
mov dword [ebp - 0x450c], eax
mov ebx, 0x29
lea eax, [ebp - 0x44a8]
mov ecx, dword [ebp - 0x4530]
mov edx, dword [ebp - 0x451c]
mov dword [esp], ebx
mov dword [esp + 0x14], eax
lea eax, [ebp - 0x44fc]
mov dword [esp + 0x10], eax
lea eax, [ebp - 0x4504]
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x44f4]
mov dword [esp + 8], eax
lea eax, [ebp - 0x44e8]
mov dword [esp + 4], eax
lea eax, [ebp - 0x450c]
call fcn.00720f90
test eax, eax
je 0x40c6de
test edi, edi
je 0x40c069
mov dword [esi], 0x80130000
jmp 0x40c106
cmp ebx, 0x29
jne 0x40c10f
cmp dword [ebp - 0x4504], 6
mov eax, dword [ebp - 0x44f4]
jne 0x40c0a5
mov dword [esp + 8], 6
mov dword [esp + 4], str.DEFINE
mov dword [esp], eax
call fcn.0043ad89
test eax, eax
jne 0x40c0a5
mov dword [esi], 0x80100000
jmp 0x40c106
mov ebx, dword [ebp - 0x4504]
mov edi, dword [ebp - 0x44f4]
mov edx, 1
mov dword [ebp - 0x44f8], 1
cmp edx, ebx
mov eax, edx
jge 0x40c0df
mov cx, word [edi + edx*2]
lea edx, [eax + 1]
sub ecx, 0x30
cmp cx, 9
ja 0x40c0df
mov byte [ebp - 0x4520], 1
jmp 0x40c0c0
cmp byte [ebp - 0x4520], 0
je 0x40c0ee
mov dword [ebp - 0x44f8], eax
cmp word [edi], 0x52
jne 0x40c0ff
cmp eax, ebx
jl 0x40c0ff
mov eax, 0x80140000
jmp 0x40c104
mov eax, 0x80110000
mov dword [esi], eax
sub dword [ebp - 0x450c], 2
jmp 0x40c115
mov dword [esi], 0x80110000
cmp dword [esi], 0x80100000
lea eax, [esi + 4]
je 0x40c12c
mov edx, dword [ebp - 0x4504]
lea eax, [esi + 8]
mov dword [esi + 4], edx
mov edx, dword [ebp - 0x44e8]
lea esi, [eax + 4]
mov dword [eax], edx
mov eax, dword [ebp - 0x450c]
cmp dword [ebp - 0x451c], eax
jbe 0x40c14b
cmp word [eax], 0x29
je 0x40c15a
mov dword [ebp - 0x44fc], 0x7c
jmp 0x40c6de
add eax, 2
mov dword [ebp - 0x450c], eax
jmp 0x40c609
mov dword [esi], 0x80020000
inc word [ebp - 0x452c]
add dword [ebp - 0x450c], 2
jmp 0x40c535
mov dword [esi], 0x80230000
add dword [ebp - 0x450c], 2
add esi, 4
jmp 0x40c207
mov dword [esi], 0x80240000
jmp 0x40c187
mov edx, dword [ebp - 0x451c]
sub edx, ecx
cmp edx, 2
jle 0x40b933
mov ax, word [eax + 4]
cmp ax, 0x3d
je 0x40c1c0
cmp ax, 0x21
jne 0x40b933
cmp ax, 0x3d
mov edx, 0x80250000
mov eax, 0x80260000
cmove eax, edx
lea edx, [esi + 4]
mov dword [esi], eax
mov ecx, dword [ebp - 0x450c]
lea esi, [edx + 4]
mov dword [ebp - 0x4560], 1
mov eax, ecx
sub eax, dword [ebp - 0x448c]
add ecx, 4
sar eax, 1
sub eax, 2
mov dword [ebp - 0x44e8], eax
mov dword [edx], eax
mov dword [ebp - 0x450c], ecx
inc word [ebp - 0x452c]
cmp dword [ebp - 0x4520], 0
jle 0x40c609
cmp dword [ebp - 0x4524], 0
jne 0x40c232
mov eax, dword [ebp - 0x4494]
mov dword [ebp - 0x4524], eax
jmp 0x40c256
add dword [ebp - 0x4524], 0xc
mov edi, dword [ebp - 0x4524]
cmp dword [ebp - 0x4580], edi
ja 0x40c256
mov dword [ebp - 0x44fc], 0xb8
jmp 0x40c6de
mov eax, dword [ebp - 0x4524]
mov edi, dword [ebp - 0x452c]
mov word [eax + 6], 2
mov word [eax], di
mov eax, dword [ebp - 0x4528]
mov edi, dword [ebp - 0x4524]
and eax, 0x10424e8
mov dword [edi + 8], eax
jmp 0x40c609
mov eax, 0x27
lea edx, [ebp - 0x44a8]
mov ecx, dword [ebp - 0x4530]
mov dword [esp], eax
lea eax, [ebp - 0x450c]
mov dword [esp + 0x14], edx
lea edx, [ebp - 0x44fc]
mov dword [esp + 0x10], edx
lea edx, [ebp - 0x4504]
mov dword [esp + 0xc], edx
lea edx, [ebp - 0x44f4]
mov dword [esp + 8], edx
lea edx, [ebp - 0x44e8]
mov dword [esp + 4], edx
mov edx, dword [ebp - 0x451c]
call fcn.00720f90
test eax, eax
je 0x40c6de
mov eax, dword [ebp - 0x4434]
cmp eax, 0xfffe
jbe 0x40c2f9
mov dword [ebp - 0x44fc], 0xc5
jmp 0x40c6de
inc eax
inc word [ebp - 0x452c]
lea ebx, [esi + 4]
mov dword [ebp - 0x4434], eax
or eax, 0x80080000
cmp word [ebp - 0x4450], 0x270f
mov dword [ebp - 0x4520], ebx
mov dword [esi], eax
jbe 0x40c331
mov dword [ebp - 0x44fc], 0x95
jmp 0x40c6de
mov eax, dword [ebp - 0x4504]
movzx edx, word [ebp - 0x444e]
lea ecx, [eax + 2]
cmp ecx, edx
jbe 0x40c34f
add eax, 2
mov word [ebp - 0x444e], ax
mov ebx, dword [ebp - 0x4444]
mov dword [ebp - 0x44f8], 0
mov dword [ebp - 0x4540], 0
movzx eax, word [ebp - 0x4450]
cmp eax, dword [ebp - 0x44f8]
jle 0x40c3ab
movzx eax, word [ebx + 8]
cmp eax, dword [ebp - 0x4504]
jne 0x40c3f4
mov dword [esp + 8], eax
mov eax, dword [ebx]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x44f4]
mov dword [esp], eax
call fcn.0043ad5d
test eax, eax
jne 0x40c3f4
mov eax, dword [ebp - 0x4434]
cmp dword [ebx + 4], eax
jne 0x40c3c0
movzx edx, word [ebp - 0x4450]
cmp edx, dword [ebp - 0x44f8]
jg 0x40c60d
jmp 0x40c41c
test byte [ebp - 0x4528], 0x40
jne 0x40c3d8
mov dword [ebp - 0x44fc], 0x8f
jmp 0x40c6de
mov word [ebx + 0xa], 1
mov dword [ebp - 0x4540], 1
mov dword [ebp - 0x43ec], 1
jmp 0x40c40e
mov eax, dword [ebp - 0x4434]
cmp dword [ebx + 4], eax
jne 0x40c40e
mov dword [ebp - 0x44fc], 0xa5
jmp 0x40c6de
inc dword [ebp - 0x44f8]
add ebx, 0xc
jmp 0x40c369
mov eax, dword [ebp - 0x4440]
cmp edx, eax
jb 0x40c4a1
add eax, eax
mov dword [ebp - 0x4588], eax
mov eax, dword [ebp - 0x44a8]
mov edx, dword [eax + 8]
mov dword [esp + 4], edx
imul edx, dword [ebp - 0x4588], 0xc
mov dword [esp], edx
call dword [eax]
test eax, eax
mov ebx, eax
jne 0x40c45c
mov dword [ebp - 0x44fc], 0x79
jmp 0x40c6de
imul ecx, dword [ebp - 0x4440], 0xc
mov esi, dword [ebp - 0x4444]
mov edi, eax
rep movsb byte es:[edi], byte [esi]
cmp dword [ebp - 0x4440], 0x14
jbe 0x40c48f
mov eax, dword [ebp - 0x44a8]
mov edx, dword [eax + 8]
mov dword [esp + 4], edx
mov edx, dword [ebp - 0x4444]
mov dword [esp], edx
call dword [eax + 4]
mov eax, dword [ebp - 0x4588]
mov dword [ebp - 0x4444], ebx
mov dword [ebp - 0x4440], eax
movzx eax, word [ebp - 0x4450]
mov ecx, dword [ebp - 0x44f4]
mov esi, dword [ebp - 0x4540]
mov edx, eax
imul eax, eax, 0xc
add eax, dword [ebp - 0x4444]
mov dword [eax], ecx
mov ecx, dword [ebp - 0x4504]
mov word [eax + 8], cx
mov ecx, dword [ebp - 0x4434]
mov word [eax + 0xa], si
mov dword [eax + 4], ecx
lea eax, [edx + 1]
mov word [ebp - 0x4450], ax
jmp 0x40c60d
cmp dword [ebp - 0x4524], 0
je 0x40c52f
mov eax, dword [ebp - 0x4524]
mov edi, dword [ebp - 0x452c]
cmp di, word [eax]
jne 0x40c52f
test byte [eax + 6], 1
je 0x40c52f
mov ebx, dword [ebp - 0x4524]
mov eax, dword [ebp - 0x4434]
movzx edx, word [ebx + 4]
cmp eax, edx
jbe 0x40c51f
mov word [ebx + 4], ax
mov eax, dword [ebp - 0x4524]
movzx eax, word [eax + 2]
mov dword [ebp - 0x4434], eax
mov dword [esi], 0x80010000
xor edi, edi
add esi, 4
jmp 0x40c615
cmp dword [ebp - 0x4524], 0
mov ebx, 1
je 0x40c5cb
mov eax, dword [ebp - 0x4524]
mov edi, dword [ebp - 0x452c]
cmp di, word [eax]
jne 0x40c5cb
mov eax, dword [ebp - 0x4528]
mov ebx, dword [ebp - 0x4524]
and eax, 0xfefbdb17
or eax, dword [ebx + 8]
mov dword [ebp - 0x4528], eax
mov ax, word [ebx + 6]
test al, 1
je 0x40c592
movzx edx, word [ebx + 4]
cmp edx, dword [ebp - 0x4434]
jbe 0x40c592
mov dword [ebp - 0x4434], edx
mov ebx, eax
shr bx, 1
xor ebx, 1
and ebx, 1
test al, 4
je 0x40c5aa
mov dword [esi], 0x80190000
add esi, 4
mov eax, dword [ebp - 0x4524]
cmp eax, dword [ebp - 0x4494]
je 0x40c5c1
sub dword [ebp - 0x4524], 0xc
jmp 0x40c5cb
mov dword [ebp - 0x4524], 0
cmp word [ebp - 0x452c], 0
jne 0x40c5e1
mov dword [ebp - 0x44fc], 0x7a
jmp 0x40c635
mov dword [esi], 0x80190000
dec word [ebp - 0x452c]
xor edi, edi
add esi, 4
jmp 0x40c617
xor edi, edi
mov esi, edx
mov ebx, 1
jmp 0x409b72
xor edi, edi
mov esi, edx
jmp 0x40c615
xor edi, edi
jmp 0x40c615
mov esi, dword [ebp - 0x4520]
xor edi, edi
xor ebx, ebx
mov dword [ebp - 0x4520], 0
jmp 0x409b72
mov dword [ebp - 0x4558], 1
jmp 0x409b72
sub dword [ebp - 0x450c], 2
jmp 0x40c6de
cmp dword [ebp - 0x4548], 0
je 0x40c659
mov dword [ebp - 0x44fc], 0xa0
jmp 0x40c6de
lea eax, [ebp - 0x448c]
mov ecx, dword [ebp - 0x457c]
lea edx, [ebp - 0x4500]
mov dword [esp], esi
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x450c]
call fcn.0040538a
cmp dword [ebp - 0x45a4], 0
je 0x40c695
mov dword [eax], 0x80190000
mov dword [eax + 4], 0x80160000
jmp 0x40c6ab
test byte [ebp - 0x4554], 4
je 0x40c6ae
mov dword [eax], 0x80190000
mov dword [eax + 4], 0x80180005
add eax, 8
cmp dword [ebp - 0x4564], eax
ja 0x40c6c2
mov dword [ebp - 0x44fc], 0xa3
jmp 0x40c6de
mov dword [eax], 0x80000000
xor eax, eax
cmp word [ebp - 0x452c], 0
je 0x40c6f8
mov dword [ebp - 0x44fc], 0x72
mov eax, dword [ebp - 0x450c]
sub eax, dword [ebp - 0x448c]
sar eax, 1
mov dword [ebp - 0x4454], eax
mov eax, dword [ebp - 0x44fc]
test eax, eax
mov dword [ebp - 0x4510], eax
jne 0x40d087
mov eax, dword [ebp - 0x4434]
cmp eax, 0xff
lea edx, [eax*4 + 4]
jbe 0x40c74f
mov eax, dword [ebp + 0x1c]
mov eax, dword [eax + 8]
mov dword [esp], edx
mov dword [esp + 4], eax
mov eax, dword [ebp + 0x1c]
call dword [eax]
test eax, eax
mov dword [ebp - 0x4424], eax
jne 0x40c74f
mov dword [ebp - 0x4510], 0x79
mov dword [ebp - 0x4454], 0
jmp 0x40d087
mov eax, dword [ebp - 0x4434]
mov edi, dword [ebp - 0x4424]
lea ecx, [eax*4 + 4]
xor eax, eax
cmp dword [ebp - 0x4560], 0
rep stosb byte es:[edi], al
jne 0x40c818
mov eax, dword [ebp + 0xc]
lea ecx, [ebp - 0x44fc]
lea edx, [ebp - 0x4500]
mov dword [esp + 0x18], 0
mov dword [esp + 4], 0
mov word [ebp - 0x2ef8], 0x86
mov dword [ebp - 0x4454], eax
mov eax, dword [ebp - 0x442c]
mov dword [ebp - 0x44fc], eax
lea eax, [ebp - 0x2ef8]
mov dword [ebp - 0x4500], eax
lea eax, [ebp - 0x4514]
mov dword [esp + 0x20], eax
lea eax, [ebp - 0x44a8]
mov dword [esp + 0x1c], eax
lea eax, [ebp - 0x44f4]
mov dword [esp + 0x14], eax
lea eax, [ebp - 0x44ec]
mov dword [esp + 0x10], eax
lea eax, [ebp - 0x44f8]
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x44f0]
mov dword [esp + 8], eax
lea eax, [ebp - 0x4510]
mov dword [esp], eax
mov eax, dword [ebp - 0x443c]
call fcn.00405526
cmp dword [ebp - 0x4510], 0
jne 0x40d087
jmp 0x40c843
lea eax, [ebp - 0x44a8]
xor ecx, ecx
xor edx, edx
mov dword [esp], eax
mov eax, dword [ebp - 0x442c]
call fcn.00404aee
test eax, eax
mov dword [ebp - 0x4510], eax
jne 0x40d087
jmp 0x40c773
mov edx, dword [ebp - 0x4514]
cmp edx, 0x10000
jbe 0x40c860
mov dword [ebp - 0x4510], 0x78
jmp 0x40d087
movzx eax, word [ebp - 0x4450]
movzx ecx, word [ebp - 0x444e]
imul eax, ecx
lea eax, [edx + eax + 0x38]
add eax, eax
mov dword [ebp - 0x451c], eax
mov eax, dword [ebp + 0x1c]
mov eax, dword [eax + 8]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x451c]
mov dword [esp], eax
mov eax, dword [ebp + 0x1c]
call dword [eax]
test eax, eax
mov ebx, eax
jne 0x40c8aa
mov dword [ebp - 0x4510], 0x79
jmp 0x40d089
lea edx, [eax + 0x68]
mov ecx, 2
xor eax, eax
mov esi, dword [ebp + 0x1c]
mov edi, edx
lea edx, [ebx + 0x14]
rep stosd dword es:[edi], eax
mov ecx, 3
mov edi, ebx
rep movsd dword es:[edi], dword [esi]
mov esi, dword [ebp - 0x4538]
mov ecx, 8
mov edi, edx
mov dword [ebx + 0x10], 0
mov dword [ebx + 0xc], esi
rep stosd dword es:[edi], eax
mov eax, dword [ebp - 0x451c]
mov dword [ebx + 0x38], 0x50435245
mov dword [ebx + 0x34], eax
mov eax, dword [ebp + 0x10]
mov dword [ebx + 0x3c], eax
mov eax, dword [ebp - 0x443c]
mov dword [ebx + 0x40], eax
mov eax, dword [ebp + 0x1c]
mov eax, dword [eax + 0x24]
mov dword [ebx + 0x44], eax
mov eax, dword [ebp - 0x454c]
or eax, dword [ebp - 0x4438]
mov dword [ebx + 0x58], 0
mov dword [ebx + 0x5c], 0
or eax, 2
mov dword [ebx + 0x48], eax
mov eax, dword [ebp - 0x4578]
mov dword [ebx + 0x4c], eax
mov eax, dword [ebp - 0x4568]
mov dword [ebx + 0x50], eax
mov eax, dword [ebp - 0x456c]
mov dword [ebx + 0x54], eax
mov eax, dword [ebp - 0x4550]
mov word [ebx + 0x60], ax
mov eax, dword [ebp - 0x4544]
mov word [ebx + 0x62], ax
movzx ecx, word [ebp - 0x4450]
movzx eax, word [ebp - 0x444e]
mov dword [ebx + 0x64], 0
mov dword [ebx + 0x68], 0
mov dword [ebp - 0x444c], 0
mov dword [ebp - 0x4448], 0
mov word [ebx + 0x6e], cx
mov word [ebx + 0x6c], ax
mov dword [ebp - 0x4430], 0
imul eax, ecx
test cx, cx
mov dword [ebp - 0x43fc], 0
mov dword [ebp - 0x43f8], 0
mov dword [ebp - 0x43f4], 0
lea eax, [ebx + eax*2 + 0x70]
mov dword [ebp - 0x451c], eax
lea eax, [ebx + 0x70]
mov dword [ebp - 0x4484], eax
mov eax, dword [ebp - 0x451c]
mov dword [ebp - 0x4490], eax
jne 0x40ca7a
mov eax, dword [ebp - 0x442c]
lea edx, [ebp - 0x44a8]
lea ecx, [ebp - 0x44fc]
mov dword [ebp - 0x44fc], eax
mov eax, dword [ebp - 0x451c]
mov dword [ebp - 0x4500], eax
mov word [eax], 0x86
mov eax, dword [ebx + 0x40]
mov dword [esp + 0x1c], edx
lea edx, [ebp - 0x44f4]
mov dword [esp + 0x20], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], edx
lea edx, [ebp - 0x44ec]
mov dword [esp + 4], 0
mov dword [esp + 0x10], edx
lea edx, [ebp - 0x44f8]
mov dword [esp + 0xc], edx
lea edx, [ebp - 0x44f0]
mov dword [esp + 8], edx
lea edx, [ebp - 0x4510]
mov dword [esp], edx
lea edx, [ebp - 0x4500]
call fcn.00405526
test eax, eax
jns 0x40cbd4
or dword [ebx + 0x48], 0x2000
jmp 0x40cbd4
mov eax, dword [ebp - 0x4444]
mov dword [ebp - 0x4524], 0
mov dword [ebp - 0x4528], eax
movzx eax, word [ebp - 0x4450]
cmp eax, dword [ebp - 0x4524]
jbe 0x40c9e2
mov eax, dword [ebp - 0x4528]
movzx ecx, word [ebp - 0x444e]
mov edx, dword [ebp - 0x4484]
mov eax, dword [eax + 4]
mov dword [ebp - 0x4538], eax
mov eax, dword [ebp - 0x4528]
movzx eax, word [eax + 8]
mov dword [ebp - 0x4520], eax
mov edi, dword [ebp - 0x4520]
mov eax, dword [ebp - 0x4528]
add edi, edi
mov esi, dword [eax]
lea eax, [edi + 2]
mov dword [ebp - 0x4530], eax
lea eax, [ecx + ecx]
xor ecx, ecx
mov dword [ebp - 0x452c], eax
cmp dword [ebp - 0x4524], ecx
lea eax, [edx + 2]
mov dword [ebp - 0x4534], eax
je 0x40cb8d
mov eax, dword [ebp - 0x4534]
mov dword [esp + 8], edi
mov dword [esp], esi
mov dword [ebp - 0x4540], ecx
mov dword [ebp - 0x453c], edx
mov dword [esp + 4], eax
call sub.msvcrt.dll_memcmp
test eax, eax
mov edx, dword [ebp - 0x453c]
mov ecx, dword [ebp - 0x4540]
jne 0x40cb49
mov eax, dword [ebp - 0x4530]
cmp word [edx + eax], 0
je 0x40cb81
jmp 0x40cb4b
jns 0x40cb81
mov eax, dword [ebp - 0x4524]
mov dword [esp + 4], edx
sub eax, ecx
imul eax, dword [ebp - 0x452c]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x452c]
mov dword [ebp - 0x452c], edx
lea ecx, [edx + eax]
mov dword [esp], ecx
call sub.msvcrt.dll_memmove
mov edx, dword [ebp - 0x452c]
jmp 0x40cb8d
add edx, dword [ebp - 0x452c]
inc ecx
jmp 0x40caf3
mov eax, dword [ebp - 0x4538]
mov ecx, dword [ebp - 0x4520]
mov edi, dword [ebp - 0x4534]
inc dword [ebp - 0x4524]
add dword [ebp - 0x4528], 0xc
mov word [edx], ax
add ecx, ecx
add edx, dword [ebp - 0x4530]
rep movsb byte es:[edi], byte [esi]
xor eax, eax
movzx ecx, word [ebp - 0x444e]
mov edi, edx
sub ecx, dword [ebp - 0x4520]
dec ecx
add ecx, ecx
rep stosb byte es:[edi], al
jmp 0x40ca90
mov eax, dword [ebp - 0x4434]
cmp dword [ebp - 0x43f8], 0
mov word [ebx + 0x68], ax
mov eax, dword [ebp - 0x4420]
mov word [ebx + 0x6a], ax
mov eax, dword [ebp - 0x4400]
mov word [ebx + 0x64], ax
je 0x40cc16
mov dword [ebp - 0x44ec], 0
mov dword [ebp - 0x44f4], 0xffffffff
or dword [ebx + 0x48], 0x800000
mov eax, dword [ebp - 0x4500]
lea edx, [eax + 2]
mov dword [ebp - 0x4500], edx
sub edx, dword [ebp - 0x451c]
mov word [eax], 0
mov eax, dword [ebp - 0x4514]
sar edx, 1
cmp eax, edx
jae 0x40cc48
mov dword [ebp - 0x4510], 0x7b
jmp 0x40cc4f
sub eax, edx
add eax, eax
sub dword [ebx + 0x34], eax
xor eax, eax
cmp dword [ebp - 0x4574], 0
setne al
cmp dword [ebp - 0x4510], 0
mov dword [ebp - 0x4520], eax
jne 0x40cd8f
cmp dword [ebp - 0x43f0], 0
je 0x40cd8f
mov edx, eax
mov eax, dword [ebp - 0x451c]
mov edi, 8
call fcn.00403f2e
mov dword [ebp - 0x4528], 0
mov esi, eax
test esi, esi
je 0x40cd8f
movzx eax, word [esi + 2]
test eax, eax
mov dword [ebp - 0x4524], eax
mov eax, dword [ebp - 0x451c]
je 0x40cd6e
mov dword [ebp - 0x4530], eax
mov dword [ebp - 0x452c], 0
mov eax, edi
mov ecx, dword [ebp - 0x4528]
cmp dword [ebp - 0x452c], ecx
je 0x40cd10
mov edx, dword [ebp - 0x4524]
cmp dword [ebp + eax*8 - 0x44e4], edx
jne 0x40ccf5
mov eax, dword [ebp + eax*8 - 0x44e8]
test eax, eax
jne 0x40cd6e
jmp 0x40cd10
jge 0x40cd04
mov ecx, dword [ebp + eax*8 - 0x44e8]
mov dword [ebp - 0x4530], ecx
inc eax
inc dword [ebp - 0x452c]
and eax, 7
jmp 0x40cccb
mov eax, dword [ebp - 0x4524]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x4520]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x4530]
mov dword [esp], eax
call fcn.0040d69c
test eax, eax
jne 0x40cd42
mov dword [ebp - 0x4510], 0x99
jmp 0x40cd8f
dec edi
mov edx, 7
mov ecx, dword [ebp - 0x4524]
cmovs edi, edx
cmp dword [ebp - 0x4528], 7
mov dword [ebp + edi*8 - 0x44e8], eax
mov dword [ebp + edi*8 - 0x44e4], ecx
ja 0x40cd6e
inc dword [ebp - 0x4528]
sub eax, dword [ebp - 0x451c]
mov edx, dword [ebp - 0x4520]
sar eax, 1
mov word [esi + 2], ax
lea eax, [esi + 4]
call fcn.00403f2e
mov esi, eax
jmp 0x40cc99
mov esi, dword [ebp - 0x4510]
test esi, esi
jne 0x40d089
test byte [ebx + 0x41], 0x40
jne 0x40cde0
lea eax, [ebp - 0x44a8]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x4520]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x451c]
mov dword [esp], eax
call fcn.0043d44e
test eax, eax
je 0x40cdd3
mov dword [ebp - 0x4510], 0xb4
cmp dword [ebp - 0x4510], 0
jne 0x40d089
mov edi, dword [ebx + 0x40]
test edi, edi
js 0x40ce17
mov eax, dword [ebp - 0x451c]
lea ecx, [ebp - 0x44a8]
xor edx, edx
mov dword [esp + 4], 0
mov dword [esp], 0
call fcn.00403c18
test eax, eax
je 0x40ce17
mov eax, edi
or eax, 0x80000000
mov dword [ebx + 0x40], eax
test byte [ebx + 0x42], 1
jne 0x40d01c
cmp dword [ebp - 0x44f8], 0
jns 0x40ce43
mov eax, dword [ebp - 0x451c]
lea edx, [ebp - 0x44f8]
xor ecx, ecx
call fcn.00404028
mov dword [ebp - 0x44f0], eax
mov edi, dword [ebp - 0x44f8]
test edi, edi
js 0x40ceec
mov esi, dword [ebx + 0x48]
mov eax, dword [ebp - 0x44f0]
mov ecx, esi
mov dword [ebp - 0x451c], esi
mov dword [ebx + 0x58], eax
or ecx, 0x10
test edi, 1
mov esi, 1
mov dword [ebx + 0x48], ecx
je 0x40cf1f
cmp eax, 0x7f
jbe 0x40ce91
cmp eax, 0xfe
ja 0x40cea2
cmp dword [ebp - 0x4574], 0
jne 0x40cea2
mov ecx, dword [ebp - 0x44a0]
mov esi, 1
movzx ecx, byte [ecx + eax]
jmp 0x40ceda
cmp eax, 0x10ffff
mov esi, 1
ja 0x40cf1f
mov ecx, eax
mov edx, eax
sar ecx, 7
and edx, 0x7f
movzx ecx, word [ecx + ecx + 0x7831a0]
shl ecx, 7
add ecx, edx
movzx ecx, word [ecx + ecx + 0x771ea0]
imul ecx, ecx, 0xc
mov edx, dword [ecx + 0x7875a4]
add edx, eax
mov ecx, edx
cmp eax, ecx
je 0x40cf1f
mov edx, dword [ebp - 0x451c]
or edx, 0x30
mov dword [ebx + 0x48], edx
jmp 0x40cf1f
cmp dword [ebx + 0x40], 0
js 0x40cf1f
mov eax, dword [ebp - 0x451c]
lea ecx, [ebp - 0x44a8]
xor edx, edx
mov dword [esp + 4], 0
mov dword [esp], 0
call fcn.00403d7c
test eax, eax
je 0x40cf1f
or dword [ebx + 0x48], 0x200
mov ecx, dword [ebp - 0x44f4]
test ecx, ecx
js 0x40cfe5
mov edx, dword [ebx + 0x40]
bt edx, 0x13
jae 0x40cf5e
test edi, edi
js 0x40cf5e
mov eax, dword [ebp - 0x44f0]
and eax, 0xf800
cmp eax, 0xd800
jne 0x40cf5e
mov eax, dword [ebp - 0x44ec]
and eax, 0xfc00
cmp eax, 0xdc00
je 0x40cf5f
inc esi
test edx, edx
jns 0x40cf68
test cl, 2
je 0x40cfe5
mov edx, dword [ebx + 0x48]
mov eax, dword [ebp - 0x44ec]
mov edi, edx
mov dword [ebx + 0x5c], eax
or edi, 0x80
and cl, 1
mov dword [ebx + 0x48], edi
je 0x40cfe5
cmp eax, 0x7f
jbe 0x40cf99
cmp eax, 0xfe
ja 0x40cfa5
cmp dword [ebp - 0x4574], 0
jne 0x40cfa5
mov ecx, dword [ebp - 0x44a0]
movzx ecx, byte [ecx + eax]
jmp 0x40cfd8
cmp eax, 0x10ffff
ja 0x40cfe5
mov ecx, eax
mov edi, eax
sar ecx, 7
and edi, 0x7f
movzx ecx, word [ecx + ecx + 0x7831a0]
shl ecx, 7
add ecx, edi
movzx ecx, word [ecx + ecx + 0x771ea0]
imul ecx, ecx, 0xc
mov edi, dword [ecx + 0x7875a4]
add edi, eax
mov ecx, edi
cmp eax, ecx
je 0x40cfe5
or edx, 0x180
mov dword [ebx + 0x48], edx
mov dword [esp], ebx
call fcn.0043b9db
test eax, eax
je 0x40d000
mov dword [ebp - 0x4510], 0x83
jmp 0x40d089
test byte [ebx + 0x48], 0x40
je 0x40d010
test esi, esi
mov eax, 1
cmove esi, eax
movzx eax, word [ebx + 0x66]
cmp eax, esi
jge 0x40d01c
mov word [ebx + 0x66], si
mov eax, dword [ebp - 0x442c]
lea edx, [ebp - 0x3ef8]
cmp eax, edx
je 0x40d03c
mov esi, dword [ebp + 0x1c]
mov edx, dword [esi + 8]
mov dword [esp], eax
mov dword [esp + 4], edx
call dword [esi + 4]
cmp dword [ebp - 0x4440], 0x14
jbe 0x40d05e
mov eax, dword [ebp + 0x1c]
mov eax, dword [eax + 8]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x4444]
mov dword [esp], eax
mov eax, dword [ebp + 0x1c]
call dword [eax + 4]
mov eax, dword [ebp - 0x4424]
lea edx, [ebp - 0x42f8]
cmp eax, edx
je 0x40d114
mov esi, dword [ebp + 0x1c]
mov edx, dword [esi + 8]
mov dword [esp], eax
mov dword [esp + 4], edx
call dword [esi + 4]
jmp 0x40d114
xor ebx, ebx
mov esi, dword [ebp - 0x4454]
mov edi, dword [ebp + 8]
add esi, esi
add edi, esi
sub edi, dword [ebp + 8]
mov eax, dword [ebp + 0x18]
mov esi, edi
sar esi, 1
mov dword [eax], esi
mov eax, dword [ebp - 0x4510]
mov esi, dword [ebp + 0x14]
mov dword [esi], eax
mov dword [esp], ebx
call fcn.00408979
xor ebx, ebx
jmp 0x40d01c
mov dword [ebp - 0x44fc], 0x82
jmp 0x40c6de
cmp word [eax + 6], 0x5d
je 0x40af3b
jmp 0x40aef9
test edx, edx
je 0x40d0ed
mov eax, edi
neg eax
sub eax, 0x7fe7ffed
jmp 0x40acaf
cmp edi, 1
mov dword [ebx + 4], esi
sbb eax, eax
xor ax, ax
sub eax, 0x7fe30000
mov dword [ebx], eax
jmp 0x40af78
jne 0x40acc0
mov eax, 1
jmp 0x40ac71
add esp, 0x45cc
mov eax, ebx
pop ebx
pop esi
pop edi
pop ebp
ret