Function at 0x40f290
Capabilities:
Encode data using base64

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4aac80
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
push ecx
sub esp, 0x930
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x774], ecx
mov dword [ebp - 0x14], 0
mov dword [ebp - 4], 0
mov eax, dword [ebp + 8]
push eax
call fcn.0042b4af
add esp, 4
mov dword [ebp - 0x778], eax
cmp dword [ebp - 0x778], 0
jne 0x40f2ec
mov eax, dword [ebp - 0x14]
jmp 0x411076
mov byte [ebp - 0x5f4], 0
mov ecx, 0xb
xor eax, eax
lea edi, [ebp - 0x5f3]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov dword [ebp - 0x1c], 0
lea ecx, [ebp - 0x1c]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.00422f48
add esp, 8
mov dword [ebp - 0x77c], eax
cmp dword [ebp - 0x77c], 0
je 0x40f332
xor eax, eax
jmp 0x411076
mov dword [ebp - 0x5f8], 0
lea ecx, [ebp - 0x5c4]
call fcn.0041f6e0
mov dword [ebp - 0x780], eax
mov byte [ebp - 4], 1
cmp dword [ebp - 0x1c], 0
jne 0x40f442
push 1
mov eax, dword [ebp + 8]
push eax
lea ecx, [ebp - 0x5c4]
call fcn.00494940
mov dword [ebp - 0x784], eax
cmp dword [ebp - 0x784], 0
jne 0x40f387
mov dword [ebp - 0x5f8], 0
jmp 0x40f391
mov dword [ebp - 0x5f8], 1
mov byte [ebp - 0x608], 0
xor ecx, ecx
mov dword [ebp - 0x607], ecx
mov dword [ebp - 0x603], ecx
mov dword [ebp - 0x5ff], ecx
mov word [ebp - 0x5fb], cx
mov byte [ebp - 0x5f9], cl
lea edx, [ebp - 0x608]
push edx
lea ecx, [ebp - 0x5c4]
call fcn.004953a0
call fcn.004260d5
mov dword [ebp - 0x788], eax
lea eax, [ebp - 0x5f4]
push eax
lea ecx, [ebp - 0x608]
push ecx
mov ecx, dword [ebp - 0x788]
call fcn.0042555a
mov dword [ebp - 0x78c], eax
cmp dword [ebp - 0x78c], 0
je 0x40f442
lea edx, [ebp - 0x5f4]
push edx
mov eax, dword [ebp + 8]
push eax
push 0
mov ecx, dword [ebp - 0x774]
call fcn.0040d4d6
mov ecx, dword [ebp - 0x14]
add ecx, 1
mov dword [ebp - 0x14], ecx
mov edx, dword [ebp - 0x14]
mov dword [ebp - 0x70c], edx
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x5c4]
call fcn.0041f7aa
mov eax, dword [ebp - 0x70c]
jmp 0x411076
mov eax, dword [ebp + 8]
push eax
lea ecx, [ebp - 0x5c4]
call fcn.0041fafd
mov dword [ebp - 0x790], eax
cmp dword [ebp - 0x790], 0
jne 0x40f484
mov dword [ebp - 0x710], 0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x5c4]
call fcn.0041f7aa
mov eax, dword [ebp - 0x710]
jmp 0x411076
mov ecx, dword [ebp + 8]
push ecx
lea ecx, [ebp - 0x5c4]
call fcn.0041f85a
mov dword [ebp - 0x794], eax
cmp dword [ebp - 0x794], 0
je 0x40f4c6
mov dword [ebp - 0x714], 0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x5c4]
call fcn.0041f7aa
mov eax, dword [ebp - 0x714]
jmp 0x411076
lea ecx, [ebp - 0x5c4]
call fcn.00495140
mov dword [ebp - 0x798], eax
cmp dword [ebp - 0x798], 1
jne 0x40f4e9
mov edx, dword [ebp + 0xc]
mov dword [edx], 1
call fcn.0045f715
mov dword [ebp - 0x79c], eax
mov ecx, dword [ebp - 0x79c]
call fcn.0045ba80
mov dword [ebp - 0x7a0], eax
mov ecx, dword [ebp - 0x7a0]
call fcn.004272e5
mov dword [ebp - 0x7a4], eax
mov ecx, dword [ebp - 0x7a4]
call fcn.00453a6c
mov dword [ebp - 0x7a8], eax
lea eax, [ebp - 0x718]
push eax
mov ecx, dword [ebp - 0x7a8]
call fcn.004172b0
mov dword [ebp - 0x7ac], eax
mov ecx, dword [ebp - 0x7ac]
push ecx
lea ecx, [ebp - 0x18]
call fcn.0045f770
jmp 0x40f561
push 0
lea edx, [ebp - 0x71c]
push edx
lea ecx, [ebp - 0x18]
call fcn.00417310
mov eax, dword [ebp - 0x774]
cmp dword [eax + 0x434], 0
jne 0x411043
call fcn.0045f715
mov dword [ebp - 0x7b0], eax
mov ecx, dword [ebp - 0x7b0]
call fcn.0045ba80
mov dword [ebp - 0x7b4], eax
mov ecx, dword [ebp - 0x7b4]
call fcn.004272e5
mov dword [ebp - 0x7b8], eax
mov ecx, dword [ebp - 0x7b8]
call fcn.00453a6c
mov dword [ebp - 0x7bc], eax
lea ecx, [ebp - 0x720]
push ecx
mov ecx, dword [ebp - 0x7bc]
call fcn.00436710
mov dword [ebp - 0x7c0], eax
mov edx, dword [ebp - 0x7c0]
push edx
lea ecx, [ebp - 0x18]
call fcn.00448ed0
mov byte [ebp - 0x7c4], al
mov eax, dword [ebp - 0x7c4]
and eax, 0xff
test eax, eax
je 0x411043
lea ecx, [ebp - 0x18]
call fcn.00432be0
mov dword [ebp - 0x7c8], eax
mov ecx, dword [ebp - 0x7c8]
mov dword [ebp - 0x614], ecx
mov dword [ebp - 0x610], 0
mov dword [ebp - 0x60c], 0
mov edx, dword [ebp - 0x774]
cmp dword [edx + 0x434], 0
jne 0x40f668
call fcn.0045f715
mov dword [ebp - 0x7cc], eax
mov eax, dword [ebp - 0x614]
push eax
mov ecx, dword [ebp - 0x7cc]
call fcn.0045e481
mov byte [ebp - 0x7d0], al
mov ecx, dword [ebp - 0x7d0]
and ecx, 0xff
cmp ecx, 2
je 0x40f668
jmp 0x40f550
mov edx, dword [ebp - 0x614]
mov edx, dword [edx]
mov cl, 0x33
mov eax, dword [edx + 0x10]
mov edx, dword [edx + 0x14]
call sub.ntdll.dll__allshl
mov cl, 0x3f
call sub.ntdll.dll__allshr
and eax, 1
and edx, 0
mov dword [ebp - 0x7d8], eax
mov dword [ebp - 0x7d4], edx
mov eax, dword [ebp - 0x7d8]
or eax, dword [ebp - 0x7d4]
test eax, eax
je 0x40f6ca
mov dword [ebp - 0x724], 0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x5c4]
call fcn.0041f7aa
mov eax, dword [ebp - 0x724]
jmp 0x411076
mov ecx, dword [ebp - 0x614]
mov edx, dword [ecx]
mov cl, 0x3f
mov eax, dword [edx + 0x10]
mov edx, dword [edx + 0x14]
call sub.ntdll.dll__allshl
mov cl, 0x3f
call sub.ntdll.dll__allshr
and eax, 1
and edx, 0
mov dword [ebp - 0x7e0], eax
mov dword [ebp - 0x7dc], edx
mov eax, dword [ebp - 0x7e0]
or eax, dword [ebp - 0x7dc]
test eax, eax
je 0x40f726
mov ecx, dword [ebp - 0x610]
add ecx, 1
mov edx, dword [ebp - 0x60c]
adc edx, 0
mov dword [ebp - 0x610], ecx
mov dword [ebp - 0x60c], edx
mov eax, dword [ebp - 0x614]
mov edx, dword [eax]
mov cl, 0x3e
mov eax, dword [edx + 0x10]
mov edx, dword [edx + 0x14]
call sub.ntdll.dll__allshl
mov cl, 0x3f
call sub.ntdll.dll__allshr
and eax, 1
and edx, 0
mov dword [ebp - 0x7e8], eax
mov dword [ebp - 0x7e4], edx
mov eax, dword [ebp - 0x7e8]
or eax, dword [ebp - 0x7e4]
test eax, eax
je 0x40f782
mov ecx, dword [ebp - 0x610]
add ecx, 1
mov edx, dword [ebp - 0x60c]
adc edx, 0
mov dword [ebp - 0x610], ecx
mov dword [ebp - 0x60c], edx
mov eax, dword [ebp - 0x614]
mov edx, dword [eax]
mov cl, 0x3d
mov eax, dword [edx + 0x10]
mov edx, dword [edx + 0x14]
call sub.ntdll.dll__allshl
mov cl, 0x3f
call sub.ntdll.dll__allshr
and eax, 1
and edx, 0
mov dword [ebp - 0x7f0], eax
mov dword [ebp - 0x7ec], edx
mov eax, dword [ebp - 0x7f0]
or eax, dword [ebp - 0x7ec]
test eax, eax
je 0x40f896
mov ecx, dword [ebp - 0x614]
mov edx, dword [ecx]
mov cl, 0x3d
mov eax, dword [edx + 0x18]
mov edx, dword [edx + 0x1c]
call sub.ntdll.dll__allshl
mov cl, 0x3f
call sub.ntdll.dll__allshr
and eax, 1
and edx, 0
mov dword [ebp - 0x7f8], eax
mov dword [ebp - 0x7f4], edx
mov eax, dword [ebp - 0x7f8]
or eax, dword [ebp - 0x7f4]
test eax, eax
je 0x40f84d
call fcn.0041ced0
mov dword [ebp - 0x7fc], eax
push 0xffffffffffffffff
mov ecx, dword [ebp + 8]
push ecx
mov ecx, dword [ebp - 0x7fc]
call fcn.0041ecc0
mov dword [ebp - 0x800], eax
cmp dword [ebp - 0x800], 0
je 0x40f84b
mov edx, dword [ebp - 0x610]
add edx, 1
mov eax, dword [ebp - 0x60c]
adc eax, 0
mov dword [ebp - 0x610], edx
mov dword [ebp - 0x60c], eax
jmp 0x40f896
call fcn.0041ced0
mov dword [ebp - 0x804], eax
push 0xffffffffffffffff
mov ecx, dword [ebp + 8]
push ecx
mov ecx, dword [ebp - 0x804]
call fcn.0041ecc0
mov dword [ebp - 0x808], eax
cmp dword [ebp - 0x808], 0
jne 0x40f896
mov edx, dword [ebp - 0x610]
add edx, 1
mov eax, dword [ebp - 0x60c]
adc eax, 0
mov dword [ebp - 0x610], edx
mov dword [ebp - 0x60c], eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.00401a40
add esp, 4
mov dword [ebp - 0x80c], eax
mov edx, dword [ebp - 0x80c]
mov dword [ebp - 0x618], edx
cmp dword [ebp - 0x618], 0x3200000
jbe 0x40f8e4
mov dword [ebp - 0x728], 0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x5c4]
call fcn.0041f7aa
mov eax, dword [ebp - 0x728]
jmp 0x411076
cmp dword [ebp - 0x1c], 0
jne 0x40f9b7
cmp dword [ebp - 0x5f8], 0
jne 0x40f9b7
mov eax, dword [ebp - 0x614]
mov edx, dword [eax]
mov cl, 0x36
mov eax, dword [edx + 0x10]
mov edx, dword [edx + 0x14]
call sub.ntdll.dll__allshl
mov cl, 0x3f
call sub.ntdll.dll__allshr
mov dword [ebp - 0x814], eax
mov dword [ebp - 0x810], edx
mov eax, dword [ebp - 0x814]
or eax, dword [ebp - 0x810]
test eax, eax
jne 0x40f93f
mov dword [ebp - 0x818], 1
jmp 0x40f949
mov dword [ebp - 0x818], 0
mov ecx, dword [ebp - 0x818]
and ecx, 1
test ecx, ecx
je 0x40f9b2
mov edx, dword [ebp - 0x614]
mov edx, dword [edx]
mov cl, 0x36
mov eax, dword [edx + 0x18]
mov edx, dword [edx + 0x1c]
call sub.ntdll.dll__allshl
mov cl, 0x3f
call sub.ntdll.dll__allshr
and eax, 1
and edx, 0
mov dword [ebp - 0x820], eax
mov dword [ebp - 0x81c], edx
mov eax, dword [ebp - 0x820]
or eax, dword [ebp - 0x81c]
test eax, eax
jne 0x40f9b2
mov ecx, dword [ebp - 0x610]
add ecx, 1
mov edx, dword [ebp - 0x60c]
adc edx, 0
mov dword [ebp - 0x610], ecx
mov dword [ebp - 0x60c], edx
jmp 0x410e9a
mov eax, dword [ebp - 0x614]
mov edx, dword [eax]
mov cl, 0x39
mov eax, dword [edx + 0x10]
mov edx, dword [edx + 0x14]
call sub.ntdll.dll__allshl
mov cl, 0x3f
call sub.ntdll.dll__allshr
and eax, 1
and edx, 0
mov dword [ebp - 0x828], eax
mov dword [ebp - 0x824], edx
mov eax, dword [ebp - 0x828]
or eax, dword [ebp - 0x824]
test eax, eax
je 0x40fa8b
mov ecx, dword [ebp - 0x614]
mov edx, dword [ecx]
mov cl, 0x39
mov eax, dword [edx + 0x18]
mov edx, dword [edx + 0x1c]
call sub.ntdll.dll__allshl
mov cl, 0x3f
call sub.ntdll.dll__allshr
and eax, 1
and edx, 0
mov dword [ebp - 0x830], eax
mov dword [ebp - 0x82c], edx
mov eax, dword [ebp - 0x830]
or eax, dword [ebp - 0x82c]
test eax, eax
je 0x40fa62
cmp dword [ebp - 0x1c], 0
jne 0x40fa42
jmp 0x410e9a
mov ecx, dword [ebp - 0x610]
add ecx, 1
mov edx, dword [ebp - 0x60c]
adc edx, 0
mov dword [ebp - 0x610], ecx
mov dword [ebp - 0x60c], edx
jmp 0x40fa8b
cmp dword [ebp - 0x1c], 0
je 0x40fa6d
jmp 0x410e9a
mov eax, dword [ebp - 0x610]
add eax, 1
mov ecx, dword [ebp - 0x60c]
adc ecx, 0
mov dword [ebp - 0x610], eax
mov dword [ebp - 0x60c], ecx
mov edx, dword [ebp - 0x614]
mov edx, dword [edx]
mov cl, 0x37
mov eax, dword [edx + 0x10]
mov edx, dword [edx + 0x14]
call sub.ntdll.dll__allshl
mov cl, 0x3f
call sub.ntdll.dll__allshr
and eax, 1
and edx, 0
mov dword [ebp - 0x838], eax
mov dword [ebp - 0x834], edx
mov eax, dword [ebp - 0x838]
or eax, dword [ebp - 0x834]
test eax, eax
je 0x40fb3e
mov dword [ebp - 0x61c], 0
call fcn.0045f715
mov dword [ebp - 0x83c], eax
lea ecx, [ebp - 0x61c]
push ecx
mov edx, dword [ebp - 0x614]
push edx
mov eax, dword [ebp - 0x618]
push eax
mov ecx, dword [ebp - 0x83c]
call fcn.0045d2f9
mov dword [ebp - 0x840], eax
cmp dword [ebp - 0x840], 0
je 0x40fb12
jmp 0x410e9a
cmp dword [ebp - 0x61c], 0
jne 0x40fb20
jmp 0x410e9a
mov ecx, dword [ebp - 0x610]
add ecx, 1
mov edx, dword [ebp - 0x60c]
adc edx, 0
mov dword [ebp - 0x610], ecx
mov dword [ebp - 0x60c], edx
mov eax, dword [ebp - 0x614]
mov edx, dword [eax]
mov cl, 0x3b
mov eax, dword [edx + 0x10]
mov edx, dword [edx + 0x14]
call sub.ntdll.dll__allshl
mov cl, 0x3f
call sub.ntdll.dll__allshr
and eax, 1
and edx, 0
mov dword [ebp - 0x848], eax
mov dword [ebp - 0x844], edx
mov eax, dword [ebp - 0x848]
or eax, dword [ebp - 0x844]
test eax, eax
jne 0x40fbb8
mov ecx, dword [ebp - 0x614]
mov edx, dword [ecx]
mov cl, 0x3a
mov eax, dword [edx + 0x10]
mov edx, dword [edx + 0x14]
call sub.ntdll.dll__allshl
mov cl, 0x3f
call sub.ntdll.dll__allshr
mov dword [ebp - 0x850], eax
mov dword [ebp - 0x84c], edx
mov eax, dword [ebp - 0x850]
or eax, dword [ebp - 0x84c]
test eax, eax
je 0x40fdae
mov dword [ebp - 0x624], 0
mov dword [ebp - 0x620], 0
lea ecx, [ebp - 0x620]
push ecx
lea edx, [ebp - 0x624]
push edx
mov eax, dword [ebp + 8]
push eax
call fcn.00422ec7
add esp, 0xc
mov dword [ebp - 0x854], eax
cmp dword [ebp - 0x854], 0
je 0x40fbfa
jmp 0x410e9a
mov ecx, dword [ebp - 0x614]
mov edx, dword [ecx]
mov cl, 0x3b
mov eax, dword [edx + 0x10]
mov edx, dword [edx + 0x14]
call sub.ntdll.dll__allshl
mov cl, 0x3f
call sub.ntdll.dll__allshr
and eax, 1
and edx, 0
mov dword [ebp - 0x85c], eax
mov dword [ebp - 0x858], edx
mov eax, dword [ebp - 0x85c]
or eax, dword [ebp - 0x858]
test eax, eax
je 0x40fcd4
mov ecx, dword [ebp - 0x614]
mov edx, dword [ecx]
mov cl, 0x3b
mov eax, dword [edx + 0x18]
mov edx, dword [edx + 0x1c]
call sub.ntdll.dll__allshl
mov cl, 0x3f
call sub.ntdll.dll__allshr
and eax, 1
and edx, 0
mov dword [ebp - 0x864], eax
mov dword [ebp - 0x860], edx
mov eax, dword [ebp - 0x864]
or eax, dword [ebp - 0x860]
test eax, eax
je 0x40fca8
cmp dword [ebp - 0x620], 0
jne 0x40fc88
jmp 0x410e9a
mov ecx, dword [ebp - 0x610]
add ecx, 1
mov edx, dword [ebp - 0x60c]
adc edx, 0
mov dword [ebp - 0x610], ecx
mov dword [ebp - 0x60c], edx
jmp 0x40fcd4
cmp dword [ebp - 0x620], 0
je 0x40fcb6
jmp 0x410e9a
mov eax, dword [ebp - 0x610]
add eax, 1
mov ecx, dword [ebp - 0x60c]
adc ecx, 0
mov dword [ebp - 0x610], eax
mov dword [ebp - 0x60c], ecx
mov edx, dword [ebp - 0x614]
mov edx, dword [edx]
mov cl, 0x3a
mov eax, dword [edx + 0x10]
mov edx, dword [edx + 0x14]
call sub.ntdll.dll__allshl
mov cl, 0x3f
call sub.ntdll.dll__allshr
and eax, 1
and edx, 0
mov dword [ebp - 0x86c], eax
mov dword [ebp - 0x868], edx
mov eax, dword [ebp - 0x86c]
or eax, dword [ebp - 0x868]
test eax, eax
je 0x40fdae
mov ecx, dword [ebp - 0x614]
mov edx, dword [ecx]
mov cl, 0x3a
mov eax, dword [edx + 0x18]
mov edx, dword [edx + 0x1c]
call sub.ntdll.dll__allshl
mov cl, 0x3f
call sub.ntdll.dll__allshr
and eax, 1
and edx, 0
mov dword [ebp - 0x874], eax
mov dword [ebp - 0x870], edx
mov eax, dword [ebp - 0x874]
or eax, dword [ebp - 0x870]
test eax, eax
je 0x40fd82
cmp dword [ebp - 0x624], 0
jne 0x40fd62
jmp 0x410e9a
mov ecx, dword [ebp - 0x610]
add ecx, 1
mov edx, dword [ebp - 0x60c]
adc edx, 0
mov dword [ebp - 0x610], ecx
mov dword [ebp - 0x60c], edx
jmp 0x40fdae
cmp dword [ebp - 0x624], 0
je 0x40fd90
jmp 0x410e9a
mov eax, dword [ebp - 0x610]
add eax, 1
mov ecx, dword [ebp - 0x60c]
adc ecx, 0
mov dword [ebp - 0x610], eax
mov dword [ebp - 0x60c], ecx
cmp dword [ebp - 0x1c], 0
je 0x40fdb9
jmp 0x410e9a
mov edx, dword [ebp - 0x614]
mov edx, dword [edx]
mov cl, 0x3c
mov eax, dword [edx + 0x10]
mov edx, dword [edx + 0x14]
call sub.ntdll.dll__allshl
mov cl, 0x3f
call sub.ntdll.dll__allshr
and eax, 1
and edx, 0
mov dword [ebp - 0x87c], eax
mov dword [ebp - 0x878], edx
mov eax, dword [ebp - 0x87c]
or eax, dword [ebp - 0x878]
test eax, eax
je 0x40fec1
mov ecx, dword [ebp - 0x614]
mov edx, dword [ecx]
mov cl, 0x3c
mov eax, dword [edx + 0x18]
mov edx, dword [edx + 0x1c]
call sub.ntdll.dll__allshl
mov cl, 0x3f
call sub.ntdll.dll__allshr
and eax, 1
and edx, 0
mov dword [ebp - 0x884], eax
mov dword [ebp - 0x880], edx
mov eax, dword [ebp - 0x884]
or eax, dword [ebp - 0x880]
test eax, eax
je 0x40fe7e
lea ecx, [ebp - 0x5c4]
call fcn.0041f847
mov dword [ebp - 0x888], eax
mov ecx, dword [ebp - 0x888]
cmp dword [ecx + 0xd8], 0
jne 0x40fe5e
jmp 0x410e9a
mov edx, dword [ebp - 0x610]
add edx, 1
mov eax, dword [ebp - 0x60c]
adc eax, 0
mov dword [ebp - 0x610], edx
mov dword [ebp - 0x60c], eax
jmp 0x40fec1
lea ecx, [ebp - 0x5c4]
call fcn.0041f847
mov dword [ebp - 0x88c], eax
mov ecx, dword [ebp - 0x88c]
cmp dword [ecx + 0xd8], 0
je 0x40fea3
jmp 0x410e9a
mov edx, dword [ebp - 0x610]
add edx, 1
mov eax, dword [ebp - 0x60c]
adc eax, 0
mov dword [ebp - 0x610], edx
mov dword [ebp - 0x60c], eax
mov ecx, dword [ebp - 0x614]
mov edx, dword [ecx]
mov cl, 0x36
mov eax, dword [edx + 0x10]
mov edx, dword [edx + 0x14]
call sub.ntdll.dll__allshl
mov cl, 0x3f
call sub.ntdll.dll__allshr
and eax, 1
and edx, 0
mov dword [ebp - 0x894], eax
mov dword [ebp - 0x890], edx
mov eax, dword [ebp - 0x894]
or eax, dword [ebp - 0x890]
test eax, eax
je 0x410b94
mov word [ebp - 0x628], 0
mov ecx, dword [ebp - 0x614]
mov edx, dword [ecx]
mov cl, 0x36
mov eax, dword [edx + 0x18]
mov edx, dword [edx + 0x1c]
call sub.ntdll.dll__allshl
mov cl, 0x3f
call sub.ntdll.dll__allshr
and eax, 1
and edx, 0
mov dword [ebp - 0x89c], eax
mov dword [ebp - 0x898], edx
mov eax, dword [ebp - 0x89c]
or eax, dword [ebp - 0x898]
test eax, eax
je 0x410b57
lea ecx, [ebp - 0x5c4]
call fcn.00495140
mov dword [ebp - 0x8a0], eax
cmp dword [ebp - 0x8a0], 1
je 0x40ff6d
jmp 0x410e9a
mov ecx, dword [ebp - 0x614]
mov edx, dword [ecx]
mov ax, word [edx + 0x20]
and ax, 1
and eax, 0xffff
and eax, 1
test eax, eax
je 0x40fff2
mov dword [ebp - 0x62c], 0
call fcn.0045f715
mov dword [ebp - 0x8a4], eax
lea ecx, [ebp - 0x62c]
push ecx
mov edx, dword [ebp - 0x614]
push edx
lea eax, [ebp - 0x5c4]
push eax
mov ecx, dword [ebp - 0x8a4]
call fcn.0045db50
mov dword [ebp - 0x8a8], eax
cmp dword [ebp - 0x8a8], 0
je 0x40ffd2
jmp 0x410e9a
cmp dword [ebp - 0x62c], 0
jne 0x40ffe0
jmp 0x410e9a
mov cx, word [ebp - 0x628]
add cx, 1
mov word [ebp - 0x628], cx
mov edx, dword [ebp - 0x614]
mov eax, dword [edx]
mov cx, word [eax + 0x20]
shr cx, 1
and cx, 1
and ecx, 0xffff
and ecx, 1
test ecx, ecx
je 0x41007b
mov dword [ebp - 0x630], 0
call fcn.0045f715
mov dword [ebp - 0x8ac], eax
lea edx, [ebp - 0x630]
push edx
mov eax, dword [ebp - 0x614]
push eax
lea ecx, [ebp - 0x5c4]
push ecx
mov ecx, dword [ebp - 0x8ac]
call fcn.0045dcbd
mov dword [ebp - 0x8b0], eax
cmp dword [ebp - 0x8b0], 0
je 0x41005b
jmp 0x410e9a
cmp dword [ebp - 0x630], 0
jne 0x410069
jmp 0x410e9a
mov dx, word [ebp - 0x628]
add dx, 1
mov word [ebp - 0x628], dx
mov eax, dword [ebp - 0x614]
mov ecx, dword [eax]
mov dx, word [ecx + 0x20]
shr dx, 2
and dx, 1
and edx, 0xffff
and edx, 1
test edx, edx
je 0x41071f
lea ecx, [ebp - 0x5c4]
call fcn.0041f847
mov dword [ebp - 0x8b4], eax
mov eax, dword [ebp - 0x8b4]
cmp dword [eax + 0x54], 1
jne 0x41071f
lea ecx, [ebp - 0x5c4]
call fcn.0041f847
mov dword [ebp - 0x8b8], eax
mov ecx, dword [ebp - 0x8b8]
cmp dword [ecx + 0x58], 0
je 0x41071f
lea ecx, [ebp - 0x5c4]
call fcn.0041f847
mov dword [ebp - 0x8bc], eax
mov edx, dword [ebp - 0x8bc]
mov eax, dword [edx + 0x58]
push eax
call sub.ntdll.dll_strlen
add esp, 4
add eax, 1
push eax
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [ebp - 0x8c0], eax
mov ecx, dword [ebp - 0x8c0]
mov dword [ebp - 0x72c], ecx
mov edx, dword [ebp - 0x72c]
mov dword [ebp - 0x644], edx
cmp dword [ebp - 0x644], 0
jne 0x41015c
mov dword [ebp - 0x730], 0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x5c4]
call fcn.0041f7aa
mov eax, dword [ebp - 0x730]
jmp 0x411076
lea ecx, [ebp - 0x5c4]
call fcn.0041f847
mov dword [ebp - 0x8c4], eax
mov eax, dword [ebp - 0x8c4]
mov ecx, dword [eax + 0x58]
push ecx
call sub.ntdll.dll_strlen
add esp, 4
add eax, 1
push eax
push 0
mov edx, dword [ebp - 0x644]
push edx
call sub.ntdll.dll_memset
add esp, 0xc
lea ecx, [ebp - 0x5c4]
call fcn.0041f847
mov dword [ebp - 0x8c8], eax
lea ecx, [ebp - 0x5c4]
call fcn.0041f847
mov dword [ebp - 0x8cc], eax
mov eax, dword [ebp - 0x8c8]
mov ecx, dword [eax + 0x58]
push ecx
call sub.ntdll.dll_strlen
add esp, 4
push eax
mov edx, dword [ebp - 0x8cc]
mov eax, dword [edx + 0x58]
push eax
mov ecx, dword [ebp - 0x644]
push ecx
call sub.ntdll.dll_memcpy
add esp, 0xc
mov edx, dword [ebp - 0x644]
push edx
call sub.ntdll.dll_strlen
add esp, 4
mov dword [ebp - 0x64c], eax
mov eax, dword [ebp - 0x64c]
add eax, 1
push eax
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [ebp - 0x8d0], eax
mov ecx, dword [ebp - 0x8d0]
mov dword [ebp - 0x734], ecx
mov edx, dword [ebp - 0x734]
mov dword [ebp - 0x640], edx
cmp dword [ebp - 0x640], 0
jne 0x410282
cmp dword [ebp - 0x644], 0
je 0x410254
mov eax, dword [ebp - 0x644]
mov dword [ebp - 0x738], eax
mov ecx, dword [ebp - 0x738]
push ecx
call fcn.004a90a8
add esp, 4
mov dword [ebp - 0x644], 0
mov dword [ebp - 0x73c], 0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x5c4]
call fcn.0041f7aa
mov eax, dword [ebp - 0x73c]
jmp 0x411076
mov edx, dword [ebp - 0x64c]
add edx, 1
push edx
push 0
mov eax, dword [ebp - 0x640]
push eax
call sub.ntdll.dll_memset
add esp, 0xc
mov ecx, dword [ebp - 0x64c]
push ecx
mov edx, dword [ebp - 0x644]
push edx
mov eax, dword [ebp - 0x640]
push eax
call sub.ntdll.dll_memcpy
add esp, 0xc
push 0x4c2604
mov ecx, dword [ebp - 0x640]
push ecx
call fcn.004019d0
add esp, 8
mov dword [ebp - 0x8d4], eax
mov edx, dword [ebp - 0x8d4]
mov dword [ebp - 0x650], edx
cmp dword [ebp - 0x650], 0
jne 0x41036d
cmp dword [ebp - 0x640], 0
je 0x410311
mov eax, dword [ebp - 0x640]
mov dword [ebp - 0x740], eax
mov ecx, dword [ebp - 0x740]
push ecx
call fcn.004a90a8
add esp, 4
mov dword [ebp - 0x640], 0
cmp dword [ebp - 0x644], 0
je 0x41033f
mov edx, dword [ebp - 0x644]
mov dword [ebp - 0x744], edx
mov eax, dword [ebp - 0x744]
push eax
call fcn.004a90a8
add esp, 4
mov dword [ebp - 0x644], 0
mov dword [ebp - 0x748], 0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x5c4]
call fcn.0041f7aa
mov eax, dword [ebp - 0x748]
jmp 0x411076
mov ecx, dword [ebp - 0x64c]
add ecx, 1
push ecx
push 0
mov edx, dword [ebp - 0x640]
push edx
call sub.ntdll.dll_memset
add esp, 0xc
mov eax, dword [ebp - 0x64c]
push eax
mov ecx, dword [ebp - 0x644]
push ecx
mov edx, dword [ebp - 0x640]
push edx
call sub.ntdll.dll_memcpy
add esp, 0xc
mov eax, dword [ebp - 0x650]
shl eax, 2
push eax
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [ebp - 0x8d8], eax
mov ecx, dword [ebp - 0x8d8]
mov dword [ebp - 0x74c], ecx
mov edx, dword [ebp - 0x74c]
mov dword [ebp - 0x638], edx
cmp dword [ebp - 0x638], 0
jne 0x410462
cmp dword [ebp - 0x640], 0
je 0x410406
mov eax, dword [ebp - 0x640]
mov dword [ebp - 0x750], eax
mov ecx, dword [ebp - 0x750]
push ecx
call fcn.004a90a8
add esp, 4
mov dword [ebp - 0x640], 0
cmp dword [ebp - 0x644], 0
je 0x410434
mov edx, dword [ebp - 0x644]
mov dword [ebp - 0x754], edx
mov eax, dword [ebp - 0x754]
push eax
call fcn.004a90a8
add esp, 4
mov dword [ebp - 0x644], 0
mov dword [ebp - 0x758], 0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x5c4]
call fcn.0041f7aa
mov eax, dword [ebp - 0x758]
jmp 0x411076
mov ecx, dword [ebp - 0x640]
mov dword [ebp - 0x634], ecx
push 0x4c2608
mov edx, dword [ebp - 0x634]
push edx
call dword [sym.imp.MSVCRT.dll_strtok]
add esp, 8
mov dword [ebp - 0x63c], eax
mov dword [ebp - 0x648], 0
cmp dword [ebp - 0x63c], 0
je 0x410596
mov eax, dword [ebp - 0x63c]
push eax
call fcn.004018d0
add esp, 4
mov ecx, dword [ebp - 0x63c]
push ecx
call sub.ntdll.dll_strlen
add esp, 4
mov dword [ebp - 0x654], eax
cmp dword [ebp - 0x654], 0
je 0x41057b
mov edx, dword [ebp - 0x654]
add edx, 1
push edx
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [ebp - 0x8dc], eax
mov eax, dword [ebp - 0x8dc]
mov dword [ebp - 0x75c], eax
mov ecx, dword [ebp - 0x648]
mov edx, dword [ebp - 0x638]
mov eax, dword [ebp - 0x75c]
mov dword [edx + ecx*4], eax
mov ecx, dword [ebp - 0x648]
mov edx, dword [ebp - 0x638]
cmp dword [edx + ecx*4], 0
jne 0x410521
jmp 0x410621
mov eax, dword [ebp - 0x654]
add eax, 1
push eax
push 0
mov ecx, dword [ebp - 0x648]
mov edx, dword [ebp - 0x638]
mov eax, dword [edx + ecx*4]
push eax
call sub.ntdll.dll_memset
add esp, 0xc
mov ecx, dword [ebp - 0x654]
push ecx
mov edx, dword [ebp - 0x63c]
push edx
mov eax, dword [ebp - 0x648]
mov ecx, dword [ebp - 0x638]
mov edx, dword [ecx + eax*4]
push edx
call dword [sym.imp.ntdll.dll_strncpy]
add esp, 0xc
mov eax, dword [ebp - 0x648]
add eax, 1
mov dword [ebp - 0x648], eax
push 0x4c260c
push 0
call dword [sym.imp.MSVCRT.dll_strtok]
add esp, 8
mov dword [ebp - 0x63c], eax
jmp 0x410493
mov dword [ebp - 0x648], 0
jmp 0x4105b1
mov ecx, dword [ebp - 0x648]
add ecx, 1
mov dword [ebp - 0x648], ecx
mov edx, dword [ebp - 0x648]
cmp edx, dword [ebp - 0x650]
jae 0x410621
mov eax, dword [ebp - 0x614]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x38]
mov al, byte [edx + 0x10]
push eax
mov ecx, dword [ebp - 0x614]
mov edx, dword [ecx]
mov eax, dword [edx + 0x38]
mov ecx, dword [eax + 0x14]
push ecx
mov edx, dword [ebp - 0x648]
mov eax, dword [ebp - 0x638]
mov ecx, dword [eax + edx*4]
push ecx
call fcn.0042197b
add esp, 0xc
mov byte [ebp - 0x8e0], al
mov edx, dword [ebp - 0x8e0]
and edx, 0xff
test edx, edx
je 0x41061f
mov ax, word [ebp - 0x628]
add ax, 1
mov word [ebp - 0x628], ax
jmp 0x410621
jmp 0x4105a2
mov dword [ebp - 0x648], 0
jmp 0x41063c
mov ecx, dword [ebp - 0x648]
add ecx, 1
mov dword [ebp - 0x648], ecx
mov edx, dword [ebp - 0x648]
cmp edx, dword [ebp - 0x650]
jae 0x410695
mov eax, dword [ebp - 0x648]
mov ecx, dword [ebp - 0x638]
cmp dword [ecx + eax*4], 0
je 0x410680
mov edx, dword [ebp - 0x648]
mov eax, dword [ebp - 0x638]
mov ecx, dword [eax + edx*4]
mov dword [ebp - 0x760], ecx
mov edx, dword [ebp - 0x760]
push edx
call fcn.004a90a8
add esp, 4
mov eax, dword [ebp - 0x648]
mov ecx, dword [ebp - 0x638]
mov dword [ecx + eax*4], 0
jmp 0x41062d
cmp dword [ebp - 0x638], 0
je 0x4106b9
mov edx, dword [ebp - 0x638]
mov dword [ebp - 0x764], edx
mov eax, dword [ebp - 0x764]
push eax
call fcn.004a90a8
add esp, 4
mov dword [ebp - 0x638], 0
cmp dword [ebp - 0x640], 0
je 0x4106e7
mov ecx, dword [ebp - 0x640]
mov dword [ebp - 0x768], ecx
mov edx, dword [ebp - 0x768]
push edx
call fcn.004a90a8
add esp, 4
mov dword [ebp - 0x640], 0
cmp dword [ebp - 0x644], 0
je 0x410715
mov eax, dword [ebp - 0x644]
mov dword [ebp - 0x76c], eax
mov ecx, dword [ebp - 0x76c]
push ecx
call fcn.004a90a8
add esp, 4
mov dword [ebp - 0x644], 0
mov edx, dword [ebp - 0x614]
mov eax, dword [edx]
mov cx, word [eax + 0x20]
shr cx, 3
and cx, 1
and ecx, 0xffff
and ecx, 1
test ecx, ecx
je 0x4107ad
lea ecx, [ebp - 0x5c4]
call fcn.0041f8f0
mov dword [ebp - 0x8e4], eax
mov edx, dword [ebp - 0x614]
mov eax, dword [edx]
mov ecx, dword [eax + 0x38]
mov dl, byte [ecx + 0x18]
push edx
mov eax, dword [ebp - 0x614]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x38]
add edx, 0x19
push edx
mov eax, dword [ebp - 0x8e4]
push eax
call fcn.004216f3
add esp, 0xc
mov byte [ebp - 0x8e8], al
mov ecx, dword [ebp - 0x8e8]
and ecx, 0xff
test ecx, ecx
je 0x4107a8
mov dx, word [ebp - 0x628]
add dx, 1
mov word [ebp - 0x628], dx
jmp 0x4107ad
jmp 0x410e9a
mov eax, dword [ebp - 0x614]
mov ecx, dword [eax]
mov dx, word [ecx + 0x20]
shr dx, 4
and dx, 1
and edx, 0xffff
and edx, 1
test edx, edx
je 0x41085b
mov dword [ebp - 0x660], 0
mov byte [ebp - 0x658], 0
mov byte [ebp - 0x664], 0
mov dword [ebp - 0x668], 0
mov dword [ebp - 0x65c], 0
lea eax, [ebp - 0x660]
push eax
mov ecx, dword [ebp - 0x614]
push ecx
mov edx, dword [ebp - 0x65c]
push edx
mov eax, dword [ebp - 0x668]
push eax
lea ecx, [ebp - 0x5c4]
call fcn.0041f96a
mov dword [ebp - 0x8ec], eax
cmp dword [ebp - 0x8ec], 0
je 0x410839
jmp 0x410e9a
cmp dword [ebp - 0x660], 0
je 0x410856
mov cx, word [ebp - 0x628]
add cx, 1
mov word [ebp - 0x628], cx
jmp 0x41085b
jmp 0x410e9a
mov edx, dword [ebp - 0x614]
mov eax, dword [edx]
mov cx, word [eax + 0x20]
shr cx, 5
and cx, 1
and ecx, 0xffff
and ecx, 1
test ecx, ecx
je 0x41096d
mov byte [ebp - 0x66c], 0
mov byte [ebp - 0x670], 0
mov byte [ebp - 0x66c], 0
jmp 0x4108a6
mov dl, byte [ebp - 0x66c]
add dl, 1
mov byte [ebp - 0x66c], dl
mov eax, dword [ebp - 0x614]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x38]
xor eax, eax
mov al, byte [edx + 0x20]
mov ecx, dword [ebp - 0x66c]
and ecx, 0xff
cmp ecx, eax
jge 0x410935
mov dword [ebp - 0x674], 0
lea edx, [ebp - 0x674]
push edx
mov eax, dword [ebp - 0x614]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x38]
mov eax, dword [ebp - 0x66c]
and eax, 0xff
mov ecx, dword [edx + 0x24]
mov edx, dword [ecx + eax*4]
push edx
lea eax, [ebp - 0x5c4]
push eax
call fcn.00422389
add esp, 0xc
mov dword [ebp - 0x8f0], eax
cmp dword [ebp - 0x8f0], 0
je 0x410914
jmp 0x410935
cmp dword [ebp - 0x674], 0
je 0x41092e
mov cl, byte [ebp - 0x670]
add cl, 1
mov byte [ebp - 0x670], cl
jmp 0x410930
jmp 0x410935
jmp 0x410897
mov edx, dword [ebp - 0x614]
mov eax, dword [edx]
mov ecx, dword [eax + 0x38]
xor edx, edx
mov dl, byte [ecx + 0x20]
mov eax, dword [ebp - 0x670]
and eax, 0xff
cmp eax, edx
jne 0x410968
mov cx, word [ebp - 0x628]
add cx, 1
mov word [ebp - 0x628], cx
jmp 0x41096d
jmp 0x410e9a
mov edx, dword [ebp - 0x614]
mov eax, dword [edx]
mov cx, word [eax + 0x20]
shr cx, 6
and cx, 1
and ecx, 0xffff
and ecx, 1
test ecx, ecx
je 0x410a7f
mov byte [ebp - 0x678], 0
mov byte [ebp - 0x67c], 0
mov byte [ebp - 0x678], 0
jmp 0x4109b8
mov dl, byte [ebp - 0x678]
add dl, 1
mov byte [ebp - 0x678], dl
mov eax, dword [ebp - 0x614]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x38]
xor eax, eax
mov al, byte [edx + 0x28]
mov ecx, dword [ebp - 0x678]
and ecx, 0xff
cmp ecx, eax
jge 0x410a47
mov dword [ebp - 0x680], 0
lea edx, [ebp - 0x680]
push edx
mov eax, dword [ebp - 0x614]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x38]
mov eax, dword [ebp - 0x678]
and eax, 0xff
mov ecx, dword [edx + 0x2c]
mov edx, dword [ecx + eax*4]
push edx
lea eax, [ebp - 0x5c4]
push eax
call fcn.00422b11
add esp, 0xc
mov dword [ebp - 0x8f4], eax
cmp dword [ebp - 0x8f4], 0
je 0x410a26
jmp 0x410a47
cmp dword [ebp - 0x680], 0
je 0x410a40
mov cl, byte [ebp - 0x67c]
add cl, 1
mov byte [ebp - 0x67c], cl
jmp 0x410a42
jmp 0x410a47
jmp 0x4109a9
mov edx, dword [ebp - 0x614]
mov eax, dword [edx]
mov ecx, dword [eax + 0x38]
xor edx, edx
mov dl, byte [ecx + 0x28]
mov eax, dword [ebp - 0x67c]
and eax, 0xff
cmp eax, edx
jne 0x410a7a
mov cx, word [ebp - 0x628]
add cx, 1
mov word [ebp - 0x628], cx
jmp 0x410a7f
jmp 0x410e9a
mov edx, dword [ebp - 0x614]
mov eax, dword [edx]
mov cx, word [eax + 0x20]
shr cx, 7
and cx, 1
and ecx, 0xffff
and ecx, 1
test ecx, ecx
je 0x410b09
mov dword [ebp - 0x684], 0
call fcn.0045f715
mov dword [ebp - 0x8f8], eax
lea edx, [ebp - 0x684]
push edx
mov eax, dword [ebp - 0x614]
push eax
lea ecx, [ebp - 0x5c4]
push ecx
mov ecx, dword [ebp - 0x8f8]
call fcn.0045e3c8
mov dword [ebp - 0x8fc], eax
cmp dword [ebp - 0x8fc], 0
je 0x410ae9
jmp 0x410e9a
cmp dword [ebp - 0x684], 0
jne 0x410af7
jmp 0x410e90
mov dx, word [ebp - 0x628]
add dx, 1
mov word [ebp - 0x628], dx
mov eax, dword [ebp - 0x614]
mov ecx, dword [eax]
mov dx, word [ecx + 0x20]
push edx
call fcn.00401af0
add esp, 4
mov dword [ebp - 0x900], eax
mov eax, dword [ebp - 0x628]
and eax, 0xffff
cmp dword [ebp - 0x900], eax
jne 0x410b55
mov ecx, dword [ebp - 0x610]
add ecx, 1
mov edx, dword [ebp - 0x60c]
adc edx, 0
mov dword [ebp - 0x610], ecx
mov dword [ebp - 0x60c], edx
jmp 0x410b94
lea ecx, [ebp - 0x5c4]
call fcn.00495140
mov dword [ebp - 0x904], eax
cmp dword [ebp - 0x904], 1
je 0x410b76
jmp 0x410e9a
mov eax, dword [ebp - 0x610]
add eax, 1
mov ecx, dword [ebp - 0x60c]
adc ecx, 0
mov dword [ebp - 0x610], eax
mov dword [ebp - 0x60c], ecx
mov edx, dword [ebp - 0x614]
mov edx, dword [edx]
mov cl, 0x35
mov eax, dword [edx + 0x10]
mov edx, dword [edx + 0x14]
call sub.ntdll.dll__allshl
mov cl, 0x3f
call sub.ntdll.dll__allshr
and eax, 1
and edx, 0
mov dword [ebp - 0x90c], eax
mov dword [ebp - 0x908], edx
mov eax, dword [ebp - 0x90c]
or eax, dword [ebp - 0x908]
test eax, eax
je 0x410cc7
mov byte [ebp - 0x68c], 0
mov byte [ebp - 0x688], 0
mov byte [ebp - 0x68c], 0
jmp 0x410bfc
mov cl, byte [ebp - 0x68c]
add cl, 1
mov byte [ebp - 0x68c], cl
mov edx, dword [ebp - 0x614]
mov eax, dword [edx]
xor ecx, ecx
mov cl, byte [eax + 0x3c]
mov edx, dword [ebp - 0x68c]
and edx, 0xff
cmp edx, ecx
jge 0x410c85
mov dword [ebp - 0x690], 0
lea eax, [ebp - 0x690]
push eax
mov ecx, dword [ebp - 0x614]
mov edx, dword [ecx]
mov eax, dword [ebp - 0x68c]
and eax, 0xff
mov ecx, dword [edx + 0x40]
mov edx, dword [ecx + eax*4]
push edx
lea eax, [ebp - 0x5c4]
push eax
call fcn.00420f93
add esp, 0xc
mov dword [ebp - 0x910], eax
cmp dword [ebp - 0x910], 0
je 0x410c64
jmp 0x410c85
cmp dword [ebp - 0x690], 0
je 0x410c7e
mov cl, byte [ebp - 0x688]
add cl, 1
mov byte [ebp - 0x688], cl
jmp 0x410c80
jmp 0x410c85
jmp 0x410bed
mov edx, dword [ebp - 0x614]
mov eax, dword [edx]
xor ecx, ecx
mov cl, byte [eax + 0x3c]
mov edx, dword [ebp - 0x688]
and edx, 0xff
cmp edx, ecx
jne 0x410cc2
mov eax, dword [ebp - 0x610]
add eax, 1
mov ecx, dword [ebp - 0x60c]
adc ecx, 0
mov dword [ebp - 0x610], eax
mov dword [ebp - 0x60c], ecx
jmp 0x410cc7
jmp 0x410e9a
mov edx, dword [ebp - 0x614]
mov edx, dword [edx]
mov cl, 0x34
mov eax, dword [edx + 0x10]
mov edx, dword [edx + 0x14]
call sub.ntdll.dll__allshl
mov cl, 0x3f
call sub.ntdll.dll__allshr
and eax, 1
and edx, 0
mov dword [ebp - 0x918], eax
mov dword [ebp - 0x914], edx
mov eax, dword [ebp - 0x918]
or eax, dword [ebp - 0x914]
test eax, eax
je 0x410dfa
mov byte [ebp - 0x698], 0
mov byte [ebp - 0x694], 0
mov byte [ebp - 0x698], 0
jmp 0x410d2f
mov cl, byte [ebp - 0x698]
add cl, 1
mov byte [ebp - 0x698], cl
mov edx, dword [ebp - 0x614]
mov eax, dword [edx]
xor ecx, ecx
mov cl, byte [eax + 0x44]
mov edx, dword [ebp - 0x698]
and edx, 0xff
cmp edx, ecx
jge 0x410db8
mov dword [ebp - 0x69c], 0
lea eax, [ebp - 0x69c]
push eax
mov ecx, dword [ebp - 0x614]
mov edx, dword [ecx]
mov eax, dword [ebp - 0x698]
and eax, 0xff
mov ecx, dword [edx + 0x48]
mov edx, dword [ecx + eax*4]
push edx
lea eax, [ebp - 0x5c4]
push eax
call fcn.00421224
add esp, 0xc
mov dword [ebp - 0x91c], eax
cmp dword [ebp - 0x91c], 0
je 0x410d97
jmp 0x410db8
cmp dword [ebp - 0x69c], 0
je 0x410db1
mov cl, byte [ebp - 0x694]
add cl, 1
mov byte [ebp - 0x694], cl
jmp 0x410db3
jmp 0x410db8
jmp 0x410d20
mov edx, dword [ebp - 0x614]
mov eax, dword [edx]
xor ecx, ecx
mov cl, byte [eax + 0x44]
mov edx, dword [ebp - 0x694]
and edx, 0xff
cmp edx, ecx
jne 0x410df5
mov eax, dword [ebp - 0x610]
add eax, 1
mov ecx, dword [ebp - 0x60c]
adc ecx, 0
mov dword [ebp - 0x610], eax
mov dword [ebp - 0x60c], ecx
jmp 0x410dfa
jmp 0x410e9a
mov edx, dword [ebp - 0x614]
mov edx, dword [edx]
mov cl, 0x33
mov eax, dword [edx + 0x10]
mov edx, dword [edx + 0x14]
call sub.ntdll.dll__allshl
mov cl, 0x3f
call sub.ntdll.dll__allshr
and eax, 1
and edx, 0
mov dword [ebp - 0x924], eax
mov dword [ebp - 0x920], edx
mov eax, dword [ebp - 0x924]
or eax, dword [ebp - 0x920]
test eax, eax
je 0x410e90
mov dword [ebp - 0x6a0], 0
lea ecx, [ebp - 0x6a0]
push ecx
lea edx, [ebp - 0x5c4]
push edx
call fcn.0042114e
add esp, 8
mov dword [ebp - 0x928], eax
cmp dword [ebp - 0x928], 0
je 0x410e69
jmp 0x410e9a
cmp dword [ebp - 0x6a0], 0
je 0x410e90
mov eax, dword [ebp - 0x610]
add eax, 1
mov ecx, dword [ebp - 0x60c]
adc ecx, 0
mov dword [ebp - 0x610], eax
mov dword [ebp - 0x60c], ecx
xor edx, edx
test edx, edx
jne 0x40f896
mov eax, dword [ebp - 0x614]
cmp dword [eax], 0
je 0x41103e
mov ecx, dword [ebp - 0x614]
mov edx, dword [ecx]
mov eax, dword [edx + 0x14]
push eax
mov ecx, dword [edx + 0x10]
push ecx
call fcn.00401a90
add esp, 8
mov dword [ebp - 0x92c], eax
mov edx, dword [ebp - 0x92c]
xor eax, eax
mov dword [ebp - 0x934], edx
mov dword [ebp - 0x930], eax
mov ecx, dword [ebp - 0x934]
cmp ecx, dword [ebp - 0x610]
jne 0x41103e
mov edx, dword [ebp - 0x930]
cmp edx, dword [ebp - 0x60c]
jne 0x41103e
mov dword [ebp - 0x708], 0
mov eax, dword [ebp - 0x614]
mov ecx, dword [eax]
mov edx, dword [ecx + 4]
push edx
mov ecx, dword [ebp - 0x774]
call fcn.0040d2f5
mov dword [ebp - 0x938], eax
mov eax, dword [ebp - 0x938]
mov ecx, dword [eax]
mov dword [ebp - 0x708], ecx
mov byte [ebp - 0x704], 0
mov ecx, 0x18
xor eax, eax
lea edi, [ebp - 0x703]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov edx, dword [ebp - 0x614]
mov eax, dword [edx]
mov cl, byte [eax + 8]
and cl, 0xf
and ecx, 0xff
test ecx, ecx
jl 0x410fa1
mov edx, dword [ebp - 0x614]
mov eax, dword [edx]
mov cl, byte [eax + 8]
and cl, 0xf
and ecx, 0xff
cmp ecx, 5
ja 0x410fa1
mov edx, dword [ebp - 0x614]
mov eax, dword [edx]
mov cl, byte [eax + 8]
and cl, 0xf
and ecx, 0xff
mov edx, dword [ecx*8 + 0x4adc44]
mov dword [ebp - 0x93c], edx
jmp 0x410fab
mov dword [ebp - 0x93c], 0x4c2610
mov eax, dword [ebp - 0x614]
push eax
call fcn.00401b90
add esp, 4
mov dword [ebp - 0x940], eax
mov ecx, dword [ebp - 0x614]
mov edx, dword [ecx]
mov eax, dword [edx + 0xc]
push eax
mov ecx, dword [ebp - 0x940]
push ecx
mov edx, dword [ebp - 0x93c]
push edx
push 0x4c2618
push 0x64
lea eax, [ebp - 0x704]
push eax
call fcn.0040a150
add esp, 0x18
cmp dword [ebp - 0x708], 0
je 0x41101b
mov ecx, dword [ebp - 0x614]
push ecx
mov edx, dword [ebp + 8]
push edx
mov eax, dword [ebp - 0x708]
add eax, 8
push eax
mov ecx, dword [ebp - 0x774]
call fcn.0040d72e
jmp 0x411033
mov ecx, dword [ebp - 0x614]
push ecx
mov edx, dword [ebp + 8]
push edx
push 0
mov ecx, dword [ebp - 0x774]
call fcn.0040d72e
mov eax, dword [ebp - 0x14]
add eax, 1
mov dword [ebp - 0x14], eax
jmp 0x411043
jmp 0x40f550
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x5c4]
call fcn.0041f7aa
jmp 0x41106c
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8