Function at 0x40f2c9
Capabilities:
Encode data using base64

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4a60f0
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.0042ae0a
add esp, 4
mov dword [ebp - 0x86c], eax
cmp dword [ebp - 0x86c], 0
jne 0x40f32e
mov ecx, dword [ebp + 0xc]
mov dword [ecx], 0
mov eax, dword [ebp - 0x14]
jmp 0x41100f
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.00422778
add esp, 8
mov dword [ebp - 0x870], eax
cmp dword [ebp - 0x870], 0
je 0x40f37d
mov ecx, dword [ebp + 0xc]
mov dword [ecx], 0
xor eax, eax
jmp 0x41100f
mov dword [ebp - 0x6f0], 0
lea ecx, [ebp - 0x6bc]
call fcn.0041ee10
mov dword [ebp - 0x874], eax
mov byte [ebp - 4], 1
cmp dword [ebp - 0x1c], 0
jne 0x40f496
push 1
mov edx, dword [ebp + 8]
push edx
lea ecx, [ebp - 0x6bc]
call fcn.0048fb90
mov dword [ebp - 0x878], eax
cmp dword [ebp - 0x878], 0
jne 0x40f3db
mov eax, dword [ebp + 0xc]
mov dword [eax], 0
mov dword [ebp - 0x6f0], 0
jmp 0x40f3e5
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.004907b0
call fcn.004258b5
mov dword [ebp - 0x87c], eax
lea eax, [ebp - 0x6ec]
push eax
lea ecx, [ebp - 0x700]
push ecx
mov ecx, dword [ebp - 0x87c]
call fcn.00424d3a
mov dword [ebp - 0x880], eax
cmp dword [ebp - 0x880], 0
je 0x40f496
lea edx, [ebp - 0x6ec]
push edx
mov eax, dword [ebp + 8]
push eax
push 0
mov ecx, dword [ebp - 0x868]
call fcn.0040d506
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.0041eee7
mov eax, dword [ebp - 0x800]
jmp 0x41100f
mov eax, dword [ebp + 8]
push eax
lea ecx, [ebp - 0x6bc]
call fcn.0041f334
mov dword [ebp - 0x884], eax
cmp dword [ebp - 0x884], 0
jne 0x40f4d8
mov dword [ebp - 0x804], 0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x6bc]
call fcn.0041eee7
mov eax, dword [ebp - 0x804]
jmp 0x41100f
mov ecx, dword [ebp + 8]
push ecx
lea ecx, [ebp - 0x6bc]
call fcn.0041f061
mov dword [ebp - 0x888], eax
cmp dword [ebp - 0x888], 0
je 0x40f51a
mov dword [ebp - 0x808], 0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x6bc]
call fcn.0041eee7
mov eax, dword [ebp - 0x808]
jmp 0x41100f
lea ecx, [ebp - 0x6bc]
call fcn.00490550
mov dword [ebp - 0x88c], eax
cmp dword [ebp - 0x88c], 1
jne 0x40f53f
mov edx, dword [ebp + 0xc]
mov dword [edx], 1
jmp 0x40f548
mov eax, dword [ebp + 0xc]
mov dword [eax], 0
call fcn.00458028
mov dword [ebp - 0x890], eax
mov ecx, dword [ebp - 0x890]
call fcn.004543f0
mov dword [ebp - 0x894], eax
mov ecx, dword [ebp - 0x894]
call fcn.00426af5
mov dword [ebp - 0x898], eax
mov ecx, dword [ebp - 0x898]
call fcn.0044c3ca
mov dword [ebp - 0x89c], eax
lea ecx, [ebp - 0x80c]
push ecx
mov ecx, dword [ebp - 0x89c]
call fcn.00416da0
mov dword [ebp - 0x8a0], eax
mov edx, dword [ebp - 0x8a0]
push edx
lea ecx, [ebp - 0x18]
call fcn.00416cd0
jmp 0x40f5c0
push 0
lea eax, [ebp - 0x810]
push eax
lea ecx, [ebp - 0x18]
call fcn.00416820
mov ecx, dword [ebp - 0x868]
cmp dword [ecx + 0x438], 0
jne 0x410fdc
call fcn.00458028
mov dword [ebp - 0x8a4], eax
mov ecx, dword [ebp - 0x8a4]
call fcn.004543f0
mov dword [ebp - 0x8a8], eax
mov ecx, dword [ebp - 0x8a8]
call fcn.00426af5
mov dword [ebp - 0x8ac], eax
mov ecx, dword [ebp - 0x8ac]
call fcn.0044c3ca
mov dword [ebp - 0x8b0], eax
lea edx, [ebp - 0x814]
push edx
mov ecx, dword [ebp - 0x8b0]
call fcn.004819b0
mov dword [ebp - 0x8b4], eax
mov eax, dword [ebp - 0x8b4]
push eax
lea ecx, [ebp - 0x18]
call fcn.00441530
mov byte [ebp - 0x8b8], al
mov ecx, dword [ebp - 0x8b8]
and ecx, 0xff
test ecx, ecx
je 0x410fdc
lea ecx, [ebp - 0x18]
call fcn.004845b0
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 0x40f6c8
call fcn.00458028
mov dword [ebp - 0x8c0], eax
mov ecx, dword [ebp - 0x70c]
push ecx
mov ecx, dword [ebp - 0x8c0]
call fcn.00456dc3
mov byte [ebp - 0x8c4], al
mov edx, dword [ebp - 0x8c4]
and edx, 0xff
cmp edx, 2
je 0x40f6c8
jmp 0x40f5af
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 0x40f72a
mov dword [ebp - 0x818], 0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x6bc]
call fcn.0041eee7
mov eax, dword [ebp - 0x818]
jmp 0x41100f
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 0x40f786
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 0x40f7e2
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 0x40f8f6
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 0x40f8ad
call fcn.0041c610
mov dword [ebp - 0x8f0], eax
push 0xffffffffffffffff
mov ecx, dword [ebp + 8]
push ecx
mov ecx, dword [ebp - 0x8f0]
call fcn.0041e400
mov dword [ebp - 0x8f4], eax
cmp dword [ebp - 0x8f4], 0
je 0x40f8ab
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 0x40f8f6
call fcn.0041c610
mov dword [ebp - 0x8f8], eax
push 0xffffffffffffffff
mov ecx, dword [ebp + 8]
push ecx
mov ecx, dword [ebp - 0x8f8]
call fcn.0041e400
mov dword [ebp - 0x8fc], eax
cmp dword [ebp - 0x8fc], 0
jne 0x40f8f6
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 0x40f944
mov dword [ebp - 0x81c], 0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x6bc]
call fcn.0041eee7
mov eax, dword [ebp - 0x81c]
jmp 0x41100f
cmp dword [ebp - 0x1c], 0
jne 0x40fa17
cmp dword [ebp - 0x6f0], 0
jne 0x40fa17
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 0x40f99f
mov dword [ebp - 0x90c], 1
jmp 0x40f9a9
mov dword [ebp - 0x90c], 0
mov ecx, dword [ebp - 0x90c]
and ecx, 1
test ecx, ecx
je 0x40fa12
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 0x40fa12
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 0x410e33
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 0x40faeb
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 0x40fac2
cmp dword [ebp - 0x1c], 0
jne 0x40faa2
jmp 0x410e33
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 0x40faeb
cmp dword [ebp - 0x1c], 0
je 0x40facd
jmp 0x410e33
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 0x40fb9e
mov dword [ebp - 0x714], 0
call fcn.00458028
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.00455c3b
mov dword [ebp - 0x934], eax
cmp dword [ebp - 0x934], 0
je 0x40fb72
jmp 0x410e33
cmp dword [ebp - 0x714], 0
jne 0x40fb80
jmp 0x410e33
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 0x40fc18
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 0x40fe0e
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.004226f7
add esp, 0xc
mov dword [ebp - 0x948], eax
cmp dword [ebp - 0x948], 0
je 0x40fc5a
jmp 0x410e33
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 0x40fd34
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 0x40fd08
cmp dword [ebp - 0x718], 0
jne 0x40fce8
jmp 0x410e33
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 0x40fd34
cmp dword [ebp - 0x718], 0
je 0x40fd16
jmp 0x410e33
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 0x40fe0e
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 0x40fde2
cmp dword [ebp - 0x71c], 0
jne 0x40fdc2
jmp 0x410e33
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 0x40fe0e
cmp dword [ebp - 0x71c], 0
je 0x40fdf0
jmp 0x410e33
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 0x40fe19
jmp 0x410e33
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 0x40fef3
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 0x40fec7
cmp dword [ebp - 0x17c], 0
jne 0x40fea7
jmp 0x410e33
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 0x40fef3
cmp dword [ebp - 0x17c], 0
je 0x40fed5
jmp 0x410e33
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 0x410bc6
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 0x410b89
lea ecx, [ebp - 0x6bc]
call fcn.00490550
mov dword [ebp - 0x98c], eax
cmp dword [ebp - 0x98c], 1
je 0x40ff9f
jmp 0x410e33
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 0x410024
mov dword [ebp - 0x724], 0
call fcn.00458028
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.00456492
mov dword [ebp - 0x994], eax
cmp dword [ebp - 0x994], 0
je 0x410004
jmp 0x410e33
cmp dword [ebp - 0x724], 0
jne 0x410012
jmp 0x410e33
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 0x4100ad
mov dword [ebp - 0x728], 0
call fcn.00458028
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.004565ff
mov dword [ebp - 0x99c], eax
cmp dword [ebp - 0x99c], 0
je 0x41008d
jmp 0x410e33
cmp dword [ebp - 0x728], 0
jne 0x41009b
jmp 0x410e33
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 0x410751
lea ecx, [ebp - 0x6bc]
call fcn.0041ef84
mov dword [ebp - 0x9a0], eax
mov eax, dword [ebp - 0x9a0]
cmp dword [eax + 0x54], 1
jne 0x410751
lea ecx, [ebp - 0x6bc]
call fcn.0041ef84
mov dword [ebp - 0x9a4], eax
mov ecx, dword [ebp - 0x9a4]
cmp dword [ecx + 0x58], 0
je 0x410751
lea ecx, [ebp - 0x6bc]
call fcn.0041ef84
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 0x41018e
mov dword [ebp - 0x824], 0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x6bc]
call fcn.0041eee7
mov eax, dword [ebp - 0x824]
jmp 0x41100f
lea ecx, [ebp - 0x6bc]
call fcn.0041ef84
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.0041ef84
mov dword [ebp - 0x9b4], eax
lea ecx, [ebp - 0x6bc]
call fcn.0041ef84
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 0x4102b4
cmp dword [ebp - 0x73c], 0
je 0x410286
mov eax, dword [ebp - 0x73c]
mov dword [ebp - 0x82c], eax
mov ecx, dword [ebp - 0x82c]
push ecx
call fcn.004a4518
add esp, 4
mov dword [ebp - 0x73c], 0
mov dword [ebp - 0x830], 0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x6bc]
call fcn.0041eee7
mov eax, dword [ebp - 0x830]
jmp 0x41100f
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 0x4be628
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 0x41039f
cmp dword [ebp - 0x738], 0
je 0x410343
mov eax, dword [ebp - 0x738]
mov dword [ebp - 0x834], eax
mov ecx, dword [ebp - 0x834]
push ecx
call fcn.004a4518
add esp, 4
mov dword [ebp - 0x738], 0
cmp dword [ebp - 0x73c], 0
je 0x410371
mov edx, dword [ebp - 0x73c]
mov dword [ebp - 0x838], edx
mov eax, dword [ebp - 0x838]
push eax
call fcn.004a4518
add esp, 4
mov dword [ebp - 0x73c], 0
mov dword [ebp - 0x83c], 0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x6bc]
call fcn.0041eee7
mov eax, dword [ebp - 0x83c]
jmp 0x41100f
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 0x410494
cmp dword [ebp - 0x738], 0
je 0x410438
mov eax, dword [ebp - 0x738]
mov dword [ebp - 0x844], eax
mov ecx, dword [ebp - 0x844]
push ecx
call fcn.004a4518
add esp, 4
mov dword [ebp - 0x738], 0
cmp dword [ebp - 0x73c], 0
je 0x410466
mov edx, dword [ebp - 0x73c]
mov dword [ebp - 0x848], edx
mov eax, dword [ebp - 0x848]
push eax
call fcn.004a4518
add esp, 4
mov dword [ebp - 0x73c], 0
mov dword [ebp - 0x84c], 0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x6bc]
call fcn.0041eee7
mov eax, dword [ebp - 0x84c]
jmp 0x41100f
mov ecx, dword [ebp - 0x738]
mov dword [ebp - 0x72c], ecx
push 0x4be62c
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 0x4105c8
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 0x4105ad
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 0x410553
jmp 0x410653
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 0x4be630
push 0
call dword [sym.imp.MSVCRT.dll_strtok]
add esp, 8
mov dword [ebp - 0x734], eax
jmp 0x4104c5
mov dword [ebp - 0x740], 0
jmp 0x4105e3
mov ecx, dword [ebp - 0x740]
add ecx, 1
mov dword [ebp - 0x740], ecx
mov edx, dword [ebp - 0x740]
cmp edx, dword [ebp - 0x748]
jae 0x410653
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.004211ab
add esp, 0xc
mov byte [ebp - 0x9cc], al
mov edx, dword [ebp - 0x9cc]
and edx, 0xff
test edx, edx
je 0x410651
mov ax, word [ebp - 0x720]
add ax, 1
mov word [ebp - 0x720], ax
jmp 0x410653
jmp 0x4105d4
mov dword [ebp - 0x740], 0
jmp 0x41066e
mov ecx, dword [ebp - 0x740]
add ecx, 1
mov dword [ebp - 0x740], ecx
mov edx, dword [ebp - 0x740]
cmp edx, dword [ebp - 0x748]
jae 0x4106c7
mov eax, dword [ebp - 0x740]
mov ecx, dword [ebp - 0x730]
cmp dword [ecx + eax*4], 0
je 0x4106b2
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.004a4518
add esp, 4
mov eax, dword [ebp - 0x740]
mov ecx, dword [ebp - 0x730]
mov dword [ecx + eax*4], 0
jmp 0x41065f
cmp dword [ebp - 0x730], 0
je 0x4106eb
mov edx, dword [ebp - 0x730]
mov dword [ebp - 0x858], edx
mov eax, dword [ebp - 0x858]
push eax
call fcn.004a4518
add esp, 4
mov dword [ebp - 0x730], 0
cmp dword [ebp - 0x738], 0
je 0x410719
mov ecx, dword [ebp - 0x738]
mov dword [ebp - 0x85c], ecx
mov edx, dword [ebp - 0x85c]
push edx
call fcn.004a4518
add esp, 4
mov dword [ebp - 0x738], 0
cmp dword [ebp - 0x73c], 0
je 0x410747
mov eax, dword [ebp - 0x73c]
mov dword [ebp - 0x860], eax
mov ecx, dword [ebp - 0x860]
push ecx
call fcn.004a4518
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 0x4107df
lea ecx, [ebp - 0x6bc]
call fcn.0041f127
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.00420f23
add esp, 0xc
mov byte [ebp - 0x9d4], al
mov ecx, dword [ebp - 0x9d4]
and ecx, 0xff
test ecx, ecx
je 0x4107da
mov dx, word [ebp - 0x720]
add dx, 1
mov word [ebp - 0x720], dx
jmp 0x4107df
jmp 0x410e33
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 0x41088d
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.0041f1a1
mov dword [ebp - 0x9d8], eax
cmp dword [ebp - 0x9d8], 0
je 0x41086b
jmp 0x410e33
cmp dword [ebp - 0x758], 0
je 0x410888
mov cx, word [ebp - 0x720]
add cx, 1
mov word [ebp - 0x720], cx
jmp 0x41088d
jmp 0x410e33
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 0x41099f
mov byte [ebp - 0x764], 0
mov byte [ebp - 0x768], 0
mov byte [ebp - 0x764], 0
jmp 0x4108d8
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 0x410967
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.00421bb9
add esp, 0xc
mov dword [ebp - 0x9dc], eax
cmp dword [ebp - 0x9dc], 0
je 0x410946
jmp 0x410967
cmp dword [ebp - 0x76c], 0
je 0x410960
mov cl, byte [ebp - 0x768]
add cl, 1
mov byte [ebp - 0x768], cl
jmp 0x410962
jmp 0x410967
jmp 0x4108c9
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 0x41099a
mov cx, word [ebp - 0x720]
add cx, 1
mov word [ebp - 0x720], cx
jmp 0x41099f
jmp 0x410e33
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 0x410ab1
mov byte [ebp - 0x770], 0
mov byte [ebp - 0x774], 0
mov byte [ebp - 0x770], 0
jmp 0x4109ea
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 0x410a79
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.00422341
add esp, 0xc
mov dword [ebp - 0x9e0], eax
cmp dword [ebp - 0x9e0], 0
je 0x410a58
jmp 0x410a79
cmp dword [ebp - 0x778], 0
je 0x410a72
mov cl, byte [ebp - 0x774]
add cl, 1
mov byte [ebp - 0x774], cl
jmp 0x410a74
jmp 0x410a79
jmp 0x4109db
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 0x410aac
mov cx, word [ebp - 0x720]
add cx, 1
mov word [ebp - 0x720], cx
jmp 0x410ab1
jmp 0x410e33
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 0x410b3b
mov dword [ebp - 0x77c], 0
call fcn.00458028
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.00456d0a
mov dword [ebp - 0x9e8], eax
cmp dword [ebp - 0x9e8], 0
je 0x410b1b
jmp 0x410e33
cmp dword [ebp - 0x77c], 0
jne 0x410b29
jmp 0x410e29
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 0x410b87
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 0x410bc6
lea ecx, [ebp - 0x6bc]
call fcn.00490550
mov dword [ebp - 0x9f0], eax
cmp dword [ebp - 0x9f0], 1
je 0x410ba8
jmp 0x410e33
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 0x410cf9
mov byte [ebp - 0x784], 0
mov byte [ebp - 0x780], 0
mov byte [ebp - 0x784], 0
jmp 0x410c2e
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 0x410cb7
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.004207c3
add esp, 0xc
mov dword [ebp - 0x9fc], eax
cmp dword [ebp - 0x9fc], 0
je 0x410c96
jmp 0x410cb7
cmp dword [ebp - 0x788], 0
je 0x410cb0
mov cl, byte [ebp - 0x780]
add cl, 1
mov byte [ebp - 0x780], cl
jmp 0x410cb2
jmp 0x410cb7
jmp 0x410c1f
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 0x410cf4
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 0x410cf9
jmp 0x410e33
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 0x410e29
mov byte [ebp - 0x790], 0
mov byte [ebp - 0x78c], 0
mov byte [ebp - 0x790], 0
jmp 0x410d61
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 0x410dea
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.00420a54
add esp, 0xc
mov dword [ebp - 0xa08], eax
cmp dword [ebp - 0xa08], 0
je 0x410dc9
jmp 0x410dea
cmp dword [ebp - 0x794], 0
je 0x410de3
mov cl, byte [ebp - 0x78c]
add cl, 1
mov byte [ebp - 0x78c], cl
jmp 0x410de5
jmp 0x410dea
jmp 0x410d52
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 0x410e27
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 0x410e29
jmp 0x410e33
xor edx, edx
test edx, edx
jne 0x40f8f6
mov eax, dword [ebp - 0x70c]
cmp dword [eax], 0
je 0x410fd7
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 0x410fd7
mov edx, dword [ebp - 0xa10]
cmp edx, dword [ebp - 0x704]
jne 0x410fd7
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.0040d325
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 0x410f3a
mov edx, dword [ebp - 0x70c]
mov eax, dword [edx]
mov cl, byte [eax + 8]
and cl, 0xf
and ecx, 0xff
cmp ecx, 5
ja 0x410f3a
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 + 0x4a9c2c]
mov dword [ebp - 0xa1c], edx
jmp 0x410f44
mov dword [ebp - 0xa1c], 0x4be634
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 0x4be63c
push 0x64
lea eax, [ebp - 0x7f8]
push eax
call fcn.0040a2c0
add esp, 0x18
cmp dword [ebp - 0x7fc], 0
je 0x410fb4
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.0040d761
jmp 0x410fcc
mov ecx, dword [ebp - 0x70c]
push ecx
mov edx, dword [ebp + 8]
push edx
push 0
mov ecx, dword [ebp - 0x868]
call fcn.0040d761
mov eax, dword [ebp - 0x14]
add eax, 1
mov dword [ebp - 0x14], eax
jmp 0x410fdc
jmp 0x40f5af
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x6bc]
call fcn.0041eee7
jmp 0x411005
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