Function at 0x40e633
Capabilities:
Check http status code
Inspect section memory permissions
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x52c
push ebx
push esi
mov dword [ebp - 0x10], 3
mov dword [ebp - 0x2c], 0
mov dword [ebp - 4], 0
mov dword [ebp - 0x30], 0xffffffff
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x474], 0
mov dword [ebp - 0x44], 0
mov dword [ebp - 0x3c], 0
mov dword [ebp - 0x34], 0
mov dword [ebp - 8], 0
lea eax, [ebp - 0x46c]
mov dword [ebp - 0x1c], eax
cmp dword [ebp + 0x14], 0
jne 0x40e6ac
cmp dword [ebp + 0x10], 0
je 0x40e6a5
mov ecx, dword [ebp + 0x10]
mov dword [ecx], 0x63
xor eax, eax
jmp 0x4102e8
mov edx, dword [ebp + 0x14]
mov dword [edx], 0
cmp dword [ebp + 0x10], 0
je 0x40e6c4
mov eax, dword [ebp + 0x10]
mov dword [eax], 0
cmp dword [ebp + 0x18], 0
jne 0x40e6d6
mov dword [ebp - 0x3c], 0x10
jmp 0x410107
mov ecx, dword [ebp + 0x18]
mov dword [ecx], 0
mov edx, dword [ebp + 0xc]
and edx, 0x800
neg edx
sbb edx, edx
neg edx
mov dword [ebp - 0x484], edx
cmp dword [ebp - 0x484], 0
je 0x40e730
mov eax, dword [ebp + 0xc]
and eax, 0x2000
test eax, eax
jne 0x40e730
push 0xffffffffffffffff
mov ecx, dword [ebp + 8]
push ecx
call fcn.00415480
add esp, 8
mov edx, dword [ebp + 0x18]
mov dword [edx], eax
mov eax, dword [ebp + 0x18]
cmp dword [eax], 0
jl 0x40e730
mov dword [ebp - 0x3c], 0x2c
jmp 0x410107
mov ecx, dword [ebp + 0xc]
and ecx, 0xffc38580
test ecx, ecx
je 0x40e749
mov dword [ebp - 0x3c], 0x11
jmp 0x410107
cmp dword [ebp + 0x1c], 0
jne 0x40e756
mov dword [ebp + 0x1c], 0x420338
mov edx, dword [ebp - 0x1c]
mov eax, dword [ebp + 0x1c]
mov dword [edx], eax
mov ecx, dword [ebp + 0x1c]
add ecx, 0x100
mov edx, dword [ebp - 0x1c]
mov dword [edx + 4], ecx
mov eax, dword [ebp + 0x1c]
add eax, 0x200
mov ecx, dword [ebp - 0x1c]
mov dword [ecx + 8], eax
mov edx, dword [ebp + 0x1c]
add edx, 0x340
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0xc], edx
mov ecx, dword [ebp + 0xc]
and ecx, 0x300000
mov dword [ebp - 0x510], ecx
cmp dword [ebp - 0x510], 0x100000
je 0x40e7c6
cmp dword [ebp - 0x510], 0x200000
je 0x40e7cf
cmp dword [ebp - 0x510], 0x300000
je 0x40e7d8
mov dword [ebp - 0x18], 0xa
jmp 0x40e7df
mov dword [ebp - 0x18], 0xd
jmp 0x40e7df
mov dword [ebp - 0x18], 0xa
jmp 0x40e7df
mov dword [ebp - 0x18], 0xd0a
cmp dword [ebp - 0x18], 0xff
jle 0x40e814
mov edx, dword [ebp - 0x1c]
mov dword [edx + 0x34], 2
mov eax, dword [ebp - 0x18]
sar eax, 8
and eax, 0xff
mov ecx, dword [ebp - 0x1c]
mov byte [ecx + 0x38], al
mov edx, dword [ebp - 0x18]
and edx, 0xff
mov eax, dword [ebp - 0x1c]
mov byte [eax + 0x39], dl
jmp 0x40e827
mov ecx, dword [ebp - 0x1c]
mov dword [ecx + 0x34], 1
mov edx, dword [ebp - 0x1c]
mov al, byte [ebp - 0x18]
mov byte [edx + 0x38], al
mov ecx, dword [ebp - 0x1c]
mov dword [ecx + 0x24], 0
mov edx, dword [ebp - 0x1c]
mov dword [edx + 0x28], 0
mov eax, dword [ebp + 8]
sub eax, 1
mov dword [ebp - 0x24], eax
mov ecx, dword [ebp - 0x24]
add ecx, 1
mov dword [ebp - 0x24], ecx
mov edx, dword [ebp - 0x24]
movzx eax, byte [edx]
mov dword [ebp - 0x480], eax
cmp dword [ebp - 0x480], 0
je 0x40fe75
cmp dword [ebp - 0x34], 0
je 0x40e887
mov ecx, dword [ebp + 0xc]
and ecx, 0x4000
test ecx, ecx
je 0x40e882
mov edx, dword [ebp - 0x10]
add edx, 6
mov dword [ebp - 0x10], edx
jmp case.0x40e9a8.1
mov eax, dword [ebp + 0xc]
and eax, 8
test eax, eax
je 0x40e91e
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ecx + 0xc]
mov eax, dword [ebp - 0x480]
movzx ecx, byte [edx + eax]
and ecx, 1
test ecx, ecx
je 0x40e8ae
jmp 0x40e844
cmp dword [ebp - 0x480], 0x23
jne 0x40e91e
mov edx, dword [ebp - 0x24]
add edx, 1
mov dword [ebp - 0x24], edx
mov eax, dword [ebp - 0x24]
movzx ecx, byte [eax]
test ecx, ecx
je 0x40e8fa
mov edx, dword [ebp - 0x24]
movzx eax, byte [edx]
mov ecx, dword [ebp - 0x1c]
movzx edx, byte [ecx + 0x38]
cmp eax, edx
jne 0x40e8f8
mov eax, dword [ebp - 0x1c]
cmp dword [eax + 0x34], 1
je 0x40e8f6
mov ecx, dword [ebp - 0x24]
movzx edx, byte [ecx + 1]
mov eax, dword [ebp - 0x1c]
movzx ecx, byte [eax + 0x39]
cmp edx, ecx
jne 0x40e8f8
jmp 0x40e8fa
jmp 0x40e8b7
mov edx, dword [ebp - 0x24]
movzx eax, byte [edx]
test eax, eax
je 0x40e919
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ecx + 0x34]
mov eax, dword [ebp - 0x24]
lea ecx, [eax + edx - 1]
mov dword [ebp - 0x24], ecx
jmp 0x40e844
jmp 0x40fe75
mov edx, dword [ebp - 0x30]
add edx, 1
mov dword [ebp - 0x30], edx
mov eax, dword [ebp + 0xc]
and eax, 0x4000
test eax, eax
je 0x40e973
cmp dword [ebp - 0x480], 0x2a
je 0x40e973
cmp dword [ebp - 0x480], 0x2b
je 0x40e973
cmp dword [ebp - 0x480], 0x3f
je 0x40e973
cmp dword [ebp - 0x480], 0x7b
jne 0x40e96a
mov ecx, dword [ebp - 0x24]
add ecx, 1
push ecx
call fcn.004109e4
add esp, 4
test eax, eax
jne 0x40e973
mov edx, dword [ebp - 0x10]
add edx, 6
mov dword [ebp - 0x10], edx
mov eax, dword [ebp - 0x480]
mov dword [ebp - 0x514], eax
mov ecx, dword [ebp - 0x514]
sub ecx, 0x24
mov dword [ebp - 0x514], ecx
cmp dword [ebp - 0x514], 0x58
ja case.0x40e9a8.1
mov edx, dword [ebp - 0x514]
movzx eax, byte [edx + 0x410312]
jmp dword [eax*4 + 0x4102ee]
push 0
mov ecx, dword [ebp + 0xc]
push ecx
mov edx, dword [ebp - 0x2c]
push edx
lea eax, [ebp - 0x3c]
push eax
lea ecx, [ebp - 0x24]
push ecx
call fcn.0041043d
add esp, 0x14
mov dword [ebp - 0x480], eax
cmp dword [ebp - 0x3c], 0
je 0x40e9da
jmp 0x4100fc
mov dword [ebp - 0x44], 1
cmp dword [ebp - 0x480], 0
jl 0x40ea64
mov edx, dword [ebp - 0x10]
add edx, 2
mov dword [ebp - 0x10], edx
cmp dword [ebp - 0x484], 0
je 0x40ea5f
cmp dword [ebp - 0x480], 0x7f
jle 0x40ea5f
mov dword [ebp - 0x49c], 0
jmp 0x40ea20
mov eax, dword [ebp - 0x49c]
add eax, 1
mov dword [ebp - 0x49c], eax
mov ecx, dword [ebp - 0x49c]
cmp ecx, dword [0x41d514]
jge 0x40ea47
mov edx, dword [ebp - 0x49c]
mov eax, dword [ebp - 0x480]
cmp eax, dword [edx*4 + 0x41d4fc]
jg 0x40ea45
jmp 0x40ea47
jmp 0x40ea11
mov ecx, dword [ebp - 0x10]
add ecx, dword [ebp - 0x49c]
mov dword [ebp - 0x10], ecx
mov edx, dword [ebp - 0x44]
add edx, dword [ebp - 0x49c]
mov dword [ebp - 0x44], edx
jmp 0x40e844
mov eax, dword [ebp - 0x480]
neg eax
cmp eax, 0x13
jne 0x40ea7d
mov dword [ebp - 0x34], 1
jmp 0x40e844
mov ecx, dword [ebp - 0x480]
neg ecx
cmp ecx, 0xd
je 0x40ea97
mov edx, dword [ebp - 0x480]
neg edx
cmp edx, 0xe
jne 0x40ead3
mov eax, dword [ebp - 0x10]
add eax, 3
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x44], 3
lea ecx, [ebp - 0x3c]
push ecx
lea edx, [ebp - 0x4a4]
push edx
lea eax, [ebp - 0x4a0]
push eax
lea ecx, [ebp - 0x24]
push ecx
call fcn.00410875
add esp, 0x10
test eax, eax
jge 0x40eace
jmp 0x4100fc
jmp 0x40e844
mov edx, dword [ebp - 0x10]
add edx, 1
mov dword [ebp - 0x10], edx
cmp dword [ebp - 0x480], 0xffffffec
jg 0x40ec03
mov eax, dword [ebp - 0x480]
neg eax
sub eax, 0x14
mov dword [ebp - 0x4a8], eax
cmp dword [ebp - 0x4a8], 0x20
jge 0x40eb18
mov edx, 1
mov ecx, dword [ebp - 0x4a8]
shl edx, cl
mov dword [ebp - 0x518], edx
jmp 0x40eb22
mov dword [ebp - 0x518], 1
mov eax, dword [ebp - 0x1c]
mov ecx, dword [eax + 0x28]
or ecx, dword [ebp - 0x518]
mov edx, dword [ebp - 0x1c]
mov dword [edx + 0x28], ecx
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x4a8]
cmp ecx, dword [eax + 0x24]
jle 0x40eb4e
mov edx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x4a8]
mov dword [edx + 0x24], eax
mov ecx, dword [ebp - 0x10]
add ecx, 2
mov dword [ebp - 0x10], ecx
mov edx, dword [ebp - 0x24]
movzx eax, byte [edx + 1]
cmp eax, 0x7b
jne 0x40ec03
mov ecx, dword [ebp - 0x24]
add ecx, 2
push ecx
call fcn.004109e4
add esp, 4
test eax, eax
je 0x40ec03
lea edx, [ebp - 0x3c]
push edx
lea eax, [ebp - 0x498]
push eax
lea ecx, [ebp - 0x488]
push ecx
mov edx, dword [ebp - 0x24]
add edx, 2
push edx
call fcn.00410ab6
add esp, 0x10
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x3c], 0
je 0x40ebad
jmp 0x4100fc
cmp dword [ebp - 0x488], 0
jne 0x40ebc8
cmp dword [ebp - 0x498], 1
je 0x40ebda
cmp dword [ebp - 0x498], 0xffffffff
je 0x40ebda
cmp dword [ebp - 0x488], 1
jne 0x40ebe5
cmp dword [ebp - 0x498], 0xffffffff
jne 0x40ebe5
mov eax, dword [ebp - 0x10]
add eax, 1
mov dword [ebp - 0x10], eax
jmp 0x40ebee
mov ecx, dword [ebp - 0x10]
add ecx, 5
mov dword [ebp - 0x10], ecx
mov edx, dword [ebp - 0x24]
movzx eax, byte [edx + 1]
cmp eax, 0x3f
jne 0x40ec03
mov ecx, dword [ebp - 0x24]
add ecx, 1
mov dword [ebp - 0x24], ecx
jmp 0x40e844
mov edx, dword [ebp - 0x10]
add edx, 1
mov dword [ebp - 0x10], edx
mov dword [ebp - 0x44], 1
jmp 0x40e844
mov eax, dword [ebp - 0x10]
add eax, 1
mov dword [ebp - 0x10], eax
jmp 0x40ed04
mov ecx, dword [ebp - 0x24]
add ecx, 1
push ecx
call fcn.004109e4
add esp, 4
test eax, eax
jne 0x40ec43
jmp case.0x40e9a8.1
lea edx, [ebp - 0x3c]
push edx
lea eax, [ebp - 0x498]
push eax
lea ecx, [ebp - 0x488]
push ecx
mov edx, dword [ebp - 0x24]
add edx, 1
push edx
call fcn.00410ab6
add esp, 0x10
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x3c], 0
je 0x40ec72
jmp 0x4100fc
cmp dword [ebp - 0x488], 0
jne 0x40ec8d
cmp dword [ebp - 0x498], 1
je 0x40ec9f
cmp dword [ebp - 0x498], 0xffffffff
je 0x40ec9f
cmp dword [ebp - 0x488], 1
jne 0x40ecaa
cmp dword [ebp - 0x498], 0xffffffff
jne 0x40ecaa
mov eax, dword [ebp - 0x10]
add eax, 1
mov dword [ebp - 0x10], eax
jmp 0x40ecef
cmp dword [ebp - 0x488], 1
je 0x40ecd2
mov ecx, dword [ebp - 0x10]
sub ecx, dword [ebp - 0x44]
mov dword [ebp - 0x10], ecx
cmp dword [ebp - 0x488], 0
jle 0x40ecd2
mov edx, dword [ebp - 0x44]
mov eax, dword [ebp - 0x10]
lea ecx, [eax + edx + 3]
mov dword [ebp - 0x10], ecx
xor edx, edx
cmp dword [ebp - 0x498], 0
setg dl
lea edx, [edx + edx + 1]
mov eax, dword [ebp - 0x44]
add eax, edx
mov ecx, dword [ebp - 0x10]
add ecx, eax
mov dword [ebp - 0x10], ecx
mov edx, dword [ebp - 0x24]
movzx eax, byte [edx + 1]
cmp eax, 0x3f
jne 0x40ed04
mov ecx, dword [ebp - 0x24]
add ecx, 1
mov dword [ebp - 0x24], ecx
mov edx, dword [ebp - 0x24]
movzx eax, byte [edx + 1]
cmp eax, 0x2b
jne 0x40ed22
mov ecx, dword [ebp - 0x24]
add ecx, 1
mov dword [ebp - 0x24], ecx
mov edx, dword [ebp - 0x10]
add edx, 6
mov dword [ebp - 0x10], edx
jmp 0x40e844
mov eax, dword [ebp - 4]
mov ecx, dword [ebp - 0x10]
lea edx, [ecx + eax + 3]
mov dword [ebp - 0x10], edx
jmp 0x40e844
mov eax, dword [ebp - 0x24]
add eax, 1
mov dword [ebp - 0x24], eax
mov ecx, dword [ebp - 0x24]
movzx edx, byte [ecx]
cmp edx, 0x5e
jne 0x40ed62
mov dword [ebp - 0x494], 0xa
mov eax, dword [ebp - 0x24]
add eax, 1
mov dword [ebp - 0x24], eax
jmp 0x40ed6c
mov dword [ebp - 0x494], 0
mov dword [ebp - 0x470], 0
mov ecx, dword [ebp - 0x24]
movzx edx, byte [ecx]
test edx, edx
je 0x40f497
cmp dword [ebp - 0x34], 0
je 0x40edbb
mov eax, dword [ebp - 0x24]
movzx ecx, byte [eax]
cmp ecx, 0x5c
jne 0x40eda1
mov edx, dword [ebp - 0x24]
movzx eax, byte [edx + 1]
cmp eax, 0x45
je 0x40eda6
jmp 0x40eefb
mov dword [ebp - 0x34], 0
mov ecx, dword [ebp - 0x24]
add ecx, 1
mov dword [ebp - 0x24], ecx
jmp 0x40f46b
mov edx, dword [ebp - 0x24]
movzx eax, byte [edx]
cmp eax, 0x5c
jne 0x40ee9c
push 1
mov ecx, dword [ebp + 0xc]
push ecx
mov edx, dword [ebp - 0x2c]
push edx
lea eax, [ebp - 0x3c]
push eax
lea ecx, [ebp - 0x24]
push ecx
call fcn.0041043d
add esp, 0x14
mov dword [ebp - 0x480], eax
cmp dword [ebp - 0x3c], 0
je 0x40edf5
jmp 0x4100fc
mov edx, dword [ebp - 0x480]
neg edx
cmp edx, 4
jne 0x40ee0e
mov dword [ebp - 0x480], 8
jmp 0x40ee40
mov eax, dword [ebp - 0x480]
neg eax
cmp eax, 0xf
jne 0x40ee27
mov dword [ebp - 0x480], 0x58
jmp 0x40ee40
mov ecx, dword [ebp - 0x480]
neg ecx
cmp ecx, 0x13
jne 0x40ee40
mov dword [ebp - 0x34], 1
jmp 0x40f46b
cmp dword [ebp - 0x480], 0
jl 0x40ee4e
jmp 0x40f007
mov dword [ebp - 0x494], 0xa
mov edx, dword [ebp - 0x480]
neg edx
cmp edx, 0xe
je 0x40ee72
mov eax, dword [ebp - 0x480]
neg eax
cmp eax, 0xd
jne 0x40ee97
cmp dword [ebp - 0x470], 0
jne 0x40ee8e
mov dword [ebp - 0x470], 1
mov ecx, dword [ebp - 0x10]
add ecx, 4
mov dword [ebp - 0x10], ecx
mov edx, dword [ebp - 0x10]
add edx, 3
mov dword [ebp - 0x10], edx
jmp 0x40f46b
mov eax, dword [ebp - 0x24]
movzx ecx, byte [eax]
cmp ecx, 0x5b
jne 0x40eefb
mov edx, dword [ebp - 0x24]
movzx eax, byte [edx + 1]
cmp eax, 0x3a
je 0x40eecb
mov ecx, dword [ebp - 0x24]
movzx edx, byte [ecx + 1]
cmp edx, 0x2e
je 0x40eecb
mov eax, dword [ebp - 0x24]
movzx ecx, byte [eax + 1]
cmp ecx, 0x3d
jne 0x40eefb
mov edx, dword [ebp - 0x1c]
push edx
lea eax, [ebp - 0x24]
push eax
mov ecx, dword [ebp - 0x24]
push ecx
call fcn.00410bc9
add esp, 0xc
test eax, eax
je 0x40eefb
mov edx, dword [ebp - 0x24]
add edx, 1
mov dword [ebp - 0x24], edx
mov dword [ebp - 0x494], 0xa
jmp 0x40f46b
cmp dword [ebp - 0x484], 0
je 0x40effb
mov dword [ebp - 0x4b0], 0
mov eax, dword [ebp - 0x24]
movzx ecx, byte [eax]
mov dword [ebp - 0x480], ecx
mov edx, dword [ebp - 0x480]
and edx, 0xc0
cmp edx, 0xc0
jne 0x40efed
mov eax, dword [ebp - 0x480]
and eax, 0x3f
movzx ecx, byte [eax + 0x41d548]
mov dword [ebp - 0x4bc], ecx
mov edx, dword [ebp - 0x4bc]
imul edx, edx, 6
mov dword [ebp - 0x4b8], edx
mov eax, dword [ebp - 0x4bc]
mov edx, dword [ebp - 0x480]
and edx, dword [eax*4 + 0x41d530]
mov ecx, dword [ebp - 0x4b8]
shl edx, cl
mov dword [ebp - 0x480], edx
mov dword [ebp - 0x4b4], 1
jmp 0x40ef97
mov eax, dword [ebp - 0x4b4]
add eax, 1
mov dword [ebp - 0x4b4], eax
mov ecx, dword [ebp - 0x4b4]
cmp ecx, dword [ebp - 0x4bc]
jg 0x40efdb
mov edx, dword [ebp - 0x4b8]
sub edx, 6
mov dword [ebp - 0x4b8], edx
mov eax, dword [ebp - 0x24]
add eax, dword [ebp - 0x4b4]
movzx edx, byte [eax]
and edx, 0x3f
mov ecx, dword [ebp - 0x4b8]
shl edx, cl
mov eax, dword [ebp - 0x480]
or eax, edx
mov dword [ebp - 0x480], eax
jmp 0x40ef88
mov ecx, dword [ebp - 0x4b0]
add ecx, dword [ebp - 0x4bc]
mov dword [ebp - 0x4b0], ecx
mov edx, dword [ebp - 0x24]
add edx, dword [ebp - 0x4b0]
mov dword [ebp - 0x24], edx
jmp 0x40f007
mov eax, dword [ebp - 0x24]
movzx ecx, byte [eax]
mov dword [ebp - 0x480], ecx
mov edx, dword [ebp - 0x494]
add edx, 1
mov dword [ebp - 0x494], edx
mov dword [ebp - 0x4ac], 0xffffffff
mov eax, dword [ebp - 0x24]
movzx ecx, byte [eax + 1]
cmp ecx, 0x2d
jne 0x40f1fd
mov edx, dword [ebp - 0x24]
mov dword [ebp - 0x4c0], edx
mov eax, dword [ebp - 0x24]
add eax, 1
mov dword [ebp - 0x24], eax
mov ecx, dword [ebp - 0x24]
movzx edx, byte [ecx + 1]
cmp edx, 0x5c
jne 0x40f0b7
mov eax, dword [ebp - 0x24]
add eax, 1
mov dword [ebp - 0x24], eax
push 1
mov ecx, dword [ebp + 0xc]
push ecx
mov edx, dword [ebp - 0x2c]
push edx
lea eax, [ebp - 0x3c]
push eax
lea ecx, [ebp - 0x24]
push ecx
call fcn.0041043d
add esp, 0x14
mov dword [ebp - 0x4ac], eax
cmp dword [ebp - 0x3c], 0
je 0x40f082
jmp 0x4100fc
mov edx, dword [ebp - 0x4ac]
neg edx
cmp edx, 4
jne 0x40f09b
mov dword [ebp - 0x4ac], 8
jmp 0x40f0b2
mov eax, dword [ebp - 0x4ac]
neg eax
cmp eax, 0xf
jne 0x40f0b2
mov dword [ebp - 0x4ac], 0x58
jmp 0x40f1eb
mov ecx, dword [ebp - 0x24]
movzx edx, byte [ecx + 1]
test edx, edx
je 0x40f1eb
mov eax, dword [ebp - 0x24]
movzx ecx, byte [eax + 1]
cmp ecx, 0x5d
je 0x40f1eb
mov edx, dword [ebp - 0x24]
add edx, 1
mov dword [ebp - 0x24], edx
cmp dword [ebp - 0x484], 0
je 0x40f1df
mov dword [ebp - 0x4c4], 0
mov eax, dword [ebp - 0x24]
movzx ecx, byte [eax]
mov dword [ebp - 0x4ac], ecx
mov edx, dword [ebp - 0x4ac]
and edx, 0xc0
cmp edx, 0xc0
jne 0x40f1d1
mov eax, dword [ebp - 0x4ac]
and eax, 0x3f
movzx ecx, byte [eax + 0x41d548]
mov dword [ebp - 0x4d0], ecx
mov edx, dword [ebp - 0x4d0]
imul edx, edx, 6
mov dword [ebp - 0x4cc], edx
mov eax, dword [ebp - 0x4d0]
mov edx, dword [ebp - 0x4ac]
and edx, dword [eax*4 + 0x41d530]
mov ecx, dword [ebp - 0x4cc]
shl edx, cl
mov dword [ebp - 0x4ac], edx
mov dword [ebp - 0x4c8], 1
jmp 0x40f17b
mov eax, dword [ebp - 0x4c8]
add eax, 1
mov dword [ebp - 0x4c8], eax
mov ecx, dword [ebp - 0x4c8]
cmp ecx, dword [ebp - 0x4d0]
jg 0x40f1bf
mov edx, dword [ebp - 0x4cc]
sub edx, 6
mov dword [ebp - 0x4cc], edx
mov eax, dword [ebp - 0x24]
add eax, dword [ebp - 0x4c8]
movzx edx, byte [eax]
and edx, 0x3f
mov ecx, dword [ebp - 0x4cc]
shl edx, cl
mov eax, dword [ebp - 0x4ac]
or eax, edx
mov dword [ebp - 0x4ac], eax
jmp 0x40f16c
mov ecx, dword [ebp - 0x4c4]
add ecx, dword [ebp - 0x4d0]
mov dword [ebp - 0x4c4], ecx
mov edx, dword [ebp - 0x24]
add edx, dword [ebp - 0x4c4]
mov dword [ebp - 0x24], edx
jmp 0x40f1eb
mov eax, dword [ebp - 0x24]
movzx ecx, byte [eax]
mov dword [ebp - 0x4ac], ecx
cmp dword [ebp - 0x4ac], 0
jge 0x40f1fd
mov edx, dword [ebp - 0x4c0]
mov dword [ebp - 0x24], edx
cmp dword [ebp - 0x4ac], 0
jl 0x40f3eb
mov dword [ebp - 0x494], 0xa
mov eax, dword [ebp - 0x4ac]
cmp eax, dword [ebp - 0x480]
jge 0x40f22e
mov dword [ebp - 0x3c], 8
jmp 0x4100fc
cmp dword [ebp - 0x484], 0
je 0x40f3e6
cmp dword [ebp - 0x4ac], 0xff
jg 0x40f262
mov ecx, dword [ebp + 0xc]
and ecx, 1
test ecx, ecx
je 0x40f3e6
cmp dword [ebp - 0x4ac], 0x7f
jle 0x40f3e6
cmp dword [ebp - 0x470], 0
jne 0x40f27e
mov dword [ebp - 0x470], 1
mov edx, dword [ebp - 0x10]
add edx, 4
mov dword [ebp - 0x10], edx
mov eax, dword [ebp + 0xc]
and eax, 1
test eax, eax
je 0x40f3ae
mov ecx, dword [ebp - 0x480]
mov dword [ebp - 0x4e0], ecx
mov edx, dword [ebp - 0x4ac]
mov dword [ebp - 0x4e8], edx
lea eax, [ebp - 0x4dc]
push eax
lea ecx, [ebp - 0x4e4]
push ecx
mov edx, dword [ebp - 0x4e8]
push edx
lea eax, [ebp - 0x4e0]
push eax
call fcn.00410c4a
add esp, 0x10
test eax, eax
je 0x40f3ae
mov ecx, dword [ebp - 0x4e4]
cmp ecx, dword [ebp - 0x480]
jl 0x40f2ee
mov edx, dword [ebp - 0x4dc]
cmp edx, dword [ebp - 0x4ac]
jg 0x40f2ee
jmp 0x40f2a4
mov eax, dword [ebp - 0x4e4]
cmp eax, dword [ebp - 0x480]
jge 0x40f31b
mov ecx, dword [ebp - 0x480]
sub ecx, 1
cmp dword [ebp - 0x4dc], ecx
jl 0x40f31b
mov edx, dword [ebp - 0x4e4]
mov dword [ebp - 0x480], edx
jmp 0x40f2a4
mov eax, dword [ebp - 0x4dc]
cmp eax, dword [ebp - 0x4ac]
jle 0x40f34b
mov ecx, dword [ebp - 0x4ac]
add ecx, 1
cmp dword [ebp - 0x4e4], ecx
jg 0x40f34b
mov edx, dword [ebp - 0x4dc]
mov dword [ebp - 0x4ac], edx
jmp 0x40f2a4
mov eax, dword [ebp - 0x4e4]
cmp eax, dword [ebp - 0x4dc]
jne 0x40f365
mov dword [ebp - 0x51c], 0
jmp 0x40f381
lea ecx, [ebp - 0x4d8]
push ecx
mov edx, dword [ebp - 0x4dc]
push edx
call fcn.00415840
add esp, 8
mov dword [ebp - 0x51c], eax
lea eax, [ebp - 0x4d8]
push eax
mov ecx, dword [ebp - 0x4e4]
push ecx
call fcn.00415840
add esp, 8
mov edx, dword [ebp - 0x51c]
lea eax, [eax + edx + 1]
mov ecx, dword [ebp - 0x10]
add ecx, eax
mov dword [ebp - 0x10], ecx
jmp 0x40f2a4
lea edx, [ebp - 0x4d8]
push edx
mov eax, dword [ebp - 0x480]
push eax
call fcn.00415840
add esp, 8
mov esi, eax
lea ecx, [ebp - 0x4d8]
push ecx
mov edx, dword [ebp - 0x4ac]
push edx
call fcn.00415840
add esp, 8
add eax, dword [ebp - 0x10]
lea eax, [eax + esi + 1]
mov dword [ebp - 0x10], eax
jmp 0x40f46b
cmp dword [ebp - 0x484], 0
je 0x40f46b
cmp dword [ebp - 0x480], 0xff
jg 0x40f413
mov ecx, dword [ebp + 0xc]
and ecx, 1
test ecx, ecx
je 0x40f46b
cmp dword [ebp - 0x480], 0x7f
jle 0x40f46b
mov dword [ebp - 0x494], 0xa
cmp dword [ebp - 0x470], 0
jne 0x40f439
mov dword [ebp - 0x470], 1
mov edx, dword [ebp - 0x10]
add edx, 4
mov dword [ebp - 0x10], edx
mov eax, dword [ebp + 0xc]
and eax, 1
xor ebx, ebx
test eax, eax
setne bl
inc ebx
lea ecx, [ebp - 0x4f0]
push ecx
mov edx, dword [ebp - 0x480]
push edx
call fcn.00415840
add esp, 8
add eax, 1
imul ebx, eax
mov eax, dword [ebp - 0x10]
add eax, ebx
mov dword [ebp - 0x10], eax
mov ecx, dword [ebp - 0x24]
add ecx, 1
mov dword [ebp - 0x24], ecx
mov edx, dword [ebp - 0x24]
movzx eax, byte [edx]
test eax, eax
je 0x40f497
cmp dword [ebp - 0x34], 0
jne 0x40ed84
mov ecx, dword [ebp - 0x24]
movzx edx, byte [ecx]
cmp edx, 0x5d
jne 0x40ed84
mov eax, dword [ebp - 0x24]
movzx ecx, byte [eax]
test ecx, ecx
jne 0x40f4ad
mov dword [ebp - 0x3c], 6
jmp 0x4100fc
cmp dword [ebp - 0x494], 1
jne 0x40f4c4
mov edx, dword [ebp - 0x10]
add edx, 3
mov dword [ebp - 0x10], edx
jmp 0x40f5a7
mov eax, dword [ebp - 0x10]
add eax, 0x21
mov dword [ebp - 0x10], eax
mov ecx, dword [ebp - 0x24]
movzx edx, byte [ecx]
test edx, edx
je 0x40f5a7
mov eax, dword [ebp - 0x24]
movzx ecx, byte [eax + 1]
cmp ecx, 0x7b
jne 0x40f5a7
mov edx, dword [ebp - 0x24]
add edx, 2
push edx
call fcn.004109e4
add esp, 4
test eax, eax
je 0x40f5a7
lea eax, [ebp - 0x3c]
push eax
lea ecx, [ebp - 0x498]
push ecx
lea edx, [ebp - 0x488]
push edx
mov eax, dword [ebp - 0x24]
add eax, 2
push eax
call fcn.00410ab6
add esp, 0x10
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x3c], 0
je 0x40f531
jmp 0x4100fc
cmp dword [ebp - 0x488], 0
jne 0x40f54c
cmp dword [ebp - 0x498], 1
je 0x40f55e
cmp dword [ebp - 0x498], 0xffffffff
je 0x40f55e
cmp dword [ebp - 0x488], 1
jne 0x40f569
cmp dword [ebp - 0x498], 0xffffffff
jne 0x40f569
mov ecx, dword [ebp - 0x10]
add ecx, 1
mov dword [ebp - 0x10], ecx
jmp 0x40f572
mov edx, dword [ebp - 0x10]
add edx, 5
mov dword [ebp - 0x10], edx
mov eax, dword [ebp - 0x24]
movzx ecx, byte [eax + 1]
cmp ecx, 0x2b
jne 0x40f592
mov edx, dword [ebp - 0x24]
add edx, 1
mov dword [ebp - 0x24], edx
mov eax, dword [ebp - 0x10]
add eax, 6
mov dword [ebp - 0x10], eax
jmp 0x40f5a7
mov ecx, dword [ebp - 0x24]
movzx edx, byte [ecx + 1]
cmp edx, 0x3f
jne 0x40f5a7
mov eax, dword [ebp - 0x24]
add eax, 1
mov dword [ebp - 0x24], eax
jmp 0x40e844
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x48c], 3
mov dword [ebp - 0x47c], 0
mov ecx, dword [ebp - 0x24]
movzx edx, byte [ecx + 1]
cmp edx, 0x3f
jne 0x40fb6e
mov eax, dword [ebp - 0x24]
movzx ecx, byte [eax + 2]
mov dword [ebp - 0x480], ecx
mov edx, dword [ebp - 0x480]
mov dword [ebp - 0x520], edx
mov eax, dword [ebp - 0x520]
sub eax, 0x21
mov dword [ebp - 0x520], eax
cmp dword [ebp - 0x520], 0x31
ja case.0x40f619.1
mov ecx, dword [ebp - 0x520]
movzx edx, byte [ecx + 0x41038f]
jmp dword [edx*4 + 0x41036b]
mov eax, dword [ebp - 0x24]
add eax, 3
mov dword [ebp - 0x24], eax
mov ecx, dword [ebp - 0x24]
movzx edx, byte [ecx]
test edx, edx
je 0x40f649
mov eax, dword [ebp - 0x24]
movzx ecx, byte [eax]
cmp ecx, 0x29
je 0x40f649
mov edx, dword [ebp - 0x24]
add edx, 1
mov dword [ebp - 0x24], edx
jmp 0x40f629
mov eax, dword [ebp - 0x24]
movzx ecx, byte [eax]
test ecx, ecx
jne 0x40f65f
mov dword [ebp - 0x3c], 0x12
jmp 0x4100fc
jmp 0x40e844
mov edx, dword [ebp - 0x24]
add edx, 2
mov dword [ebp - 0x24], edx
jmp 0x40fb6c
mov eax, dword [ebp - 0x24]
add eax, 3
mov dword [ebp - 0x24], eax
mov ecx, dword [ebp - 0x24]
movzx edx, byte [ecx]
cmp edx, 0x3c
jne 0x40f737
mov eax, dword [ebp - 0x24]
add eax, 1
mov dword [ebp - 0x24], eax
mov ecx, dword [ebp - 0x24]
mov dword [ebp - 0x500], ecx
mov edx, dword [ebp - 0x24]
movzx eax, byte [edx]
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ecx + 0xc]
movzx eax, byte [edx + eax]
and eax, 0x10
test eax, eax
je 0x40f6be
mov ecx, dword [ebp - 0x24]
add ecx, 1
mov dword [ebp - 0x24], ecx
jmp 0x40f69c
mov edx, dword [ebp - 0x24]
movzx eax, byte [edx]
cmp eax, 0x3e
je 0x40f6d5
mov dword [ebp - 0x3c], 0x2a
jmp 0x4100fc
mov ecx, dword [ebp - 0x40]
add ecx, 1
mov dword [ebp - 0x40], ecx
cmp dword [ebp - 0x40], 0x2710
jle 0x40f6f3
mov dword [ebp - 0x3c], 0x31
jmp 0x4100fc
mov edx, dword [ebp - 0x24]
sub edx, dword [ebp - 0x500]
cmp edx, dword [ebp - 0x474]
jle 0x40f728
mov eax, dword [ebp - 0x24]
sub eax, dword [ebp - 0x500]
mov dword [ebp - 0x474], eax
cmp dword [ebp - 0x474], 0x20
jle 0x40f728
mov dword [ebp - 0x3c], 0x30
jmp 0x4100fc
mov dword [ebp - 0x47c], 1
jmp 0x40fb6c
mov ecx, dword [ebp - 0x24]
movzx edx, byte [ecx]
cmp edx, 0x3d
je 0x40f74d
mov eax, dword [ebp - 0x24]
movzx ecx, byte [eax]
cmp ecx, 0x3e
jne 0x40f791
mov edx, dword [ebp - 0x10]
add edx, 9
mov dword [ebp - 0x10], edx
mov eax, dword [ebp - 0x24]
add eax, 1
mov dword [ebp - 0x24], eax
mov ecx, dword [ebp - 0x24]
movzx edx, byte [ecx]
mov eax, dword [ebp - 0x1c]
mov ecx, dword [eax + 0xc]
movzx edx, byte [ecx + edx]
and edx, 0x10
test edx, edx
je 0x40f778
jmp 0x40f756
mov eax, dword [ebp - 0x24]
movzx ecx, byte [eax]
cmp ecx, 0x29
je 0x40f78f
mov dword [ebp - 0x3c], 0x2a
jmp 0x4100fc
jmp 0x40f7f7
mov dword [ebp - 0x3c], 0x29
jmp 0x4100fc
mov edx, dword [ebp - 0x24]
add edx, 1
mov dword [ebp - 0x24], edx
mov eax, dword [ebp - 0x24]
add eax, 2
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x480], 0x52
je 0x40f7d7
mov ecx, dword [ebp - 0x24]
add ecx, 1
mov dword [ebp - 0x24], ecx
mov edx, dword [ebp - 0x24]
movzx eax, byte [edx]
movzx ecx, byte [eax + 0x41d3a8]
and ecx, 4
test ecx, ecx
je 0x40f7d7
jmp 0x40f7b8
mov edx, dword [ebp - 0x24]
movzx eax, byte [edx]
cmp eax, 0x29
je 0x40f7ee
mov dword [ebp - 0x3c], 0x1d
jmp 0x4100fc
mov ecx, dword [ebp - 0x10]
add ecx, 9
mov dword [ebp - 0x10], ecx
mov edx, dword [ebp - 0x24]
movzx eax, byte [edx + 1]
cmp eax, 0x2b
je 0x40f827
mov ecx, dword [ebp - 0x24]
movzx edx, byte [ecx + 1]
cmp edx, 0x2a
je 0x40f827
mov eax, dword [ebp - 0x24]
movzx ecx, byte [eax + 1]
cmp ecx, 0x3f
je 0x40f827
mov edx, dword [ebp - 0x24]
movzx eax, byte [edx + 1]
cmp eax, 0x7b
jne 0x40f83f
mov ecx, dword [ebp - 0x10]
add ecx, 6
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0x490], 0xb
jmp 0x40fc55
jmp 0x40e844
mov edx, dword [ebp - 0x24]
add edx, 2
mov dword [ebp - 0x24], edx
mov eax, dword [ebp - 0x24]
add eax, 1
mov dword [ebp - 0x24], eax
mov ecx, dword [ebp - 0x24]
movzx edx, byte [ecx]
movzx eax, byte [edx + 0x41d3a8]
and eax, 4
test eax, eax
je 0x40f86c
jmp 0x40f84d
mov ecx, dword [ebp - 0x24]
movzx edx, byte [ecx]
cmp edx, 0x29
je 0x40f883
mov dword [ebp - 0x3c], 0x27
jmp 0x4100fc
mov eax, dword [ebp - 0x10]
add eax, 6
mov dword [ebp - 0x10], eax
jmp 0x40e844
mov ecx, dword [ebp - 0x24]
add ecx, 3
mov dword [ebp - 0x24], ecx
mov edx, dword [ebp - 0x24]
movzx eax, byte [edx]
cmp eax, 0x3d
je 0x40f8b0
mov ecx, dword [ebp - 0x24]
movzx edx, byte [ecx]
cmp edx, 0x21
jne 0x40f8c5
mov dword [ebp - 0x20], 3
mov eax, dword [ebp - 0x10]
add eax, 3
mov dword [ebp - 0x10], eax
jmp 0x40fb6c
mov dword [ebp - 0x3c], 0x18
jmp 0x4100fa
mov ecx, dword [ebp - 0x24]
movzx edx, byte [ecx + 3]
mov eax, dword [ebp - 0x1c]
mov ecx, dword [eax + 0xc]
movzx edx, byte [ecx + edx]
and edx, 0x10
test edx, edx
je 0x40f936
mov eax, dword [ebp - 0x24]
add eax, 4
mov dword [ebp - 0x24], eax
mov ecx, dword [ebp - 0x10]
add ecx, 3
mov dword [ebp - 0x10], ecx
mov edx, dword [ebp - 0x24]
movzx eax, byte [edx]
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ecx + 0xc]
movzx eax, byte [edx + eax]
and eax, 0x10
test eax, eax
je 0x40f91d
mov ecx, dword [ebp - 0x24]
add ecx, 1
mov dword [ebp - 0x24], ecx
jmp 0x40f8fb
mov edx, dword [ebp - 0x24]
movzx eax, byte [edx]
cmp eax, 0x29
je 0x40f934
mov dword [ebp - 0x3c], 0x1a
jmp 0x4100f8
jmp 0x40f984
mov ecx, dword [ebp - 0x24]
add ecx, 1
mov dword [ebp - 0x24], ecx
mov edx, dword [ebp - 0x24]
movzx eax, byte [edx + 2]
cmp eax, 0x3f
jne 0x40f96f
mov ecx, dword [ebp - 0x24]
movzx edx, byte [ecx + 3]
cmp edx, 0x3d
je 0x40f984
mov eax, dword [ebp - 0x24]
movzx ecx, byte [eax + 3]
cmp ecx, 0x21
je 0x40f984
mov edx, dword [ebp - 0x24]
movzx eax, byte [edx + 3]
cmp eax, 0x3c
je 0x40f984
mov ecx, dword [ebp - 0x24]
add ecx, 2
mov dword [ebp - 0x24], ecx
mov dword [ebp - 0x3c], 0x1c
jmp 0x4100f6
jmp 0x40fb6c
mov dword [ebp - 0x4f4], 0
mov edx, dword [ebp - 0x4f4]
mov dword [ebp - 0x4f8], edx
lea eax, [ebp - 0x4f8]
mov dword [ebp - 0x4fc], eax
mov ecx, dword [ebp - 0x24]
add ecx, 2
mov dword [ebp - 0x24], ecx
jmp 0x40f9bf
mov edx, dword [ebp - 0x24]
add edx, 1
mov dword [ebp - 0x24], edx
mov eax, dword [ebp - 0x24]
movzx ecx, byte [eax]
mov dword [ebp - 0x480], ecx
mov edx, dword [ebp - 0x480]
mov dword [ebp - 0x524], edx
mov eax, dword [ebp - 0x524]
sub eax, 0x29
mov dword [ebp - 0x524], eax
cmp dword [ebp - 0x524], 0x4f
ja case.0x40fa00.1
mov ecx, dword [ebp - 0x524]
movzx edx, byte [ecx + 0x4103ed]
jmp dword [edx*4 + 0x4103c1]
mov eax, dword [ebp - 0x4fc]
mov ecx, dword [eax]
or ecx, 1
mov edx, dword [ebp - 0x4fc]
mov dword [edx], ecx
jmp 0x40f9b6
mov eax, dword [ebp - 0x4fc]
mov ecx, dword [eax]
or ecx, 0x80000
mov edx, dword [ebp - 0x4fc]
mov dword [edx], ecx
mov eax, dword [ebp + 0xc]
or eax, 0x8000000
mov dword [ebp + 0xc], eax
jmp 0x40f9b6
mov ecx, dword [ebp - 0x4fc]
mov edx, dword [ecx]
or edx, 2
mov eax, dword [ebp - 0x4fc]
mov dword [eax], edx
jmp 0x40f9b6
mov ecx, dword [ebp - 0x4fc]
mov edx, dword [ecx]
or edx, 4
mov eax, dword [ebp - 0x4fc]
mov dword [eax], edx
jmp 0x40f9b6
mov ecx, dword [ebp - 0x4fc]
mov edx, dword [ecx]
or edx, 8
mov eax, dword [ebp - 0x4fc]
mov dword [eax], edx
jmp 0x40f9b6
mov ecx, dword [ebp - 0x4fc]
mov edx, dword [ecx]
or edx, 0x40
mov eax, dword [ebp - 0x4fc]
mov dword [eax], edx
jmp 0x40f9b6
mov ecx, dword [ebp - 0x4fc]
mov edx, dword [ecx]
or edx, 0x200
mov eax, dword [ebp - 0x4fc]
mov dword [eax], edx
jmp 0x40f9b6
lea ecx, [ebp - 0x4f4]
mov dword [ebp - 0x4fc], ecx
jmp 0x40f9b6
cmp dword [ebp - 0x30], 0
jne case.0x40fa00.17
mov edx, dword [ebp + 0xc]
or edx, dword [ebp - 0x4f8]
mov eax, dword [ebp - 0x4f4]
not eax
and edx, eax
mov dword [ebp + 0xc], edx
mov dword [ebp - 0x4f4], 0
mov ecx, dword [ebp - 0x4f4]
mov dword [ebp - 0x4f8], ecx
mov edx, dword [ebp - 0x30]
sub edx, 1
mov dword [ebp - 0x30], edx
mov eax, dword [ebp - 0x10]
add eax, 2
mov dword [ebp - 0x10], eax
mov ecx, dword [ebp - 0x4f8]
or ecx, dword [ebp - 0x4f4]
and ecx, 7
test ecx, ecx
je 0x40fb35
mov edx, dword [ebp - 0x10]
add edx, 4
mov dword [ebp - 0x10], edx
mov dword [ebp - 0x20], 2
jmp 0x40fb43
mov dword [ebp - 0x3c], 0xc
jmp 0x4100f4
cmp dword [ebp - 0x480], 0x29
jne 0x40fb6c
cmp dword [ebp - 0x20], 2
jne 0x40fb67
cmp dword [ebp - 4], 0
je 0x40fb5e
cmp dword [ebp - 4], 3
jne 0x40fb67
mov eax, dword [ebp - 4]
add eax, dword [ebp - 0x20]
mov dword [ebp - 4], eax
jmp 0x40e844
jmp 0x40fb82
mov ecx, dword [ebp + 0xc]
and ecx, 0x1000
neg ecx
sbb ecx, ecx
inc ecx
mov dword [ebp - 0x47c], ecx
cmp dword [ebp - 0x47c], 0
je 0x40fba9
mov edx, dword [ebp - 0x2c]
add edx, 1
mov dword [ebp - 0x2c], edx
cmp dword [ebp - 0x2c], 0x64
jle 0x40fba9
mov eax, dword [ebp - 0x48c]
add eax, 3
mov dword [ebp - 0x48c], eax
cmp dword [ebp - 8], 0xc8
jb 0x40fbbe
mov dword [ebp - 0x3c], 0x13
jmp 0x4100f2
mov ecx, dword [ebp - 8]
mov dl, byte [ebp - 4]
mov byte [ebp + ecx - 0x110], dl
mov eax, dword [ebp - 0x20]
mov dword [ebp - 4], eax
mov ecx, dword [ebp - 8]
mov edx, dword [ebp - 0x10]
mov dword [ebp + ecx*4 - 0x430], edx
mov eax, dword [ebp - 8]
add eax, 1
mov dword [ebp - 8], eax
mov ecx, dword [ebp - 0x10]
add ecx, dword [ebp - 0x48c]
mov dword [ebp - 0x10], ecx
jmp 0x40e844
mov edx, dword [ebp - 0x10]
add edx, 3
mov dword [ebp - 0x10], edx
cmp dword [ebp - 8], 0
jbe 0x40fc4b
mov eax, dword [ebp - 8]
sub eax, 1
mov dword [ebp - 8], eax
mov ecx, dword [ebp - 8]
mov edx, dword [ebp - 0x10]
sub edx, dword [ebp + ecx*4 - 0x430]
mov dword [ebp - 0x490], edx
mov eax, dword [ebp - 8]
movzx ecx, byte [ebp + eax - 0x110]
mov dword [ebp - 4], ecx
cmp dword [ebp - 0x490], 0x7530
jle 0x40fc49
mov dword [ebp - 0x3c], 0x32
jmp 0x4100f0
jmp 0x40fc55
mov dword [ebp - 0x490], 0
mov edx, dword [ebp - 0x24]
movzx eax, byte [edx + 1]
mov dword [ebp - 0x480], eax
cmp dword [ebp - 0x480], 0x7b
jne 0x40fcb2
mov ecx, dword [ebp - 0x24]
add ecx, 2
push ecx
call fcn.004109e4
add esp, 4
test eax, eax
je 0x40fcb2
lea edx, [ebp - 0x3c]
push edx
lea eax, [ebp - 0x498]
push eax
lea ecx, [ebp - 0x488]
push ecx
mov edx, dword [ebp - 0x24]
add edx, 2
push edx
call fcn.00410ab6
add esp, 0x10
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x3c], 0
je 0x40fcad
jmp 0x4100ee
jmp 0x40fd3e
cmp dword [ebp - 0x480], 0x2a
jne 0x40fcda
mov dword [ebp - 0x488], 0
mov dword [ebp - 0x498], 0xffffffff
mov eax, dword [ebp - 0x24]
add eax, 1
mov dword [ebp - 0x24], eax
jmp 0x40fd3e
cmp dword [ebp - 0x480], 0x2b
jne 0x40fd02
mov dword [ebp - 0x488], 1
mov dword [ebp - 0x498], 0xffffffff
mov ecx, dword [ebp - 0x24]
add ecx, 1
mov dword [ebp - 0x24], ecx
jmp 0x40fd3e
cmp dword [ebp - 0x480], 0x3f
jne 0x40fd2a
mov dword [ebp - 0x488], 0
mov dword [ebp - 0x498], 1
mov edx, dword [ebp - 0x24]
add edx, 1
mov dword [ebp - 0x24], edx
jmp 0x40fd3e
mov dword [ebp - 0x488], 1
mov dword [ebp - 0x498], 1
cmp dword [ebp - 0x488], 0
jne 0x40fd78
mov eax, dword [ebp - 0x10]
add eax, 1
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x498], 0
jle 0x40fd76
mov ecx, dword [ebp - 0x498]
sub ecx, 1
mov edx, dword [ebp - 0x490]
add edx, 7
imul ecx, edx
mov eax, dword [ebp - 0x10]
add eax, ecx
mov dword [ebp - 0x10], eax
jmp 0x40fdc0
mov ecx, dword [ebp - 0x488]
sub ecx, 1
imul ecx, dword [ebp - 0x490]
mov edx, dword [ebp - 0x10]
add edx, ecx
mov dword [ebp - 0x10], edx
mov eax, dword [ebp - 0x498]
cmp eax, dword [ebp - 0x488]
jle 0x40fdc0
mov ecx, dword [ebp - 0x498]
sub ecx, dword [ebp - 0x488]
mov edx, dword [ebp - 0x490]
add edx, 7
imul ecx, edx
mov eax, dword [ebp - 0x10]
lea ecx, [eax + ecx - 6]
mov dword [ebp - 0x10], ecx
mov edx, dword [ebp - 0x24]
movzx eax, byte [edx + 1]
cmp eax, 0x2b
jne 0x40fdde
mov ecx, dword [ebp - 0x24]
add ecx, 1
mov dword [ebp - 0x24], ecx
mov edx, dword [ebp - 0x10]
add edx, 6
mov dword [ebp - 0x10], edx
jmp 0x40e844
cmp dword [ebp - 0x34], 0
je 0x40fe13
cmp dword [ebp - 0x480], 0x5c
jne 0x40fe13
mov eax, dword [ebp - 0x24]
movzx ecx, byte [eax + 1]
cmp ecx, 0x45
jne 0x40fe13
mov dword [ebp - 0x34], 0
mov edx, dword [ebp - 0x24]
add edx, 1
mov dword [ebp - 0x24], edx
jmp 0x40e844
mov eax, dword [ebp - 0x10]
add eax, 2
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x44], 1
cmp dword [ebp - 0x484], 0
je 0x40fe70
mov ecx, dword [ebp - 0x480]
and ecx, 0xc0
cmp ecx, 0xc0
jne 0x40fe70
mov edx, dword [ebp - 0x24]
movzx eax, byte [edx + 1]
and eax, 0xc0
cmp eax, 0x80
jne 0x40fe70
mov ecx, dword [ebp - 0x44]
add ecx, 1
mov dword [ebp - 0x44], ecx
mov edx, dword [ebp - 0x10]
add edx, 1
mov dword [ebp - 0x10], edx
mov eax, dword [ebp - 0x24]
add eax, 1
mov dword [ebp - 0x24], eax
jmp 0x40fe40
jmp 0x40e844
mov ecx, dword [ebp - 0x10]
add ecx, 4
mov dword [ebp - 0x10], ecx
mov edx, dword [ebp + 0xc]
and edx, 0x4000
test edx, edx
je 0x40fe94
mov eax, dword [ebp - 0x10]
add eax, 6
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0x10000
jle 0x40fea9
mov dword [ebp - 0x3c], 0x14
jmp 0x410107
mov ecx, dword [ebp - 0x474]
add ecx, 3
mov edx, dword [ebp - 0x40]
imul edx, ecx
mov eax, dword [ebp - 0x10]
lea ecx, [eax + edx + 0x28]
mov dword [ebp - 0x38], ecx
mov edx, dword [ebp - 0x38]
push edx
call dword [0x41fab0]
add esp, 4
mov dword [ebp - 0x478], eax
cmp dword [ebp - 0x478], 0
jne 0x40feea
mov dword [ebp - 0x3c], 0x15
jmp 0x410107
mov eax, dword [ebp - 0x478]
mov dword [eax], 0x50435245
mov ecx, dword [ebp - 0x478]
mov edx, dword [ebp - 0x38]
mov dword [ecx + 4], edx
mov eax, dword [ebp - 0x478]
mov ecx, dword [ebp + 0xc]
mov dword [eax + 8], ecx
mov edx, dword [ebp - 0x478]
mov dword [edx + 0xc], 0
mov eax, dword [ebp - 0x478]
mov word [eax + 0x18], 0x28
mov ecx, dword [ebp - 0x474]
add ecx, 3
mov edx, dword [ebp - 0x478]
mov word [edx + 0x1a], cx
mov eax, dword [ebp - 0x478]
mov cx, word [ebp - 0x40]
mov word [eax + 0x1c], cx
mov edx, dword [ebp - 0x478]
mov word [edx + 0x1e], 0
xor eax, eax
cmp dword [ebp + 0x1c], 0x420338
sete al
dec eax
and eax, dword [ebp + 0x1c]
mov ecx, dword [ebp - 0x478]
mov dword [ecx + 0x20], eax
mov edx, dword [ebp - 0x478]
mov dword [edx + 0x24], 0
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0x1c], 0
mov ecx, dword [ebp - 0x474]
add ecx, 3
mov edx, dword [ebp - 0x1c]
mov dword [edx + 0x20], ecx
mov eax, dword [ebp - 0x478]
movzx ecx, word [eax + 0x18]
mov edx, dword [ebp - 0x478]
add edx, ecx
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0x18], edx
mov ecx, dword [ebp - 0x478]
movzx edx, word [ecx + 0x1a]
mov eax, dword [ebp - 0x478]
movzx ecx, word [eax + 0x1c]
imul edx, ecx
mov eax, dword [ebp - 0x1c]
add edx, dword [eax + 0x18]
mov dword [ebp - 0x14], edx
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x14]
mov dword [ecx + 0x10], edx
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp + 8]
mov dword [eax + 0x14], ecx
mov edx, dword [ebp - 0x1c]
mov dword [edx + 0x2c], 0
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0x30], 0
mov ecx, dword [ebp + 8]
mov dword [ebp - 0x24], ecx
mov edx, dword [ebp - 0x14]
mov dword [ebp - 0x28], edx
mov eax, dword [ebp - 0x28]
mov byte [eax], 0x50
mov dword [ebp - 0x2c], 0
mov ecx, dword [ebp - 0x1c]
push ecx
push 0
lea edx, [ebp - 0x48]
push edx
lea eax, [ebp - 0xc]
push eax
push 0
push 0
lea ecx, [ebp - 0x3c]
push ecx
lea edx, [ebp - 0x24]
push edx
lea eax, [ebp - 0x28]
push eax
lea ecx, [ebp - 0x2c]
push ecx
mov edx, dword [ebp + 0xc]
and edx, 7
push edx
mov eax, dword [ebp + 0xc]
push eax
call fcn.00410cf7
add esp, 0x30
mov ecx, dword [ebp - 0x478]
mov dx, word [ebp - 0x2c]
mov word [ecx + 0x10], dx
mov eax, dword [ebp - 0x478]
mov ecx, dword [ebp - 0x1c]
mov dx, word [ecx + 0x24]
mov word [eax + 0x12], dx
mov eax, dword [ebp - 0x1c]
cmp dword [eax + 0x30], 0
je 0x41007f
mov ecx, dword [ebp - 0x478]
mov edx, dword [ecx + 8]
or edx, 0x80000000
mov eax, dword [ebp - 0x478]
mov dword [eax + 8], edx
cmp dword [ebp - 0x3c], 0
jne 0x410096
mov ecx, dword [ebp - 0x24]
movzx edx, byte [ecx]
test edx, edx
je 0x410096
mov dword [ebp - 0x3c], 0x16
mov eax, dword [ebp - 0x28]
mov byte [eax], 0
mov ecx, dword [ebp - 0x28]
add ecx, 1
mov dword [ebp - 0x28], ecx
mov edx, dword [ebp - 0x28]
sub edx, dword [ebp - 0x14]
cmp edx, dword [ebp - 0x10]
jle 0x4100b7
mov dword [ebp - 0x3c], 0x17
mov eax, dword [ebp - 0x478]
movzx ecx, word [eax + 0x12]
mov edx, dword [ebp - 0x478]
movzx eax, word [edx + 0x10]
cmp ecx, eax
jle 0x4100d6
mov dword [ebp - 0x3c], 0xf
cmp dword [ebp - 0x3c], 0
je 0x41012b
mov ecx, dword [ebp - 0x478]
push ecx
call dword [0x41fab4]
add esp, 4
jmp 0x4100fc
jmp 0x4100fc
jmp 0x4100fc
jmp 0x4100fc
jmp 0x4100fc
jmp 0x4100fc
jmp 0x4100fc
jmp 0x4100fc
mov edx, dword [ebp - 0x24]
sub edx, dword [ebp + 8]
mov eax, dword [ebp + 0x18]
mov dword [eax], edx
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp - 0x3c]
mov eax, dword [edx*4 + 0x420268]
mov dword [ecx], eax
cmp dword [ebp + 0x10], 0
je 0x410124
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp - 0x3c]
mov dword [ecx], edx
xor eax, eax
jmp 0x4102e8
mov eax, dword [ebp + 0xc]
and eax, 0x10
test eax, eax
jne 0x410246
mov ecx, dword [ebp + 0xc]
mov dword [ebp - 0x504], ecx
mov edx, dword [ebp - 0x1c]
mov eax, dword [edx + 0x28]
push eax
push 0
lea ecx, [ebp - 0x504]
push ecx
mov edx, dword [ebp - 0x14]
push edx
call fcn.00415068
add esp, 0x10
test eax, eax
je 0x41017c
mov eax, dword [ebp - 0x478]
mov ecx, dword [eax + 8]
or ecx, 0x10
mov edx, dword [ebp - 0x478]
mov dword [edx + 8], ecx
jmp 0x410246
cmp dword [ebp - 0xc], 0
jge 0x41019a
push 0
lea eax, [ebp - 0x504]
push eax
mov ecx, dword [ebp - 0x14]
push ecx
call fcn.00415302
add esp, 0xc
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
jl 0x410215
mov edx, dword [ebp - 0xc]
and edx, 0xff
mov dword [ebp - 0x508], edx
mov eax, dword [ebp - 0xc]
and eax, 0x100
test eax, eax
je 0x4101e1
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ecx + 4]
mov eax, dword [ebp - 0x508]
movzx ecx, byte [edx + eax]
cmp ecx, dword [ebp - 0x508]
jne 0x4101e1
mov edx, dword [ebp - 0x508]
mov dword [ebp - 0x528], edx
jmp 0x4101ea
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x528], eax
mov ecx, dword [ebp - 0x478]
mov dx, word [ebp - 0x528]
mov word [ecx + 0x14], dx
mov eax, dword [ebp - 0x478]
mov ecx, dword [eax + 8]
or ecx, 0x40000000
mov edx, dword [ebp - 0x478]
mov dword [edx + 8], ecx
jmp 0x410246
mov eax, dword [ebp - 0x1c]
mov ecx, dword [eax + 0x28]
push ecx
push 0
mov edx, dword [ebp - 0x14]
push edx
call fcn.004151cf
add esp, 0xc
test eax, eax
je 0x410246
mov eax, dword [ebp - 0x478]
mov ecx, dword [eax + 8]
or ecx, 0x10000000
mov edx, dword [ebp - 0x478]
mov dword [edx + 8], ecx
cmp dword [ebp - 0x48], 0
jl 0x4102e2
mov eax, dword [ebp - 0x478]
mov ecx, dword [eax + 8]
and ecx, 0x10
test ecx, ecx
je 0x41026d
mov edx, dword [ebp - 0x48]
and edx, 0x200
test edx, edx
je 0x4102e2
mov eax, dword [ebp - 0x48]
and eax, 0xff
mov dword [ebp - 0x50c], eax
mov ecx, dword [ebp - 0x48]
and ecx, 0x100
test ecx, ecx
je 0x4102b0
mov edx, dword [ebp - 0x1c]
mov eax, dword [edx + 4]
mov ecx, dword [ebp - 0x50c]
movzx edx, byte [eax + ecx]
cmp edx, dword [ebp - 0x50c]
jne 0x4102b0
mov eax, dword [ebp - 0x48]
and eax, 0xfffffeff
mov dword [ebp - 0x52c], eax
jmp 0x4102b9
mov ecx, dword [ebp - 0x48]
mov dword [ebp - 0x52c], ecx
mov edx, dword [ebp - 0x478]
mov ax, word [ebp - 0x52c]
mov word [edx + 0x16], ax
mov ecx, dword [ebp - 0x478]
mov edx, dword [ecx + 8]
or edx, 0x20000000
mov eax, dword [ebp - 0x478]
mov dword [eax + 8], edx
mov eax, dword [ebp - 0x478]
pop esi
pop ebx
mov esp, ebp
pop ebp
ret