Function at 0x40f266
Capabilities:
Encode data using base64

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4abea0
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
push ecx
sub esp, 0xa10
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x868], ecx
mov dword [ebp - 0x14], 0
mov dword [ebp - 4], 0
mov eax, dword [ebp + 8]
push eax
call fcn.0042f17a
add esp, 4
mov dword [ebp - 0x86c], eax
cmp dword [ebp - 0x86c], 0
jne 0x40f2cb
mov ecx, dword [ebp + 0xc]
mov dword [ecx], 0
mov eax, dword [ebp - 0x14]
jmp 0x410fac
mov byte [ebp - 0x6ec], 0
mov ecx, 0xb
xor eax, eax
lea edi, [ebp - 0x6eb]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov dword [ebp - 0x1c], 0
lea edx, [ebp - 0x1c]
push edx
mov eax, dword [ebp + 8]
push eax
call fcn.00426a88
add esp, 8
mov dword [ebp - 0x870], eax
cmp dword [ebp - 0x870], 0
je 0x40f31a
mov ecx, dword [ebp + 0xc]
mov dword [ecx], 0
xor eax, eax
jmp 0x410fac
mov dword [ebp - 0x6f0], 0
lea ecx, [ebp - 0x6bc]
call fcn.00423120
mov dword [ebp - 0x874], eax
mov byte [ebp - 4], 1
cmp dword [ebp - 0x1c], 0
jne 0x40f433
push 1
mov edx, dword [ebp + 8]
push edx
lea ecx, [ebp - 0x6bc]
call fcn.00495940
mov dword [ebp - 0x878], eax
cmp dword [ebp - 0x878], 0
jne 0x40f378
mov eax, dword [ebp + 0xc]
mov dword [eax], 0
mov dword [ebp - 0x6f0], 0
jmp 0x40f382
mov dword [ebp - 0x6f0], 1
mov byte [ebp - 0x700], 0
xor ecx, ecx
mov dword [ebp - 0x6ff], ecx
mov dword [ebp - 0x6fb], ecx
mov dword [ebp - 0x6f7], ecx
mov word [ebp - 0x6f3], cx
mov byte [ebp - 0x6f1], cl
lea edx, [ebp - 0x700]
push edx
lea ecx, [ebp - 0x6bc]
call fcn.00496560
call fcn.00429c25
mov dword [ebp - 0x87c], eax
lea eax, [ebp - 0x6ec]
push eax
lea ecx, [ebp - 0x700]
push ecx
mov ecx, dword [ebp - 0x87c]
call fcn.004290aa
mov dword [ebp - 0x880], eax
cmp dword [ebp - 0x880], 0
je 0x40f433
lea edx, [ebp - 0x6ec]
push edx
mov eax, dword [ebp + 8]
push eax
push 0
mov ecx, dword [ebp - 0x868]
call fcn.0040d4a3
mov ecx, dword [ebp - 0x14]
add ecx, 1
mov dword [ebp - 0x14], ecx
mov edx, dword [ebp - 0x14]
mov dword [ebp - 0x800], edx
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x6bc]
call fcn.004231f7
mov eax, dword [ebp - 0x800]
jmp 0x410fac
mov eax, dword [ebp + 8]
push eax
lea ecx, [ebp - 0x6bc]
call fcn.00423644
mov dword [ebp - 0x884], eax
cmp dword [ebp - 0x884], 0
jne 0x40f475
mov dword [ebp - 0x804], 0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x6bc]
call fcn.004231f7
mov eax, dword [ebp - 0x804]
jmp 0x410fac
mov ecx, dword [ebp + 8]
push ecx
lea ecx, [ebp - 0x6bc]
call fcn.00423371
mov dword [ebp - 0x888], eax
cmp dword [ebp - 0x888], 0
je 0x40f4b7
mov dword [ebp - 0x808], 0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x6bc]
call fcn.004231f7
mov eax, dword [ebp - 0x808]
jmp 0x410fac
lea ecx, [ebp - 0x6bc]
call fcn.00496300
mov dword [ebp - 0x88c], eax
cmp dword [ebp - 0x88c], 1
jne 0x40f4dc
mov edx, dword [ebp + 0xc]
mov dword [edx], 1
jmp 0x40f4e5
mov eax, dword [ebp + 0xc]
mov dword [eax], 0
call fcn.0045c138
mov dword [ebp - 0x890], eax
mov ecx, dword [ebp - 0x890]
call fcn.00458500
mov dword [ebp - 0x894], eax
mov ecx, dword [ebp - 0x894]
call fcn.0042af15
mov dword [ebp - 0x898], eax
mov ecx, dword [ebp - 0x898]
call fcn.0045051a
mov dword [ebp - 0x89c], eax
lea ecx, [ebp - 0x80c]
push ecx
mov ecx, dword [ebp - 0x89c]
call fcn.00416c30
mov dword [ebp - 0x8a0], eax
mov edx, dword [ebp - 0x8a0]
push edx
lea ecx, [ebp - 0x18]
call fcn.0045c190
jmp 0x40f55d
push 0
lea eax, [ebp - 0x810]
push eax
lea ecx, [ebp - 0x18]
call fcn.0043b370
mov ecx, dword [ebp - 0x868]
cmp dword [ecx + 0x438], 0
jne 0x410f79
call fcn.0045c138
mov dword [ebp - 0x8a4], eax
mov ecx, dword [ebp - 0x8a4]
call fcn.00458500
mov dword [ebp - 0x8a8], eax
mov ecx, dword [ebp - 0x8a8]
call fcn.0042af15
mov dword [ebp - 0x8ac], eax
mov ecx, dword [ebp - 0x8ac]
call fcn.0045051a
mov dword [ebp - 0x8b0], eax
lea edx, [ebp - 0x814]
push edx
mov ecx, dword [ebp - 0x8b0]
call fcn.00416d80
mov dword [ebp - 0x8b4], eax
mov eax, dword [ebp - 0x8b4]
push eax
lea ecx, [ebp - 0x18]
call fcn.0043b3a0
mov byte [ebp - 0x8b8], al
mov ecx, dword [ebp - 0x8b8]
and ecx, 0xff
test ecx, ecx
je 0x410f79
lea ecx, [ebp - 0x18]
call fcn.00417fc0
mov dword [ebp - 0x8bc], eax
mov edx, dword [ebp - 0x8bc]
mov dword [ebp - 0x70c], edx
mov dword [ebp - 0x708], 0
mov dword [ebp - 0x704], 0
mov eax, dword [ebp - 0x868]
cmp dword [eax + 0x438], 0
jne 0x40f665
call fcn.0045c138
mov dword [ebp - 0x8c0], eax
mov ecx, dword [ebp - 0x70c]
push ecx
mov ecx, dword [ebp - 0x8c0]
call fcn.0045aed3
mov byte [ebp - 0x8c4], al
mov edx, dword [ebp - 0x8c4]
and edx, 0xff
cmp edx, 2
je 0x40f665
jmp 0x40f54c
mov eax, dword [ebp - 0x70c]
mov edx, dword [eax]
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 - 0x8cc], eax
mov dword [ebp - 0x8c8], edx
mov eax, dword [ebp - 0x8cc]
or eax, dword [ebp - 0x8c8]
test eax, eax
je 0x40f6c7
mov dword [ebp - 0x818], 0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x6bc]
call fcn.004231f7
mov eax, dword [ebp - 0x818]
jmp 0x410fac
mov ecx, dword [ebp - 0x70c]
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 - 0x8d4], eax
mov dword [ebp - 0x8d0], edx
mov eax, dword [ebp - 0x8d4]
or eax, dword [ebp - 0x8d0]
test eax, eax
je 0x40f723
mov ecx, dword [ebp - 0x708]
add ecx, 1
mov edx, dword [ebp - 0x704]
adc edx, 0
mov dword [ebp - 0x708], ecx
mov dword [ebp - 0x704], edx
mov eax, dword [ebp - 0x70c]
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 - 0x8dc], eax
mov dword [ebp - 0x8d8], edx
mov eax, dword [ebp - 0x8dc]
or eax, dword [ebp - 0x8d8]
test eax, eax
je 0x40f77f
mov ecx, dword [ebp - 0x708]
add ecx, 1
mov edx, dword [ebp - 0x704]
adc edx, 0
mov dword [ebp - 0x708], ecx
mov dword [ebp - 0x704], edx
mov eax, dword [ebp - 0x70c]
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 - 0x8e4], eax
mov dword [ebp - 0x8e0], edx
mov eax, dword [ebp - 0x8e4]
or eax, dword [ebp - 0x8e0]
test eax, eax
je 0x40f893
mov ecx, dword [ebp - 0x70c]
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 - 0x8ec], eax
mov dword [ebp - 0x8e8], edx
mov eax, dword [ebp - 0x8ec]
or eax, dword [ebp - 0x8e8]
test eax, eax
je 0x40f84a
call fcn.00420940
mov dword [ebp - 0x8f0], eax
push 0xffffffffffffffff
mov ecx, dword [ebp + 8]
push ecx
mov ecx, dword [ebp - 0x8f0]
call fcn.00422730
mov dword [ebp - 0x8f4], eax
cmp dword [ebp - 0x8f4], 0
je 0x40f848
mov edx, dword [ebp - 0x708]
add edx, 1
mov eax, dword [ebp - 0x704]
adc eax, 0
mov dword [ebp - 0x708], edx
mov dword [ebp - 0x704], eax
jmp 0x40f893
call fcn.00420940
mov dword [ebp - 0x8f8], eax
push 0xffffffffffffffff
mov ecx, dword [ebp + 8]
push ecx
mov ecx, dword [ebp - 0x8f8]
call fcn.00422730
mov dword [ebp - 0x8fc], eax
cmp dword [ebp - 0x8fc], 0
jne 0x40f893
mov edx, dword [ebp - 0x708]
add edx, 1
mov eax, dword [ebp - 0x704]
adc eax, 0
mov dword [ebp - 0x708], edx
mov dword [ebp - 0x704], eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.00401bd0
add esp, 4
mov dword [ebp - 0x900], eax
mov edx, dword [ebp - 0x900]
mov dword [ebp - 0x710], edx
cmp dword [ebp - 0x710], 0x3200000
jbe 0x40f8e1
mov dword [ebp - 0x81c], 0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x6bc]
call fcn.004231f7
mov eax, dword [ebp - 0x81c]
jmp 0x410fac
cmp dword [ebp - 0x1c], 0
jne 0x40f9b4
cmp dword [ebp - 0x6f0], 0
jne 0x40f9b4
mov eax, dword [ebp - 0x70c]
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 - 0x908], eax
mov dword [ebp - 0x904], edx
mov eax, dword [ebp - 0x908]
or eax, dword [ebp - 0x904]
test eax, eax
jne 0x40f93c
mov dword [ebp - 0x90c], 1
jmp 0x40f946
mov dword [ebp - 0x90c], 0
mov ecx, dword [ebp - 0x90c]
and ecx, 1
test ecx, ecx
je 0x40f9af
mov edx, dword [ebp - 0x70c]
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 - 0x914], eax
mov dword [ebp - 0x910], edx
mov eax, dword [ebp - 0x914]
or eax, dword [ebp - 0x910]
test eax, eax
jne 0x40f9af
mov ecx, dword [ebp - 0x708]
add ecx, 1
mov edx, dword [ebp - 0x704]
adc edx, 0
mov dword [ebp - 0x708], ecx
mov dword [ebp - 0x704], edx
jmp 0x410dd0
mov eax, dword [ebp - 0x70c]
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 - 0x91c], eax
mov dword [ebp - 0x918], edx
mov eax, dword [ebp - 0x91c]
or eax, dword [ebp - 0x918]
test eax, eax
je 0x40fa88
mov ecx, dword [ebp - 0x70c]
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 - 0x924], eax
mov dword [ebp - 0x920], edx
mov eax, dword [ebp - 0x924]
or eax, dword [ebp - 0x920]
test eax, eax
je 0x40fa5f
cmp dword [ebp - 0x1c], 0
jne 0x40fa3f
jmp 0x410dd0
mov ecx, dword [ebp - 0x708]
add ecx, 1
mov edx, dword [ebp - 0x704]
adc edx, 0
mov dword [ebp - 0x708], ecx
mov dword [ebp - 0x704], edx
jmp 0x40fa88
cmp dword [ebp - 0x1c], 0
je 0x40fa6a
jmp 0x410dd0
mov eax, dword [ebp - 0x708]
add eax, 1
mov ecx, dword [ebp - 0x704]
adc ecx, 0
mov dword [ebp - 0x708], eax
mov dword [ebp - 0x704], ecx
mov edx, dword [ebp - 0x70c]
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 - 0x92c], eax
mov dword [ebp - 0x928], edx
mov eax, dword [ebp - 0x92c]
or eax, dword [ebp - 0x928]
test eax, eax
je 0x40fb3b
mov dword [ebp - 0x714], 0
call fcn.0045c138
mov dword [ebp - 0x930], eax
lea ecx, [ebp - 0x714]
push ecx
mov edx, dword [ebp - 0x70c]
push edx
mov eax, dword [ebp - 0x710]
push eax
mov ecx, dword [ebp - 0x930]
call fcn.00459d4b
mov dword [ebp - 0x934], eax
cmp dword [ebp - 0x934], 0
je 0x40fb0f
jmp 0x410dd0
cmp dword [ebp - 0x714], 0
jne 0x40fb1d
jmp 0x410dd0
mov ecx, dword [ebp - 0x708]
add ecx, 1
mov edx, dword [ebp - 0x704]
adc edx, 0
mov dword [ebp - 0x708], ecx
mov dword [ebp - 0x704], edx
mov eax, dword [ebp - 0x70c]
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 - 0x93c], eax
mov dword [ebp - 0x938], edx
mov eax, dword [ebp - 0x93c]
or eax, dword [ebp - 0x938]
test eax, eax
jne 0x40fbb5
mov ecx, dword [ebp - 0x70c]
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 - 0x944], eax
mov dword [ebp - 0x940], edx
mov eax, dword [ebp - 0x944]
or eax, dword [ebp - 0x940]
test eax, eax
je 0x40fdab
mov dword [ebp - 0x71c], 0
mov dword [ebp - 0x718], 0
lea ecx, [ebp - 0x718]
push ecx
lea edx, [ebp - 0x71c]
push edx
mov eax, dword [ebp + 8]
push eax
call fcn.00426a07
add esp, 0xc
mov dword [ebp - 0x948], eax
cmp dword [ebp - 0x948], 0
je 0x40fbf7
jmp 0x410dd0
mov ecx, dword [ebp - 0x70c]
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 - 0x950], eax
mov dword [ebp - 0x94c], edx
mov eax, dword [ebp - 0x950]
or eax, dword [ebp - 0x94c]
test eax, eax
je 0x40fcd1
mov ecx, dword [ebp - 0x70c]
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 - 0x958], eax
mov dword [ebp - 0x954], edx
mov eax, dword [ebp - 0x958]
or eax, dword [ebp - 0x954]
test eax, eax
je 0x40fca5
cmp dword [ebp - 0x718], 0
jne 0x40fc85
jmp 0x410dd0
mov ecx, dword [ebp - 0x708]
add ecx, 1
mov edx, dword [ebp - 0x704]
adc edx, 0
mov dword [ebp - 0x708], ecx
mov dword [ebp - 0x704], edx
jmp 0x40fcd1
cmp dword [ebp - 0x718], 0
je 0x40fcb3
jmp 0x410dd0
mov eax, dword [ebp - 0x708]
add eax, 1
mov ecx, dword [ebp - 0x704]
adc ecx, 0
mov dword [ebp - 0x708], eax
mov dword [ebp - 0x704], ecx
mov edx, dword [ebp - 0x70c]
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 - 0x960], eax
mov dword [ebp - 0x95c], edx
mov eax, dword [ebp - 0x960]
or eax, dword [ebp - 0x95c]
test eax, eax
je 0x40fdab
mov ecx, dword [ebp - 0x70c]
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 - 0x968], eax
mov dword [ebp - 0x964], edx
mov eax, dword [ebp - 0x968]
or eax, dword [ebp - 0x964]
test eax, eax
je 0x40fd7f
cmp dword [ebp - 0x71c], 0
jne 0x40fd5f
jmp 0x410dd0
mov ecx, dword [ebp - 0x708]
add ecx, 1
mov edx, dword [ebp - 0x704]
adc edx, 0
mov dword [ebp - 0x708], ecx
mov dword [ebp - 0x704], edx
jmp 0x40fdab
cmp dword [ebp - 0x71c], 0
je 0x40fd8d
jmp 0x410dd0
mov eax, dword [ebp - 0x708]
add eax, 1
mov ecx, dword [ebp - 0x704]
adc ecx, 0
mov dword [ebp - 0x708], eax
mov dword [ebp - 0x704], ecx
cmp dword [ebp - 0x1c], 0
je 0x40fdb6
jmp 0x410dd0
mov edx, dword [ebp - 0x70c]
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 - 0x970], eax
mov dword [ebp - 0x96c], edx
mov eax, dword [ebp - 0x970]
or eax, dword [ebp - 0x96c]
test eax, eax
je 0x40fe90
mov ecx, dword [ebp - 0x70c]
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 - 0x978], eax
mov dword [ebp - 0x974], edx
mov eax, dword [ebp - 0x978]
or eax, dword [ebp - 0x974]
test eax, eax
je 0x40fe64
cmp dword [ebp - 0x17c], 0
jne 0x40fe44
jmp 0x410dd0
mov ecx, dword [ebp - 0x708]
add ecx, 1
mov edx, dword [ebp - 0x704]
adc edx, 0
mov dword [ebp - 0x708], ecx
mov dword [ebp - 0x704], edx
jmp 0x40fe90
cmp dword [ebp - 0x17c], 0
je 0x40fe72
jmp 0x410dd0
mov eax, dword [ebp - 0x708]
add eax, 1
mov ecx, dword [ebp - 0x704]
adc ecx, 0
mov dword [ebp - 0x708], eax
mov dword [ebp - 0x704], ecx
mov edx, dword [ebp - 0x70c]
mov edx, dword [edx]
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 - 0x980], eax
mov dword [ebp - 0x97c], edx
mov eax, dword [ebp - 0x980]
or eax, dword [ebp - 0x97c]
test eax, eax
je 0x410b63
mov word [ebp - 0x720], 0
mov ecx, dword [ebp - 0x70c]
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 - 0x988], eax
mov dword [ebp - 0x984], edx
mov eax, dword [ebp - 0x988]
or eax, dword [ebp - 0x984]
test eax, eax
je 0x410b26
lea ecx, [ebp - 0x6bc]
call fcn.00496300
mov dword [ebp - 0x98c], eax
cmp dword [ebp - 0x98c], 1
je 0x40ff3c
jmp 0x410dd0
mov ecx, dword [ebp - 0x70c]
mov edx, dword [ecx]
mov ax, word [edx + 0x20]
and ax, 1
and eax, 0xffff
and eax, 1
test eax, eax
je 0x40ffc1
mov dword [ebp - 0x724], 0
call fcn.0045c138
mov dword [ebp - 0x990], eax
lea ecx, [ebp - 0x724]
push ecx
mov edx, dword [ebp - 0x70c]
push edx
lea eax, [ebp - 0x6bc]
push eax
mov ecx, dword [ebp - 0x990]
call fcn.0045a5a2
mov dword [ebp - 0x994], eax
cmp dword [ebp - 0x994], 0
je 0x40ffa1
jmp 0x410dd0
cmp dword [ebp - 0x724], 0
jne 0x40ffaf
jmp 0x410dd0
mov cx, word [ebp - 0x720]
add cx, 1
mov word [ebp - 0x720], cx
mov edx, dword [ebp - 0x70c]
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 0x41004a
mov dword [ebp - 0x728], 0
call fcn.0045c138
mov dword [ebp - 0x998], eax
lea edx, [ebp - 0x728]
push edx
mov eax, dword [ebp - 0x70c]
push eax
lea ecx, [ebp - 0x6bc]
push ecx
mov ecx, dword [ebp - 0x998]
call fcn.0045a70f
mov dword [ebp - 0x99c], eax
cmp dword [ebp - 0x99c], 0
je 0x41002a
jmp 0x410dd0
cmp dword [ebp - 0x728], 0
jne 0x410038
jmp 0x410dd0
mov dx, word [ebp - 0x720]
add dx, 1
mov word [ebp - 0x720], dx
mov eax, dword [ebp - 0x70c]
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 0x4106ee
lea ecx, [ebp - 0x6bc]
call fcn.00423294
mov dword [ebp - 0x9a0], eax
mov eax, dword [ebp - 0x9a0]
cmp dword [eax + 0x54], 1
jne 0x4106ee
lea ecx, [ebp - 0x6bc]
call fcn.00423294
mov dword [ebp - 0x9a4], eax
mov ecx, dword [ebp - 0x9a4]
cmp dword [ecx + 0x58], 0
je 0x4106ee
lea ecx, [ebp - 0x6bc]
call fcn.00423294
mov dword [ebp - 0x9a8], eax
mov edx, dword [ebp - 0x9a8]
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 - 0x9ac], eax
mov ecx, dword [ebp - 0x9ac]
mov dword [ebp - 0x820], ecx
mov edx, dword [ebp - 0x820]
mov dword [ebp - 0x73c], edx
cmp dword [ebp - 0x73c], 0
jne 0x41012b
mov dword [ebp - 0x824], 0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x6bc]
call fcn.004231f7
mov eax, dword [ebp - 0x824]
jmp 0x410fac
lea ecx, [ebp - 0x6bc]
call fcn.00423294
mov dword [ebp - 0x9b0], eax
mov eax, dword [ebp - 0x9b0]
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 - 0x73c]
push edx
call sub.ntdll.dll_memset
add esp, 0xc
lea ecx, [ebp - 0x6bc]
call fcn.00423294
mov dword [ebp - 0x9b4], eax
lea ecx, [ebp - 0x6bc]
call fcn.00423294
mov dword [ebp - 0x9b8], eax
mov eax, dword [ebp - 0x9b4]
mov ecx, dword [eax + 0x58]
push ecx
call sub.ntdll.dll_strlen
add esp, 4
push eax
mov edx, dword [ebp - 0x9b8]
mov eax, dword [edx + 0x58]
push eax
mov ecx, dword [ebp - 0x73c]
push ecx
call sub.ntdll.dll_memcpy
add esp, 0xc
mov edx, dword [ebp - 0x73c]
push edx
call sub.ntdll.dll_strlen
add esp, 4
mov dword [ebp - 0x744], eax
mov eax, dword [ebp - 0x744]
add eax, 1
push eax
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [ebp - 0x9bc], eax
mov ecx, dword [ebp - 0x9bc]
mov dword [ebp - 0x828], ecx
mov edx, dword [ebp - 0x828]
mov dword [ebp - 0x738], edx
cmp dword [ebp - 0x738], 0
jne 0x410251
cmp dword [ebp - 0x73c], 0
je 0x410223
mov eax, dword [ebp - 0x73c]
mov dword [ebp - 0x82c], eax
mov ecx, dword [ebp - 0x82c]
push ecx
call fcn.004aa2c8
add esp, 4
mov dword [ebp - 0x73c], 0
mov dword [ebp - 0x830], 0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x6bc]
call fcn.004231f7
mov eax, dword [ebp - 0x830]
jmp 0x410fac
mov edx, dword [ebp - 0x744]
add edx, 1
push edx
push 0
mov eax, dword [ebp - 0x738]
push eax
call sub.ntdll.dll_memset
add esp, 0xc
mov ecx, dword [ebp - 0x744]
push ecx
mov edx, dword [ebp - 0x73c]
push edx
mov eax, dword [ebp - 0x738]
push eax
call sub.ntdll.dll_memcpy
add esp, 0xc
push 0x4c4638
mov ecx, dword [ebp - 0x738]
push ecx
call fcn.004019f0
add esp, 8
mov dword [ebp - 0x9c0], eax
mov edx, dword [ebp - 0x9c0]
mov dword [ebp - 0x748], edx
cmp dword [ebp - 0x748], 0
jne 0x41033c
cmp dword [ebp - 0x738], 0
je 0x4102e0
mov eax, dword [ebp - 0x738]
mov dword [ebp - 0x834], eax
mov ecx, dword [ebp - 0x834]
push ecx
call fcn.004aa2c8
add esp, 4
mov dword [ebp - 0x738], 0
cmp dword [ebp - 0x73c], 0
je 0x41030e
mov edx, dword [ebp - 0x73c]
mov dword [ebp - 0x838], edx
mov eax, dword [ebp - 0x838]
push eax
call fcn.004aa2c8
add esp, 4
mov dword [ebp - 0x73c], 0
mov dword [ebp - 0x83c], 0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x6bc]
call fcn.004231f7
mov eax, dword [ebp - 0x83c]
jmp 0x410fac
mov ecx, dword [ebp - 0x744]
add ecx, 1
push ecx
push 0
mov edx, dword [ebp - 0x738]
push edx
call sub.ntdll.dll_memset
add esp, 0xc
mov eax, dword [ebp - 0x744]
push eax
mov ecx, dword [ebp - 0x73c]
push ecx
mov edx, dword [ebp - 0x738]
push edx
call sub.ntdll.dll_memcpy
add esp, 0xc
mov eax, dword [ebp - 0x748]
shl eax, 2
push eax
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [ebp - 0x9c4], eax
mov ecx, dword [ebp - 0x9c4]
mov dword [ebp - 0x840], ecx
mov edx, dword [ebp - 0x840]
mov dword [ebp - 0x730], edx
cmp dword [ebp - 0x730], 0
jne 0x410431
cmp dword [ebp - 0x738], 0
je 0x4103d5
mov eax, dword [ebp - 0x738]
mov dword [ebp - 0x844], eax
mov ecx, dword [ebp - 0x844]
push ecx
call fcn.004aa2c8
add esp, 4
mov dword [ebp - 0x738], 0
cmp dword [ebp - 0x73c], 0
je 0x410403
mov edx, dword [ebp - 0x73c]
mov dword [ebp - 0x848], edx
mov eax, dword [ebp - 0x848]
push eax
call fcn.004aa2c8
add esp, 4
mov dword [ebp - 0x73c], 0
mov dword [ebp - 0x84c], 0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x6bc]
call fcn.004231f7
mov eax, dword [ebp - 0x84c]
jmp 0x410fac
mov ecx, dword [ebp - 0x738]
mov dword [ebp - 0x72c], ecx
push 0x4c463c
mov edx, dword [ebp - 0x72c]
push edx
call dword [sym.imp.MSVCRT.dll_strtok]
add esp, 8
mov dword [ebp - 0x734], eax
mov dword [ebp - 0x740], 0
cmp dword [ebp - 0x734], 0
je 0x410565
mov eax, dword [ebp - 0x734]
push eax
call fcn.004018f0
add esp, 4
mov ecx, dword [ebp - 0x734]
push ecx
call sub.ntdll.dll_strlen
add esp, 4
mov dword [ebp - 0x74c], eax
cmp dword [ebp - 0x74c], 0
je 0x41054a
mov edx, dword [ebp - 0x74c]
add edx, 1
push edx
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [ebp - 0x9c8], eax
mov eax, dword [ebp - 0x9c8]
mov dword [ebp - 0x850], eax
mov ecx, dword [ebp - 0x740]
mov edx, dword [ebp - 0x730]
mov eax, dword [ebp - 0x850]
mov dword [edx + ecx*4], eax
mov ecx, dword [ebp - 0x740]
mov edx, dword [ebp - 0x730]
cmp dword [edx + ecx*4], 0
jne 0x4104f0
jmp 0x4105f0
mov eax, dword [ebp - 0x74c]
add eax, 1
push eax
push 0
mov ecx, dword [ebp - 0x740]
mov edx, dword [ebp - 0x730]
mov eax, dword [edx + ecx*4]
push eax
call sub.ntdll.dll_memset
add esp, 0xc
mov ecx, dword [ebp - 0x74c]
push ecx
mov edx, dword [ebp - 0x734]
push edx
mov eax, dword [ebp - 0x740]
mov ecx, dword [ebp - 0x730]
mov edx, dword [ecx + eax*4]
push edx
call dword [sym.imp.ntdll.dll_strncpy]
add esp, 0xc
mov eax, dword [ebp - 0x740]
add eax, 1
mov dword [ebp - 0x740], eax
push 0x4c4640
push 0
call dword [sym.imp.MSVCRT.dll_strtok]
add esp, 8
mov dword [ebp - 0x734], eax
jmp 0x410462
mov dword [ebp - 0x740], 0
jmp 0x410580
mov ecx, dword [ebp - 0x740]
add ecx, 1
mov dword [ebp - 0x740], ecx
mov edx, dword [ebp - 0x740]
cmp edx, dword [ebp - 0x748]
jae 0x4105f0
mov eax, dword [ebp - 0x70c]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x38]
mov al, byte [edx + 0x10]
push eax
mov ecx, dword [ebp - 0x70c]
mov edx, dword [ecx]
mov eax, dword [edx + 0x38]
mov ecx, dword [eax + 0x14]
push ecx
mov edx, dword [ebp - 0x740]
mov eax, dword [ebp - 0x730]
mov ecx, dword [eax + edx*4]
push ecx
call fcn.004254bb
add esp, 0xc
mov byte [ebp - 0x9cc], al
mov edx, dword [ebp - 0x9cc]
and edx, 0xff
test edx, edx
je 0x4105ee
mov ax, word [ebp - 0x720]
add ax, 1
mov word [ebp - 0x720], ax
jmp 0x4105f0
jmp 0x410571
mov dword [ebp - 0x740], 0
jmp 0x41060b
mov ecx, dword [ebp - 0x740]
add ecx, 1
mov dword [ebp - 0x740], ecx
mov edx, dword [ebp - 0x740]
cmp edx, dword [ebp - 0x748]
jae 0x410664
mov eax, dword [ebp - 0x740]
mov ecx, dword [ebp - 0x730]
cmp dword [ecx + eax*4], 0
je 0x41064f
mov edx, dword [ebp - 0x740]
mov eax, dword [ebp - 0x730]
mov ecx, dword [eax + edx*4]
mov dword [ebp - 0x854], ecx
mov edx, dword [ebp - 0x854]
push edx
call fcn.004aa2c8
add esp, 4
mov eax, dword [ebp - 0x740]
mov ecx, dword [ebp - 0x730]
mov dword [ecx + eax*4], 0
jmp 0x4105fc
cmp dword [ebp - 0x730], 0
je 0x410688
mov edx, dword [ebp - 0x730]
mov dword [ebp - 0x858], edx
mov eax, dword [ebp - 0x858]
push eax
call fcn.004aa2c8
add esp, 4
mov dword [ebp - 0x730], 0
cmp dword [ebp - 0x738], 0
je 0x4106b6
mov ecx, dword [ebp - 0x738]
mov dword [ebp - 0x85c], ecx
mov edx, dword [ebp - 0x85c]
push edx
call fcn.004aa2c8
add esp, 4
mov dword [ebp - 0x738], 0
cmp dword [ebp - 0x73c], 0
je 0x4106e4
mov eax, dword [ebp - 0x73c]
mov dword [ebp - 0x860], eax
mov ecx, dword [ebp - 0x860]
push ecx
call fcn.004aa2c8
add esp, 4
mov dword [ebp - 0x73c], 0
mov edx, dword [ebp - 0x70c]
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 0x41077c
lea ecx, [ebp - 0x6bc]
call fcn.00423437
mov dword [ebp - 0x9d0], eax
mov edx, dword [ebp - 0x70c]
mov eax, dword [edx]
mov ecx, dword [eax + 0x38]
mov dl, byte [ecx + 0x18]
push edx
mov eax, dword [ebp - 0x70c]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x38]
add edx, 0x19
push edx
mov eax, dword [ebp - 0x9d0]
push eax
call fcn.00425233
add esp, 0xc
mov byte [ebp - 0x9d4], al
mov ecx, dword [ebp - 0x9d4]
and ecx, 0xff
test ecx, ecx
je 0x410777
mov dx, word [ebp - 0x720]
add dx, 1
mov word [ebp - 0x720], dx
jmp 0x41077c
jmp 0x410dd0
mov eax, dword [ebp - 0x70c]
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 0x41082a
mov dword [ebp - 0x758], 0
mov byte [ebp - 0x750], 0
mov byte [ebp - 0x75c], 0
mov dword [ebp - 0x760], 0
mov dword [ebp - 0x754], 0
lea eax, [ebp - 0x758]
push eax
mov ecx, dword [ebp - 0x70c]
push ecx
mov edx, dword [ebp - 0x754]
push edx
mov eax, dword [ebp - 0x760]
push eax
lea ecx, [ebp - 0x6bc]
call fcn.004234b1
mov dword [ebp - 0x9d8], eax
cmp dword [ebp - 0x9d8], 0
je 0x410808
jmp 0x410dd0
cmp dword [ebp - 0x758], 0
je 0x410825
mov cx, word [ebp - 0x720]
add cx, 1
mov word [ebp - 0x720], cx
jmp 0x41082a
jmp 0x410dd0
mov edx, dword [ebp - 0x70c]
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 0x41093c
mov byte [ebp - 0x764], 0
mov byte [ebp - 0x768], 0
mov byte [ebp - 0x764], 0
jmp 0x410875
mov dl, byte [ebp - 0x764]
add dl, 1
mov byte [ebp - 0x764], dl
mov eax, dword [ebp - 0x70c]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x38]
xor eax, eax
mov al, byte [edx + 0x20]
mov ecx, dword [ebp - 0x764]
and ecx, 0xff
cmp ecx, eax
jge 0x410904
mov dword [ebp - 0x76c], 0
lea edx, [ebp - 0x76c]
push edx
mov eax, dword [ebp - 0x70c]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x38]
mov eax, dword [ebp - 0x764]
and eax, 0xff
mov ecx, dword [edx + 0x24]
mov edx, dword [ecx + eax*4]
push edx
lea eax, [ebp - 0x6bc]
push eax
call fcn.00425ec9
add esp, 0xc
mov dword [ebp - 0x9dc], eax
cmp dword [ebp - 0x9dc], 0
je 0x4108e3
jmp 0x410904
cmp dword [ebp - 0x76c], 0
je 0x4108fd
mov cl, byte [ebp - 0x768]
add cl, 1
mov byte [ebp - 0x768], cl
jmp 0x4108ff
jmp 0x410904
jmp 0x410866
mov edx, dword [ebp - 0x70c]
mov eax, dword [edx]
mov ecx, dword [eax + 0x38]
xor edx, edx
mov dl, byte [ecx + 0x20]
mov eax, dword [ebp - 0x768]
and eax, 0xff
cmp eax, edx
jne 0x410937
mov cx, word [ebp - 0x720]
add cx, 1
mov word [ebp - 0x720], cx
jmp 0x41093c
jmp 0x410dd0
mov edx, dword [ebp - 0x70c]
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 0x410a4e
mov byte [ebp - 0x770], 0
mov byte [ebp - 0x774], 0
mov byte [ebp - 0x770], 0
jmp 0x410987
mov dl, byte [ebp - 0x770]
add dl, 1
mov byte [ebp - 0x770], dl
mov eax, dword [ebp - 0x70c]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x38]
xor eax, eax
mov al, byte [edx + 0x28]
mov ecx, dword [ebp - 0x770]
and ecx, 0xff
cmp ecx, eax
jge 0x410a16
mov dword [ebp - 0x778], 0
lea edx, [ebp - 0x778]
push edx
mov eax, dword [ebp - 0x70c]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x38]
mov eax, dword [ebp - 0x770]
and eax, 0xff
mov ecx, dword [edx + 0x2c]
mov edx, dword [ecx + eax*4]
push edx
lea eax, [ebp - 0x6bc]
push eax
call fcn.00426651
add esp, 0xc
mov dword [ebp - 0x9e0], eax
cmp dword [ebp - 0x9e0], 0
je 0x4109f5
jmp 0x410a16
cmp dword [ebp - 0x778], 0
je 0x410a0f
mov cl, byte [ebp - 0x774]
add cl, 1
mov byte [ebp - 0x774], cl
jmp 0x410a11
jmp 0x410a16
jmp 0x410978
mov edx, dword [ebp - 0x70c]
mov eax, dword [edx]
mov ecx, dword [eax + 0x38]
xor edx, edx
mov dl, byte [ecx + 0x28]
mov eax, dword [ebp - 0x774]
and eax, 0xff
cmp eax, edx
jne 0x410a49
mov cx, word [ebp - 0x720]
add cx, 1
mov word [ebp - 0x720], cx
jmp 0x410a4e
jmp 0x410dd0
mov edx, dword [ebp - 0x70c]
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 0x410ad8
mov dword [ebp - 0x77c], 0
call fcn.0045c138
mov dword [ebp - 0x9e4], eax
lea edx, [ebp - 0x77c]
push edx
mov eax, dword [ebp - 0x70c]
push eax
lea ecx, [ebp - 0x6bc]
push ecx
mov ecx, dword [ebp - 0x9e4]
call fcn.0045ae1a
mov dword [ebp - 0x9e8], eax
cmp dword [ebp - 0x9e8], 0
je 0x410ab8
jmp 0x410dd0
cmp dword [ebp - 0x77c], 0
jne 0x410ac6
jmp 0x410dc6
mov dx, word [ebp - 0x720]
add dx, 1
mov word [ebp - 0x720], dx
mov eax, dword [ebp - 0x70c]
mov ecx, dword [eax]
mov dx, word [ecx + 0x20]
push edx
call fcn.00401c80
add esp, 4
mov dword [ebp - 0x9ec], eax
mov eax, dword [ebp - 0x720]
and eax, 0xffff
cmp dword [ebp - 0x9ec], eax
jne 0x410b24
mov ecx, dword [ebp - 0x708]
add ecx, 1
mov edx, dword [ebp - 0x704]
adc edx, 0
mov dword [ebp - 0x708], ecx
mov dword [ebp - 0x704], edx
jmp 0x410b63
lea ecx, [ebp - 0x6bc]
call fcn.00496300
mov dword [ebp - 0x9f0], eax
cmp dword [ebp - 0x9f0], 1
je 0x410b45
jmp 0x410dd0
mov eax, dword [ebp - 0x708]
add eax, 1
mov ecx, dword [ebp - 0x704]
adc ecx, 0
mov dword [ebp - 0x708], eax
mov dword [ebp - 0x704], ecx
mov edx, dword [ebp - 0x70c]
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 - 0x9f8], eax
mov dword [ebp - 0x9f4], edx
mov eax, dword [ebp - 0x9f8]
or eax, dword [ebp - 0x9f4]
test eax, eax
je 0x410c96
mov byte [ebp - 0x784], 0
mov byte [ebp - 0x780], 0
mov byte [ebp - 0x784], 0
jmp 0x410bcb
mov cl, byte [ebp - 0x784]
add cl, 1
mov byte [ebp - 0x784], cl
mov edx, dword [ebp - 0x70c]
mov eax, dword [edx]
xor ecx, ecx
mov cl, byte [eax + 0x3c]
mov edx, dword [ebp - 0x784]
and edx, 0xff
cmp edx, ecx
jge 0x410c54
mov dword [ebp - 0x788], 0
lea eax, [ebp - 0x788]
push eax
mov ecx, dword [ebp - 0x70c]
mov edx, dword [ecx]
mov eax, dword [ebp - 0x784]
and eax, 0xff
mov ecx, dword [edx + 0x40]
mov edx, dword [ecx + eax*4]
push edx
lea eax, [ebp - 0x6bc]
push eax
call fcn.00424ad3
add esp, 0xc
mov dword [ebp - 0x9fc], eax
cmp dword [ebp - 0x9fc], 0
je 0x410c33
jmp 0x410c54
cmp dword [ebp - 0x788], 0
je 0x410c4d
mov cl, byte [ebp - 0x780]
add cl, 1
mov byte [ebp - 0x780], cl
jmp 0x410c4f
jmp 0x410c54
jmp 0x410bbc
mov edx, dword [ebp - 0x70c]
mov eax, dword [edx]
xor ecx, ecx
mov cl, byte [eax + 0x3c]
mov edx, dword [ebp - 0x780]
and edx, 0xff
cmp edx, ecx
jne 0x410c91
mov eax, dword [ebp - 0x708]
add eax, 1
mov ecx, dword [ebp - 0x704]
adc ecx, 0
mov dword [ebp - 0x708], eax
mov dword [ebp - 0x704], ecx
jmp 0x410c96
jmp 0x410dd0
mov edx, dword [ebp - 0x70c]
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 - 0xa04], eax
mov dword [ebp - 0xa00], edx
mov eax, dword [ebp - 0xa04]
or eax, dword [ebp - 0xa00]
test eax, eax
je 0x410dc6
mov byte [ebp - 0x790], 0
mov byte [ebp - 0x78c], 0
mov byte [ebp - 0x790], 0
jmp 0x410cfe
mov cl, byte [ebp - 0x790]
add cl, 1
mov byte [ebp - 0x790], cl
mov edx, dword [ebp - 0x70c]
mov eax, dword [edx]
xor ecx, ecx
mov cl, byte [eax + 0x44]
mov edx, dword [ebp - 0x790]
and edx, 0xff
cmp edx, ecx
jge 0x410d87
mov dword [ebp - 0x794], 0
lea eax, [ebp - 0x794]
push eax
mov ecx, dword [ebp - 0x70c]
mov edx, dword [ecx]
mov eax, dword [ebp - 0x790]
and eax, 0xff
mov ecx, dword [edx + 0x48]
mov edx, dword [ecx + eax*4]
push edx
lea eax, [ebp - 0x6bc]
push eax
call fcn.00424d64
add esp, 0xc
mov dword [ebp - 0xa08], eax
cmp dword [ebp - 0xa08], 0
je 0x410d66
jmp 0x410d87
cmp dword [ebp - 0x794], 0
je 0x410d80
mov cl, byte [ebp - 0x78c]
add cl, 1
mov byte [ebp - 0x78c], cl
jmp 0x410d82
jmp 0x410d87
jmp 0x410cef
mov edx, dword [ebp - 0x70c]
mov eax, dword [edx]
xor ecx, ecx
mov cl, byte [eax + 0x44]
mov edx, dword [ebp - 0x78c]
and edx, 0xff
cmp edx, ecx
jne 0x410dc4
mov eax, dword [ebp - 0x708]
add eax, 1
mov ecx, dword [ebp - 0x704]
adc ecx, 0
mov dword [ebp - 0x708], eax
mov dword [ebp - 0x704], ecx
jmp 0x410dc6
jmp 0x410dd0
xor edx, edx
test edx, edx
jne 0x40f893
mov eax, dword [ebp - 0x70c]
cmp dword [eax], 0
je 0x410f74
mov ecx, dword [ebp - 0x70c]
mov edx, dword [ecx]
mov eax, dword [edx + 0x14]
push eax
mov ecx, dword [edx + 0x10]
push ecx
call fcn.00401c20
add esp, 8
mov dword [ebp - 0xa0c], eax
mov edx, dword [ebp - 0xa0c]
xor eax, eax
mov dword [ebp - 0xa14], edx
mov dword [ebp - 0xa10], eax
mov ecx, dword [ebp - 0xa14]
cmp ecx, dword [ebp - 0x708]
jne 0x410f74
mov edx, dword [ebp - 0xa10]
cmp edx, dword [ebp - 0x704]
jne 0x410f74
mov dword [ebp - 0x7fc], 0
mov eax, dword [ebp - 0x70c]
mov ecx, dword [eax]
mov edx, dword [ecx + 4]
push edx
mov ecx, dword [ebp - 0x868]
call fcn.0040d2c2
mov dword [ebp - 0xa18], eax
mov eax, dword [ebp - 0xa18]
mov ecx, dword [eax]
mov dword [ebp - 0x7fc], ecx
mov byte [ebp - 0x7f8], 0
mov ecx, 0x18
xor eax, eax
lea edi, [ebp - 0x7f7]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov edx, dword [ebp - 0x70c]
mov eax, dword [edx]
mov cl, byte [eax + 8]
and cl, 0xf
and ecx, 0xff
test ecx, ecx
jl 0x410ed7
mov edx, dword [ebp - 0x70c]
mov eax, dword [edx]
mov cl, byte [eax + 8]
and cl, 0xf
and ecx, 0xff
cmp ecx, 5
ja 0x410ed7
mov edx, dword [ebp - 0x70c]
mov eax, dword [edx]
mov cl, byte [eax + 8]
and cl, 0xf
and ecx, 0xff
mov edx, dword [ecx*8 + 0x4afc5c]
mov dword [ebp - 0xa1c], edx
jmp 0x410ee1
mov dword [ebp - 0xa1c], 0x4c4644
mov eax, dword [ebp - 0x70c]
push eax
call fcn.00401d20
add esp, 4
mov dword [ebp - 0xa20], eax
mov ecx, dword [ebp - 0x70c]
mov edx, dword [ecx]
mov eax, dword [edx + 0xc]
push eax
mov ecx, dword [ebp - 0xa20]
push ecx
mov edx, dword [ebp - 0xa1c]
push edx
push 0x4c464c
push 0x64
lea eax, [ebp - 0x7f8]
push eax
call fcn.0040a230
add esp, 0x18
cmp dword [ebp - 0x7fc], 0
je 0x410f51
mov ecx, dword [ebp - 0x70c]
push ecx
mov edx, dword [ebp + 8]
push edx
mov eax, dword [ebp - 0x7fc]
add eax, 8
push eax
mov ecx, dword [ebp - 0x868]
call fcn.0040d6fe
jmp 0x410f69
mov ecx, dword [ebp - 0x70c]
push ecx
mov edx, dword [ebp + 8]
push edx
push 0
mov ecx, dword [ebp - 0x868]
call fcn.0040d6fe
mov eax, dword [ebp - 0x14]
add eax, 1
mov dword [ebp - 0x14], eax
jmp 0x410f79
jmp 0x40f54c
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x6bc]
call fcn.004231f7
jmp 0x410fa2
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