Function at 0x4155e0
Capabilities:
Read .ini file

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4bf143
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x9b0
mov eax, dword [0x4eb018]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov dword [ebp - 0x908], edi
mov dword [ebp - 0x9bc], edi
mov dword [ebp - 0x90c], 0
mov dword [ebp - 0x8b4], 0xf
mov dword [ebp - 0x8b8], 0
mov byte [ebp - 0x8c8], 0
mov dword [ebp - 4], 1
mov dword [ebp - 0x81c], 0xf
mov dword [ebp - 0x820], 0
mov byte [ebp - 0x830], 0
mov dword [ebp - 0x834], 0xf
mov dword [ebp - 0x838], 0
mov byte [ebp - 0x848], 0
mov dword [ebp - 0x888], 0
mov dword [ebp - 0x884], 0xf
mov byte [ebp - 0x898], 0
mov byte [ebp - 4], 4
mov dword [edi + 0x10], 0
mov dword [edi + 0x14], 0xf
mov byte [edi], 0
mov dword [edi + 0x10], 0
mov byte [edi], 0
mov eax, 1
xor ecx, ecx
mov dword [ebp - 0x90c], eax
mov eax, 0x800000
nop dword [eax]
shr eax, 1
lea ecx, [ecx + 1]
jne 0x4156e0
mov al, byte [ecx + str.12345689ABCDEFGHIJKLMNOPQRSTUVWXYZ]
lea ecx, [ebp - 0x898]
mov byte [ebp - 0x910], al
call fcn.00422260
test al, al
jne 0x415732
lea ecx, [ebp - 0x898]
call fcn.00422300
test al, al
jne 0x415732
cmp dword [ebp - 0x884], 0x10
lea eax, [ebp - 0x898]
mov dword [ebp - 0x888], 0
cmovae eax, dword [ebp - 0x898]
mov byte [eax], 0
push 0x800
lea eax, [ebp - 0x818]
push 0
push eax
call fcn.0049d5c0
add esp, 0xc
lea ecx, [ebp - 0x880]
call fcn.00414720
push ecx
mov edx, eax
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x8f8]
call fcn.004182b0
add esp, 4
mov byte [ebp - 4], 7
mov edx, dword [ebp - 0x86c]
cmp edx, 0x10
jb 0x4157a6
mov ecx, dword [ebp - 0x880]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x41579c
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x416bb0
push edx
push ecx
call fcn.0042556a
add esp, 8
mov dword [ebp - 0x8a0], 0
mov dword [ebp - 0x89c], 0xf
mov byte [ebp - 0x8b0], 0
mov byte [ebp - 4], 8
lea eax, [ebp - 0x8f8]
cmp dword [ebp - 0x8e4], 0x10
cmovae eax, dword [ebp - 0x8f8]
push eax
push 0x800
lea eax, [ebp - 0x818]
push eax
lea eax, [ebp - 0x8b0]
push eax
push str.computer
push str.peerid
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
test eax, eax
je 0x415987
lea esi, [ebp - 0x818]
lea ecx, [esi + 1]
nop
mov al, byte [esi]
inc esi
test al, al
jne 0x415810
mov edx, dword [ebp - 0x89c]
sub esi, ecx
mov dword [ebp - 0x8fc], esi
mov dword [ebp - 0x900], edx
cmp esi, edx
ja 0x41586b
mov eax, dword [ebp - 0x8fc]
lea esi, [ebp - 0x8b0]
push eax
cmp edx, 0x10
mov dword [ebp - 0x8a0], eax
lea eax, [ebp - 0x818]
cmovae esi, dword [ebp - 0x8b0]
push eax
push esi
call fcn.0049d720
mov eax, dword [ebp - 0x8fc]
add esp, 0xc
mov byte [esi + eax], 0
jmp 0x415987
cmp esi, 0x7fffffff
ja 0x416bb5
mov ecx, esi
or ecx, 0xf
cmp ecx, 0x7fffffff
ja 0x4158c7
mov eax, edx
shr eax, 1
mov dword [ebp - 0x8fc], eax
mov eax, SysReAllocString
sub eax, dword [ebp - 0x8fc]
cmp edx, eax
ja 0x4158c7
mov eax, dword [ebp - 0x8fc]
add eax, edx
cmp ecx, eax
cmovb ecx, eax
mov dword [ebp - 0x904], ecx
lea eax, [ecx + 1]
cmp eax, 0x1000
jb 0x4158fb
lea ecx, [eax + 0x23]
cmp ecx, eax
jbe 0x416bba
jmp 0x4158d7
mov eax, SysReAllocString
mov ecx, 0x80000023
mov dword [ebp - 0x904], eax
push ecx
call fcn.004252e9
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x416bdd
lea eax, [ecx + 0x23]
and eax, 0xffffffe0
mov dword [eax - 4], ecx
mov ecx, dword [ebp - 0x904]
jmp 0x415912
test eax, eax
je 0x415910
push eax
call fcn.004252e9
mov ecx, dword [ebp - 0x904]
add esp, 4
jmp 0x415912
xor eax, eax
mov dword [ebp - 0x89c], ecx
lea ecx, [ebp - 0x818]
push esi
push ecx
push eax
mov dword [ebp - 0x8fc], eax
mov dword [ebp - 0x8a0], esi
call fcn.0049cf70
mov eax, dword [ebp - 0x8fc]
add esp, 0xc
mov ecx, dword [ebp - 0x900]
mov byte [eax + esi], 0
cmp ecx, 0x10
jb 0x415981
lea edx, [ecx + 1]
mov ecx, dword [ebp - 0x8b0]
mov eax, ecx
cmp edx, 0x1000
jb 0x415971
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x416bdd
push edx
push ecx
call fcn.0042556a
mov eax, dword [ebp - 0x8fc]
add esp, 8
mov dword [ebp - 0x8b0], eax
lea edx, [ebp - 0x8b0]
lea ecx, [ebp - 0x8e0]
call fcn.004148f0
mov byte [ebp - 4], 9
mov edx, dword [ebp - 0x8d0]
test edx, edx
je 0x416037
cmp dword [ebp - 0x8cc], 0x10
lea eax, [ebp - 0x900]
push eax
lea eax, [ebp - 0x8fc]
mov dword [ebp - 0x8fc], 0x58912317
lea ecx, [ebp - 0x8e0]
mov dword [ebp - 0x900], 0
cmovae ecx, dword [ebp - 0x8e0]
push eax
call fcn.00423b40
xorps xmm0, xmm0
mov dword [ebp - method.bencoding::var.virtual_0], vtable.bencoding::var.0
movups xmmword [ebp - 0x864], xmm0
mov dword [ebp - 0x84c], 0
movq qword [ebp - 0x854], xmm0
mov dword [ebp - 0x9b8], 0x4de7d4
mov byte [ebp - 4], 0xb
lea ecx, [ebp - 0x958]
mov eax, 3
mov dword [ebp - method.std::basic_istream_char__struct_std::char_traits_char__.virtual_0], vtable.std::basic_istream_char__struct_std::char_traits_char__.0
add esp, 4
mov dword [ebp - 0x90c], eax
lea eax, [ebp - 0x9a8]
mov dword [ebp - 0x95c], 0x48
movlpd qword [ebp - 0x9b0], xmm0
push eax
call fcn.00418020
mov dword [ebp - 4], 0xd
mov eax, dword [ebp - 0x9b8]
push 8
mov eax, dword [eax + 4]
mov dword [ebp + eax - method.std::basic_istringstream_char__struct_std::char_traits_char___class_std::allocator_char__.virtual_0], vtable.std::basic_istringstream_char__struct_std::char_traits_char___class_std::allocator_char__.0
mov eax, dword [ebp - 0x9b8]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x60]
mov dword [ebp + ecx - 0x9bc], eax
mov dword [ebp - method.std::basic_streambuf_char__struct_std::char_traits_char__.virtual_0], vtable.std::basic_streambuf_char__struct_std::char_traits_char__.0
call fcn.004252e9
add esp, 4
mov esi, eax
push 1
mov byte [ebp - 4], 0xe
call fcn.00423eeb
mov dword [esi + 4], eax
add esp, 4
lea eax, [ebp - 0x9a4]
mov dword [ebp - 0x974], esi
mov dword [ebp - 0x99c], eax
lea eax, [ebp - 0x9a0]
mov dword [ebp - 0x998], eax
lea eax, [ebp - 0x994]
mov dword [ebp - 0x98c], eax
lea eax, [ebp - 0x990]
mov dword [ebp - 0x988], eax
lea eax, [ebp - 0x984]
mov dword [ebp - 0x97c], eax
lea eax, [ebp - 0x980]
mov dword [ebp - 0x978], eax
mov dword [ebp - 0x9a0], 0
mov dword [ebp - 0x990], 0
mov dword [ebp - 0x980], 0
mov dword [ebp - 0x9a4], 0
mov dword [ebp - 0x994], 0
mov dword [ebp - 0x984], 0
mov dword [ebp - method.std::basic_stringbuf_char__struct_std::char_traits_char___class_std::allocator_char__.virtual_0], vtable.std::basic_stringbuf_char__struct_std::char_traits_char___class_std::allocator_char__.0
mov dword [ebp - 0x970], 0
mov dword [ebp - 0x96c], 2
lea ecx, [ebp - 0x9a8]
mov byte [ebp - 4], 0xf
call fcn.00417c40
cmp dword [ebp - 0x8cc], 0x10
lea eax, [ebp - 0x8e0]
cmovae eax, dword [ebp - 0x8e0]
mov dword [ebp - 0x900], eax
mov eax, dword [ebp - 0x96c]
mov dword [ebp - 0x904], eax
mov ecx, dword [ebp - 0x8d0]
cmp ecx, 0x7fffffff
ja 0x416bbf
test ecx, ecx
je 0x415c9d
and eax, 6
cmp al, 6
je 0x415c97
cmp ecx, 0x1000
jb 0x415bdb
lea eax, [ecx + 0x23]
cmp eax, ecx
jbe 0x416bc4
push eax
call fcn.004252e9
add esp, 4
test eax, eax
je 0x416bc9
lea esi, [eax + 0x23]
and esi, 0xffffffe0
mov dword [esi - 4], eax
jmp 0x415be6
push ecx
call fcn.004252e9
add esp, 4
mov esi, eax
push dword [ebp - 0x8d0]
push dword [ebp - 0x900]
push esi
call fcn.0049cf70
mov edx, dword [ebp - 0x8d0]
add esp, 0xc
mov eax, dword [ebp - 0x904]
add edx, esi
mov ecx, eax
mov dword [ebp - 0x970], edx
and ecx, 4
mov dword [ebp - 0x900], ecx
jne 0x415c42
mov eax, dword [ebp - 0x99c]
sub edx, esi
mov dword [eax], esi
mov eax, dword [ebp - 0x98c]
mov dword [eax], esi
mov eax, dword [ebp - 0x97c]
mov dword [eax], edx
mov edx, dword [ebp - 0x970]
mov eax, dword [ebp - 0x904]
test al, 2
jne 0x415c92
test al, 0x18
mov ecx, esi
mov eax, dword [ebp - 0x998]
cmovne ecx, edx
sub edx, ecx
cmp dword [ebp - 0x900], 0
mov dword [eax], esi
mov eax, dword [ebp - 0x988]
mov dword [eax], ecx
mov eax, dword [ebp - 0x978]
mov dword [eax], edx
je 0x415c8c
mov eax, dword [ebp - 0x99c]
mov dword [eax], esi
mov eax, dword [ebp - 0x98c]
mov dword [eax], 0
mov eax, dword [ebp - 0x97c]
mov dword [eax], esi
mov eax, dword [ebp - 0x904]
or eax, 1
jmp 0x415ca7
mov eax, dword [ebp - 0x904]
mov dword [ebp - 0x970], 0
lea edx, [ebp - 0x868]
mov dword [ebp - 0x96c], eax
lea ecx, [ebp - 0x9b8]
call fcn.00418d60
push str.serial
lea ecx, [ebp - 0x868]
call fcn.00418a30
mov dword [ebp - 0x900], eax
cmp dword [eax + 4], 2
lea esi, [eax + 8]
je 0x415d02
mov ecx, eax
call fcn.004189a0
mov eax, dword [ebp - 0x900]
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 0xf
mov byte [esi], 0
mov dword [eax + 4], 2
lea eax, [ebp - 0x8c8]
cmp eax, esi
je 0x415d21
mov byte [ebp - 0x900], 0
mov ecx, eax
push dword [ebp - 0x900]
push esi
call fcn.00417ee0
push 0x4de674
lea ecx, [ebp - 0x868]
call fcn.00418a30
mov dword [ebp - 0x900], eax
cmp dword [eax + 4], 2
lea esi, [eax + 8]
je 0x415d65
mov ecx, eax
call fcn.004189a0
mov eax, dword [ebp - 0x900]
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 0xf
mov byte [esi], 0
mov dword [eax + 4], 2
lea eax, [ebp - 0x830]
cmp eax, esi
je 0x415d84
mov byte [ebp - 0x900], 0
mov ecx, eax
push dword [ebp - 0x900]
push esi
call fcn.00417ee0
push str.hash
lea ecx, [ebp - 0x868]
call fcn.00418a30
mov dword [ebp - 0x900], eax
cmp dword [eax + 4], 2
lea esi, [eax + 8]
je 0x415dc8
mov ecx, eax
call fcn.004189a0
mov eax, dword [ebp - 0x900]
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 0xf
mov byte [esi], 0
mov dword [eax + 4], 2
lea eax, [ebp - 0x848]
cmp eax, esi
je 0x415de7
mov byte [ebp - 0x900], 0
mov ecx, eax
push dword [ebp - 0x900]
push esi
call fcn.00417ee0
cmp dword [ebp - 0x820], 0xc
je 0x415f4b
lea ecx, [ebp - 0x830]
call fcn.00420950
test al, al
jne 0x415f4b
lea ecx, [ebp - 0x830]
call fcn.00422300
test al, al
jne 0x415f4b
mov ecx, dword [ebp - 0x81c]
mov dword [ebp - 0x900], ecx
cmp ecx, 0xc
jb 0x415e5e
cmp ecx, 0x10
mov dword [ebp - 0x820], 0xc
push 0xc
lea esi, [ebp - 0x830]
cmovae esi, dword [ebp - 0x830]
push str.FFFFFFFFFFFF
push esi
call fcn.0049d720
add esp, 0xc
mov byte [esi + 0xc], 0
jmp 0x415f4b
mov edx, ecx
mov eax, SysReAllocString
shr edx, 1
sub eax, edx
cmp ecx, eax
jbe 0x415e9e
mov dword [ebp - 0x8fc], SysStringLen
mov ecx, 0x80000023
push ecx
call fcn.004252e9
add esp, 4
test eax, eax
je 0x416bc9
mov ecx, dword [ebp - 0x8fc]
lea esi, [eax + 0x23]
and esi, 0xffffffe0
mov dword [esi - 4], eax
jmp 0x415ee1
lea eax, [edx + ecx]
mov ecx, 0xf
cmp eax, ecx
cmova ecx, eax
mov dword [ebp - 0x8fc], ecx
lea eax, [ecx + 1]
cmp eax, 0x1000
jb 0x415ec8
lea ecx, [eax + 0x23]
cmp ecx, eax
jbe 0x416bc4
jmp 0x415e7c
test eax, eax
je 0x415edf
push eax
call fcn.004252e9
mov ecx, dword [ebp - 0x8fc]
add esp, 4
mov esi, eax
jmp 0x415ee1
xor esi, esi
movq xmm0, qword [str.FFFFFFFFFFFF]
movq qword [esi], xmm0
mov eax, dword [0x4de6b4]
mov dword [esi + 8], eax
mov eax, dword [ebp - 0x900]
mov dword [ebp - 0x820], 0xc
mov dword [ebp - 0x81c], ecx
mov byte [esi + 0xc], 0
cmp eax, 0x10
jb 0x415f45
mov ecx, dword [ebp - 0x830]
lea edx, [eax + 1]
mov eax, ecx
cmp edx, 0x1000
jb 0x415f3b
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x416bc9
push edx
push ecx
call fcn.0042556a
add esp, 8
mov dword [ebp - 0x830], esi
cmp dword [ebp - 0x838], 3
je 0x416013
lea edx, [ebp - 0x898]
lea ecx, [ebp - 0x880]
call fcn.00415210
mov esi, eax
lea eax, [ebp - 0x848]
cmp eax, esi
je 0x415fd9
mov eax, dword [ebp - 0x834]
cmp eax, 0x10
jb 0x415fb1
mov ecx, dword [ebp - 0x848]
lea edx, [eax + 1]
mov eax, ecx
cmp edx, 0x1000
jb 0x415fa7
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x416bce
push edx
push ecx
call fcn.0042556a
add esp, 8
movups xmm0, xmmword [esi]
movups xmmword [ebp - 0x848], xmm0
movq xmm0, qword [esi + 0x10]
movq qword [ebp - 0x838], xmm0
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 0xf
mov byte [esi], 0
mov edx, dword [ebp - 0x86c]
cmp edx, 0x10
jb 0x416013
mov ecx, dword [ebp - 0x880]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x416009
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x416bce
push edx
push ecx
call fcn.0042556a
add esp, 8
lea ecx, [ebp - 0x9b8]
call fcn.00416c00
mov byte [ebp - 4], 9
lea ecx, [ebp - 0x868]
mov dword [ebp - method.bencoding::var.virtual_0], vtable.bencoding::var.0
call fcn.004189a0
cmp dword [ebp - 0x884], 0x10
lea ecx, [ebp - 0x898]
mov eax, dword [ebp - 0x8b8]
lea edx, [ebp - 0x8c8]
cmovae ecx, dword [ebp - 0x898]
cmp dword [ebp - 0x8b4], 0x10
cmovae edx, dword [ebp - 0x8c8]
cmp eax, dword [ebp - 0x888]
jne 0x416360
mov esi, eax
sub esi, 4
jb 0x416089
mov eax, dword [edx]
cmp eax, dword [ecx]
jne 0x41608e
add edx, 4
add ecx, 4
sub esi, 4
jae 0x416078
cmp esi, 0xfffffffc
je 0x4160c2
mov al, byte [edx]
cmp al, byte [ecx]
jne 0x4160bb
cmp esi, 0xfffffffd
je 0x4160c2
mov al, byte [edx + 1]
cmp al, byte [ecx + 1]
jne 0x4160bb
cmp esi, 0xfffffffe
je 0x4160c2
mov al, byte [edx + 2]
cmp al, byte [ecx + 2]
jne 0x4160bb
cmp esi, 0xffffffff
je 0x4160c2
mov al, byte [edx + 3]
cmp al, byte [ecx + 3]
je 0x4160c2
sbb eax, eax
or eax, 1
jmp 0x4160c4
xor eax, eax
test eax, eax
jne 0x416360
cmp dword [ebp - 0x8b8], eax
je 0x416360
mov edx, dword [ebp - 0x820]
mov eax, SysReAllocString
mov ecx, dword [ebp - 0x838]
sub eax, edx
cmp eax, ecx
jb 0x416bd3
cmp dword [ebp - 0x81c], 0x10
lea eax, [ebp - 0x830]
lea esi, [ebp - 0x848]
mov dword [ebp - 0x850], 0
cmovae eax, dword [ebp - 0x830]
cmp dword [ebp - 0x834], 0x10
mov dword [ebp - 0x900], eax
lea eax, [ebp - 0x860]
cmovae esi, dword [ebp - 0x848]
add ecx, edx
mov dword [ebp - 0x908], esi
mov esi, 0xf
mov dword [ebp - 0x84c], 0
mov dword [ebp - 0x904], ecx
mov dword [ebp - 0x8fc], eax
cmp ecx, esi
jbe 0x4161e7
mov esi, ecx
or esi, 0xf
cmp esi, 0x7fffffff
jbe 0x41619d
mov esi, SysReAllocString
mov ecx, 0x80000023
push ecx
call fcn.004252e9
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x416bdd
mov edx, dword [ebp - 0x820]
lea eax, [ecx + 0x23]
and eax, 0xffffffe0
mov dword [eax - 4], ecx
mov ecx, dword [ebp - 0x904]
jmp 0x4161db
mov eax, 0x16
cmp esi, eax
cmovb esi, eax
lea eax, [esi + 1]
cmp eax, 0x1000
jb 0x4161be
lea ecx, [eax + 0x23]
cmp ecx, eax
jbe 0x416bd8
jmp 0x416173
test eax, eax
je 0x4161d9
push eax
call fcn.004252e9
mov edx, dword [ebp - 0x820]
add esp, 4
mov ecx, dword [ebp - 0x904]
jmp 0x4161db
xor eax, eax
mov dword [ebp - 0x8fc], eax
mov dword [ebp - 0x860], eax
push edx
push dword [ebp - 0x900]
mov dword [ebp - 0x850], ecx
push eax
mov dword [ebp - 0x84c], esi
call fcn.0049cf70
mov eax, dword [ebp - 0x820]
add esp, 0xc
mov esi, dword [ebp - 0x8fc]
add eax, esi
push dword [ebp - 0x838]
push dword [ebp - 0x908]
push eax
call fcn.0049cf70
mov eax, dword [ebp - 0x904]
add esp, 0xc
or dword [ebp - 0x90c], 8
mov byte [esi + eax], 0
push dword [ebp - 0x910]
lea edx, [ebp - 0x860]
mov byte [ebp - 4], 0x10
lea ecx, [ebp - 0x880]
call fcn.00418480
mov esi, eax
add esp, 4
cmp edi, esi
je 0x4162ca
mov edx, dword [edi + 0x14]
cmp edx, 0x10
jb 0x416298
mov ecx, dword [edi]
inc edx
cmp edx, 0x1000
jb 0x41628e
mov eax, dword [ecx - 4]
add edx, 0x23
sub ecx, eax
mov dword [ebp - 0x908], eax
lea eax, [ecx - 4]
cmp eax, 0x1f
ja 0x416bdd
mov ecx, dword [ebp - 0x908]
push edx
push ecx
call fcn.0042556a
add esp, 8
mov dword [edi + 0x10], 0
mov dword [edi + 0x14], 0xf
mov byte [edi], 0
movups xmm0, xmmword [esi]
movups xmmword [edi], xmm0
movq xmm0, qword [esi + 0x10]
movq qword [edi + 0x10], xmm0
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 0xf
mov byte [esi], 0
mov edx, dword [ebp - 0x86c]
cmp edx, 0x10
jb 0x416304
mov ecx, dword [ebp - 0x880]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4162fa
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x416bdd
push edx
push ecx
call fcn.0042556a
add esp, 8
mov byte [ebp - 4], 9
mov edx, dword [ebp - 0x84c]
mov dword [ebp - 0x870], 0
mov dword [ebp - 0x86c], 0xf
mov byte [ebp - 0x880], 0
cmp edx, 0x10
jb 0x416990
mov ecx, dword [ebp - 0x860]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x416986
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x416bdd
jmp 0x416986
lea ecx, [ebp - 0x830]
call fcn.004211b0
mov byte [ebp - 0x908], 0
lea ecx, [ebp - 0x8c8]
push dword [ebp - 0x908]
test al, al
lea eax, [ebp - 0x898]
push eax
je 0x4165c1
call fcn.00417ee0
mov edx, dword [ebp - 0x820]
mov eax, SysReAllocString
mov ecx, dword [ebp - 0x838]
sub eax, edx
cmp eax, ecx
jb 0x416be2
cmp dword [ebp - 0x81c], 0x10
lea eax, [ebp - 0x830]
lea esi, [ebp - 0x848]
mov dword [ebp - 0x850], 0
cmovae eax, dword [ebp - 0x830]
cmp dword [ebp - 0x834], 0x10
mov dword [ebp - 0x908], eax
lea eax, [ebp - 0x860]
cmovae esi, dword [ebp - 0x848]
add ecx, edx
mov dword [ebp - 0x900], esi
mov esi, 0xf
mov dword [ebp - 0x84c], 0
mov dword [ebp - 0x904], ecx
mov dword [ebp - 0x8fc], eax
cmp ecx, esi
jbe 0x4164a1
mov esi, ecx
or esi, 0xf
cmp esi, 0x7fffffff
jbe 0x416457
mov esi, SysReAllocString
mov ecx, 0x80000023
push ecx
call fcn.004252e9
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x416bdd
mov edx, dword [ebp - 0x820]
lea eax, [ecx + 0x23]
and eax, 0xffffffe0
mov dword [eax - 4], ecx
mov ecx, dword [ebp - 0x904]
jmp 0x416495
mov eax, 0x16
cmp esi, eax
cmovb esi, eax
lea eax, [esi + 1]
cmp eax, 0x1000
jb 0x416478
lea ecx, [eax + 0x23]
cmp ecx, eax
jbe 0x416be7
jmp 0x41642d
test eax, eax
je 0x416493
push eax
call fcn.004252e9
mov edx, dword [ebp - 0x820]
add esp, 4
mov ecx, dword [ebp - 0x904]
jmp 0x416495
xor eax, eax
mov dword [ebp - 0x8fc], eax
mov dword [ebp - 0x860], eax
push edx
push dword [ebp - 0x908]
mov dword [ebp - 0x850], ecx
push eax
mov dword [ebp - 0x84c], esi
call fcn.0049cf70
mov eax, dword [ebp - 0x820]
add esp, 0xc
mov esi, dword [ebp - 0x8fc]
add eax, esi
push dword [ebp - 0x838]
push dword [ebp - 0x900]
push eax
call fcn.0049cf70
mov eax, dword [ebp - 0x904]
add esp, 0xc
or dword [ebp - 0x90c], 0x10
mov byte [esi + eax], 0
push dword [ebp - 0x910]
lea edx, [ebp - 0x860]
mov byte [ebp - 4], 0x11
lea ecx, [ebp - 0x880]
call fcn.00418480
mov esi, eax
add esp, 4
cmp edi, esi
je 0x416584
mov edx, dword [edi + 0x14]
cmp edx, 0x10
jb 0x416552
mov ecx, dword [edi]
inc edx
cmp edx, 0x1000
jb 0x416548
mov eax, dword [ecx - 4]
add edx, 0x23
sub ecx, eax
mov dword [ebp - 0x908], eax
lea eax, [ecx - 4]
cmp eax, 0x1f
ja 0x416bdd
mov ecx, dword [ebp - 0x908]
push edx
push ecx
call fcn.0042556a
add esp, 8
mov dword [edi + 0x10], 0
mov dword [edi + 0x14], 0xf
mov byte [edi], 0
movups xmm0, xmmword [esi]
movups xmmword [edi], xmm0
movq xmm0, qword [esi + 0x10]
movq qword [edi + 0x10], xmm0
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 0xf
mov byte [esi], 0
mov edx, dword [ebp - 0x86c]
cmp edx, 0x10
jb 0x416304
mov ecx, dword [ebp - 0x880]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4162fa
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x416bdd
jmp 0x4162fa
call fcn.00417ee0
lea ecx, [ebp - 0x830]
call fcn.00420950
test al, al
jne 0x416724
lea ecx, [ebp - 0x830]
call fcn.00422300
test al, al
jne 0x416724
mov ecx, dword [ebp - 0x81c]
mov dword [ebp - 0x904], ecx
cmp ecx, 0xc
jb 0x416630
cmp ecx, 0x10
mov dword [ebp - 0x820], 0xc
push 0xc
lea esi, [ebp - 0x830]
cmovae esi, dword [ebp - 0x830]
push str.FFFFFFFFFFFF
push esi
call fcn.0049d720
add esp, 0xc
mov byte [esi + 0xc], 0
jmp 0x416724
mov edx, ecx
mov eax, SysReAllocString
shr edx, 1
sub eax, edx
cmp ecx, eax
jbe 0x416676
mov dword [ebp - 0x8fc], SysStringLen
mov ecx, 0x80000023
push ecx
call fcn.004252e9
add esp, 4
test eax, eax
je 0x416bdd
mov ecx, dword [ebp - 0x904]
lea esi, [eax + 0x23]
mov edx, dword [ebp - 0x8fc]
and esi, 0xffffffe0
mov dword [esi - 4], eax
jmp 0x4166c0
lea eax, [ecx + edx]
mov edx, 0xf
cmp eax, 0xf
cmova edx, eax
mov dword [ebp - 0x8fc], edx
lea eax, [edx + 1]
cmp eax, 0x1000
jb 0x4166a1
lea ecx, [eax + 0x23]
cmp ecx, eax
jbe 0x416bec
jmp 0x41664e
test eax, eax
je 0x4166be
push eax
call fcn.004252e9
mov edx, dword [ebp - 0x8fc]
add esp, 4
mov ecx, dword [ebp - 0x904]
mov esi, eax
jmp 0x4166c0
xor esi, esi
movq xmm0, qword [str.FFFFFFFFFFFF]
movq qword [esi], xmm0
mov eax, dword [0x4de6b4]
mov dword [esi + 8], eax
mov dword [ebp - 0x820], 0xc
mov dword [ebp - 0x81c], edx
mov byte [esi + 0xc], 0
cmp ecx, 0x10
jb 0x41671e
lea edx, [ecx + 1]
mov ecx, dword [ebp - 0x830]
mov eax, ecx
cmp edx, 0x1000
jb 0x416714
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x416bdd
push edx
push ecx
call fcn.0042556a
add esp, 8
mov dword [ebp - 0x830], esi
lea edx, [ebp - 0x898]
lea ecx, [ebp - 0x880]
call fcn.00415210
mov esi, eax
lea eax, [ebp - 0x848]
cmp eax, esi
je 0x4167a5
mov eax, dword [ebp - 0x834]
cmp eax, 0x10
jb 0x41677d
mov ecx, dword [ebp - 0x848]
lea edx, [eax + 1]
mov eax, ecx
cmp edx, 0x1000
jb 0x416773
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x416bdd
push edx
push ecx
call fcn.0042556a
add esp, 8
movups xmm0, xmmword [esi]
movups xmmword [ebp - 0x848], xmm0
movq xmm0, qword [esi + 0x10]
movq qword [ebp - 0x838], xmm0
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 0xf
mov byte [esi], 0
mov edx, dword [ebp - 0x86c]
cmp edx, 0x10
jb 0x4167df
mov ecx, dword [ebp - 0x880]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4167d5
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x416bdd
push edx
push ecx
call fcn.0042556a
add esp, 8
mov ecx, dword [ebp - 0x820]
mov eax, SysReAllocString
mov edx, dword [ebp - 0x838]
sub eax, ecx
cmp eax, edx
jb 0x416bf1
cmp dword [ebp - 0x81c], 0x10
lea eax, [ebp - 0x830]
lea esi, [ebp - 0x848]
mov dword [ebp - 0x850], 0
cmovae eax, dword [ebp - 0x830]
cmp dword [ebp - 0x834], 0x10
mov dword [ebp - 0x908], eax
lea eax, [ebp - 0x860]
cmovae esi, dword [ebp - 0x848]
add edx, ecx
mov dword [ebp - 0x900], esi
mov esi, 0xf
mov dword [ebp - 0x84c], 0
mov dword [ebp - 0x904], edx
mov dword [ebp - 0x8fc], eax
cmp edx, esi
jbe 0x4168ee
mov esi, edx
or esi, 0xf
cmp esi, 0x7fffffff
jbe 0x4168a4
mov esi, SysReAllocString
mov ecx, 0x80000023
push ecx
call fcn.004252e9
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x416bdd
mov edx, dword [ebp - 0x904]
lea eax, [ecx + 0x23]
and eax, 0xffffffe0
mov dword [eax - 4], ecx
mov ecx, dword [ebp - 0x820]
jmp 0x4168e2
mov eax, 0x16
cmp esi, eax
cmovb esi, eax
lea eax, [esi + 1]
cmp eax, 0x1000
jb 0x4168c5
lea ecx, [eax + 0x23]
cmp ecx, eax
jbe 0x416bf6
jmp 0x41687a
test eax, eax
je 0x4168e0
push eax
call fcn.004252e9
mov ecx, dword [ebp - 0x820]
add esp, 4
mov edx, dword [ebp - 0x904]
jmp 0x4168e2
xor eax, eax
mov dword [ebp - 0x8fc], eax
mov dword [ebp - 0x860], eax
push ecx
push dword [ebp - 0x908]
mov dword [ebp - 0x850], edx
push eax
mov dword [ebp - 0x84c], esi
call fcn.0049cf70
mov eax, dword [ebp - 0x820]
add esp, 0xc
mov esi, dword [ebp - 0x8fc]
add eax, esi
push dword [ebp - 0x838]
push dword [ebp - 0x900]
push eax
call fcn.0049cf70
mov eax, dword [ebp - 0x904]
add esp, 0xc
or dword [ebp - 0x90c], 0x20
mov byte [esi + eax], 0
push dword [ebp - 0x910]
lea edx, [ebp - 0x860]
mov byte [ebp - 4], 0x12
lea ecx, [ebp - 0x880]
call fcn.00418480
mov esi, eax
add esp, 4
cmp edi, esi
je 0x416584
mov edx, dword [edi + 0x14]
cmp edx, 0x10
jb 0x416552
mov ecx, dword [edi]
inc edx
cmp edx, 0x1000
jb 0x416548
jmp 0x416528
push edx
push ecx
call fcn.0042556a
add esp, 8
lea eax, [ebp - 0x848]
push eax
lea edx, [ebp - 0x830]
lea ecx, [ebp - 0x8c8]
call fcn.00414b00
mov eax, dword [ebp - 0x8cc]
add esp, 4
cmp eax, 0x10
jb 0x4169e7
mov edx, dword [ebp - 0x8e0]
lea ecx, [eax + 1]
mov eax, edx
cmp ecx, 0x1000
jb 0x4169dd
mov edx, dword [edx - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x416bdd
push ecx
push edx
call fcn.0042556a
add esp, 8
mov edx, dword [ebp - 0x89c]
cmp edx, 0x10
jb 0x416a21
mov ecx, dword [ebp - 0x8b0]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x416a17
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x416bdd
push edx
push ecx
call fcn.0042556a
add esp, 8
mov edx, dword [ebp - 0x8e4]
mov dword [ebp - 0x8a0], 0
mov dword [ebp - 0x89c], 0xf
mov byte [ebp - 0x8b0], 0
cmp edx, 0x10
jb 0x416a76
mov ecx, dword [ebp - 0x8f8]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x416a6c
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x416bdd
push edx
push ecx
call fcn.0042556a
add esp, 8
mov edx, dword [ebp - 0x884]
mov dword [ebp - 0x8e8], 0
mov dword [ebp - 0x8e4], 0xf
mov byte [ebp - 0x8f8], 0
cmp edx, 0x10
jb 0x416acb
mov ecx, dword [ebp - 0x898]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x416ac1
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x416bdd
push edx
push ecx
call fcn.0042556a
add esp, 8
mov edx, dword [ebp - 0x834]
mov dword [ebp - 0x888], 0
mov dword [ebp - 0x884], 0xf
mov byte [ebp - 0x898], 0
cmp edx, 0x10
jb 0x416b20
mov ecx, dword [ebp - 0x848]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x416b16
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x416bdd
push edx
push ecx
call fcn.0042556a
add esp, 8
mov edx, dword [ebp - 0x81c]
cmp edx, 0x10
jb 0x416b5a
mov ecx, dword [ebp - 0x830]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x416b50
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x416bdd
push edx
push ecx
call fcn.0042556a
add esp, 8
mov edx, dword [ebp - 0x8b4]
cmp edx, 0x10
jb 0x416b90
mov ecx, dword [ebp - 0x8c8]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x416b86
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x416bdd
push edx
push ecx
call fcn.0042556a
add esp, 8
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.004250ca
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
call fcn.004a4753
call fcn.00401470
call fcn.004013f9
call fcn.00423c5e
call fcn.004013f9
call fcn.004a4753
call fcn.004a4753
call fcn.00401470
call fcn.004013f9
call fcn.004a4753
call fcn.00401470
call fcn.004013f9
call fcn.004013f9
call fcn.00401470
call fcn.004013f9
int3