Function at 0x45583a
Capabilities:
Get thread local storage value
Set thread local storage value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x878
cmp byte [ecx], 0
push ebx
push esi
push edi
mov dword [ebp - 0x20], ecx
je 0x455855
xor al, al
jmp 0x456cf5
call fcn.0044647d
mov ecx, eax
call fcn.0043b2d0
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x455864
mov ebx, dword [sym.imp.KERNEL32.DLL_TlsSetValue]
sub eax, edx
mov dword [ebp - 0xc], eax
cmp byte [0x4c5ce8], cl
je 0x4558b3
mov eax, dword [0x4c5cec]
cmp eax, 0xffffffff
je 0x4558b3
push eax
call dword [sym.imp.KERNEL32.DLL_TlsGetValue]
mov esi, eax
test esi, esi
jne 0x4558b5
push 0x20
call sub.MSVCRT.dll_malloc
pop ecx
push 8
mov esi, eax
pop ecx
xor eax, eax
mov edi, esi
push esi
rep stosd dword es:[edi], eax
push dword [0x4c5cec]
call ebx
jmp 0x4558b5
xor esi, esi
mov eax, dword [ebp - 0xc]
inc eax
mov dword [esi + 0x14], eax
cmp byte [0x4c5ce8], 0
mov esi, dword [0x4c5cec]
je 0x455903
cmp esi, 0xffffffff
je 0x455903
push esi
call dword [sym.imp.KERNEL32.DLL_TlsGetValue]
mov esi, eax
test esi, esi
jne 0x4558f9
push 0x20
call sub.MSVCRT.dll_malloc
pop ecx
push 8
mov esi, eax
pop ecx
xor eax, eax
mov edi, esi
push esi
rep stosd dword es:[edi], eax
push dword [0x4c5cec]
call ebx
mov eax, esi
mov esi, dword [0x4c5cec]
jmp 0x455905
xor eax, eax
mov eax, dword [eax + 0x14]
call section..text
cmp byte [0x4c5ce8], 0
mov dword [ebp - 0xc], esp
je 0x455949
cmp esi, 0xffffffff
je 0x455949
push esi
call dword [sym.imp.KERNEL32.DLL_TlsGetValue]
mov esi, eax
test esi, esi
jne 0x45594b
push 0x20
call sub.MSVCRT.dll_malloc
pop ecx
push 8
mov esi, eax
pop ecx
xor eax, eax
mov edi, esi
push esi
rep stosd dword es:[edi], eax
push dword [0x4c5cec]
call ebx
jmp 0x45594b
xor esi, esi
mov eax, dword [ebp - 0xc]
mov dword [esi + 0x18], eax
cmp byte [0x4c5ce8], 0
mov eax, dword [0x4c5cec]
je 0x455997
cmp eax, 0xffffffff
je 0x455997
push eax
call dword [sym.imp.KERNEL32.DLL_TlsGetValue]
mov esi, eax
test esi, esi
jne 0x45598d
push 0x20
call sub.MSVCRT.dll_malloc
pop ecx
push 8
mov esi, eax
pop ecx
xor eax, eax
mov edi, esi
push esi
rep stosd dword es:[edi], eax
push dword [0x4c5cec]
call ebx
mov eax, dword [0x4c5cec]
mov dword [ebp - 4], esi
jmp 0x45599b
and dword [ebp - 4], 0
cmp byte [0x4c5ce8], 0
je 0x4559d6
cmp eax, 0xffffffff
je 0x4559d6
push eax
call dword [sym.imp.KERNEL32.DLL_TlsGetValue]
mov esi, eax
test esi, esi
jne 0x4559d2
push 0x20
call sub.MSVCRT.dll_malloc
pop ecx
push 8
mov esi, eax
pop ecx
xor eax, eax
mov edi, esi
push esi
rep stosd dword es:[edi], eax
push dword [0x4c5cec]
call ebx
mov edi, esi
jmp 0x4559d8
xor edi, edi
mov eax, dword [ebp - 4]
mov esi, dword [eax + 0x14]
call fcn.0044647d
mov ecx, eax
call fcn.0043b2d0
mov ecx, dword [edi + 0x18]
push esi
push eax
push ecx
call sub.MSVCRT.dll_memcpy
add esp, 0xc
mov dword [ebp - 0xc], eax
call fcn.00446475
mov ecx, eax
call fcn.0043b2d0
lea ecx, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x455a0a
sub eax, ecx
mov dword [ebp - 8], eax
cmp byte [0x4c5ce8], dl
je 0x455a53
mov eax, dword [0x4c5cec]
cmp eax, 0xffffffff
je 0x455a53
push eax
call dword [sym.imp.KERNEL32.DLL_TlsGetValue]
mov esi, eax
test esi, esi
jne 0x455a55
push 0x20
call sub.MSVCRT.dll_malloc
pop ecx
push 8
mov esi, eax
pop ecx
xor eax, eax
mov edi, esi
push esi
rep stosd dword es:[edi], eax
push dword [0x4c5cec]
call ebx
jmp 0x455a55
xor esi, esi
mov eax, dword [ebp - 8]
inc eax
mov dword [esi + 0x14], eax
cmp byte [0x4c5ce8], 0
mov esi, dword [0x4c5cec]
je 0x455aa3
cmp esi, 0xffffffff
je 0x455aa3
push esi
call dword [sym.imp.KERNEL32.DLL_TlsGetValue]
mov esi, eax
test esi, esi
jne 0x455a99
push 0x20
call sub.MSVCRT.dll_malloc
pop ecx
push 8
mov esi, eax
pop ecx
xor eax, eax
mov edi, esi
push esi
rep stosd dword es:[edi], eax
push dword [0x4c5cec]
call ebx
mov eax, esi
mov esi, dword [0x4c5cec]
jmp 0x455aa5
xor eax, eax
mov eax, dword [eax + 0x14]
call section..text
cmp byte [0x4c5ce8], 0
mov dword [ebp - 8], esp
je 0x455ae9
cmp esi, 0xffffffff
je 0x455ae9
push esi
call dword [sym.imp.KERNEL32.DLL_TlsGetValue]
mov esi, eax
test esi, esi
jne 0x455aeb
push 0x20
call sub.MSVCRT.dll_malloc
pop ecx
push 8
mov esi, eax
pop ecx
xor eax, eax
mov edi, esi
push esi
rep stosd dword es:[edi], eax
push dword [0x4c5cec]
call ebx
jmp 0x455aeb
xor esi, esi
mov eax, dword [ebp - 8]
mov dword [esi + 0x18], eax
cmp byte [0x4c5ce8], 0
mov eax, dword [0x4c5cec]
je 0x455b34
cmp eax, 0xffffffff
je 0x455b34
push eax
call dword [sym.imp.KERNEL32.DLL_TlsGetValue]
mov esi, eax
test esi, esi
jne 0x455b2d
push 0x20
call sub.MSVCRT.dll_malloc
pop ecx
push 8
mov esi, eax
pop ecx
xor eax, eax
mov edi, esi
push esi
rep stosd dword es:[edi], eax
push dword [0x4c5cec]
call ebx
mov eax, dword [0x4c5cec]
jmp 0x455b36
xor esi, esi
cmp byte [0x4c5ce8], 0
je 0x455b75
cmp eax, 0xffffffff
je 0x455b75
push eax
call dword [sym.imp.KERNEL32.DLL_TlsGetValue]
mov ebx, eax
test ebx, ebx
jne 0x455b71
push 0x20
call sub.MSVCRT.dll_malloc
pop ecx
push 8
mov ebx, eax
pop ecx
xor eax, eax
mov edi, ebx
push ebx
rep stosd dword es:[edi], eax
push dword [0x4c5cec]
call dword [sym.imp.KERNEL32.DLL_TlsSetValue]
mov edi, ebx
jmp 0x455b77
xor edi, edi
mov esi, dword [esi + 0x14]
call fcn.00446475
mov ecx, eax
call fcn.0043b2d0
mov ecx, dword [edi + 0x18]
push esi
push eax
push ecx
call sub.MSVCRT.dll_memcpy
add esp, 0xc
mov dword [ebp - 8], eax
call fcn.004549fb
push 5
xor edi, edi
pop edx
lea ecx, [ebp - 0x28]
mov dword [ebp - 0x1c], eax
inc edi
mov byte [ebp - 0x18], 1
call fcn.00454965
and dword [ebp - 0x14], 0
call fcn.00429592
call fcn.004265af
mov bl, al
call fcn.004295a3
push 3
pop esi
test bl, bl
je 0x455be5
mov dword [ebp - 0x14], edi
call fcn.004615e0
test al, al
je 0x455be2
cmp byte [0x4c43b5], 0
je 0x455be5
mov dword [ebp - 0x14], esi
xor ebx, ebx
mov dword [ebp - 4], ebx
cmp dword [0x4c2b98], ebx
jbe 0x455c19
xor esi, esi
mov eax, dword [0x4c2b90]
lea ecx, [eax + esi]
push str.notstore
call fcn.00412cbe
cmp eax, edi
jne 0x455c0d
inc dword [ebp - 4]
inc ebx
add esi, 0x1c
cmp ebx, dword [0x4c2b98]
jb 0x455bf4
push 0xa
pop ecx
mov esi, str.http:__update.utorrent.com_checkupdate.php
lea edi, [ebp - 0x878]
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
push 0x7d5
lea eax, [ebp - 0x84d]
push 0
push eax
movsb byte es:[edi], byte [esi]
call sub.MSVCRT.dll_memset
add esp, 0xc
lea ecx, [ebp - 0x50]
call fcn.00448624
push 0x44363be
push str._v_d
lea eax, [ebp - 0x84e]
push 0x7d6
push eax
call fcn.0043c4c6
mov ebx, dword [ebp + 8]
mov esi, eax
mov eax, dword [ebx]
add esp, 0x10
add esi, 0x2a
mov edi, 0x800
test eax, eax
je 0x455c98
push eax
mov eax, edi
sub eax, esi
push str.qv_d
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043c4c6
add esp, 0x10
add esi, eax
lea eax, [ebp - 0x28]
push eax
push dword [ebx + 4]
mov eax, edi
push dword [0x4cc03c]
sub eax, esi
push str.lv_d__d__U
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043c4c6
add esp, 0x18
add esi, eax
cmp dword [ebp + 0xc], 0
je 0x455ce6
push dword [ebp + 0xc]
mov eax, edi
sub eax, esi
push str.i_d
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043c4c6
add esp, 0x10
add esi, eax
cmp dword [ebp - 8], 0
je 0x455d0b
push dword [ebp - 8]
mov eax, edi
sub eax, esi
push str.l_U
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043c4c6
add esp, 0x10
add esi, eax
push str.main
mov eax, edi
sub eax, esi
push str.tk_U
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043c4c6
mov ebx, dword [ebx + 0x20]
add esp, 0x10
add esi, eax
test ebx, ebx
je 0x455d50
push ebx
mov eax, edi
sub eax, esi
push str.k_U
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043c4c6
add esp, 0x10
add esi, eax
cmp byte [0x4c82bf], 0
je 0x456cb6
cmp dword [ebp - 0xc], 0
je 0x455d82
push dword [ebp - 0xc]
mov eax, edi
sub eax, esi
push str.c_U
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043c4c6
add esp, 0x10
add esi, eax
mov ebx, dword [sym.imp.KERNEL32.DLL_GetVersion]
call ebx
test eax, eax
je 0x455dad
call ebx
push eax
mov eax, edi
sub eax, esi
push str.w_X
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043c4c6
add esp, 0x10
add esi, eax
call fcn.0046160d
test al, al
je 0x455ddb
call fcn.0046160d
movzx eax, al
push eax
mov eax, edi
sub eax, esi
push str.e_d
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043c4c6
add esp, 0x10
add esi, eax
cmp dword [ebp - 0x14], 0
je 0x455e00
push dword [ebp - 0x14]
mov eax, edi
sub eax, esi
push str.t_d
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043c4c6
add esp, 0x10
add esi, eax
push dword [ebp - 0x18]
mov eax, edi
push dword [ebp - 0x1c]
sub eax, esi
push str.h_s
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043c4c6
add esp, 0x14
add esi, eax
call fcn.00413867
mov ebx, eax
mov ecx, dword [ebx + 0x14]
mov eax, 0xfa0
cmp ecx, eax
ja 0x455e3a
cmp dword [ebx + 0x18], eax
jbe 0x455e9c
test ecx, ecx
je 0x455e5b
push ecx
mov eax, edi
sub eax, esi
push str.p_up_u
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043c4c6
add esp, 0x10
add esi, eax
mov eax, dword [ebx + 0x18]
test eax, eax
je 0x455e7f
push eax
mov eax, edi
sub eax, esi
push str.p_down_u
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043c4c6
add esp, 0x10
add esi, eax
push ebx
mov eax, edi
sub eax, esi
push str.p_ip_a
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043c4c6
add esp, 0x10
add esi, eax
mov eax, dword [0x4c8934]
mov ecx, dword [0x4c8938]
mov edx, eax
or edx, ecx
je 0x455ecb
push ecx
push eax
mov eax, edi
sub eax, esi
push str.t_up_Lu
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043c4c6
add esp, 0x14
add esi, eax
mov eax, dword [0x4c893c]
mov ecx, dword [0x4c8940]
mov edx, eax
or edx, ecx
je 0x455efa
push ecx
push eax
mov eax, edi
sub eax, esi
push str.t_down_Lu
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043c4c6
add esp, 0x14
add esi, eax
mov eax, dword [0x4c8270]
xor ebx, ebx
cmp eax, ebx
je 0x455f22
push eax
mov eax, edi
sub eax, esi
push str.m_up_d
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043c4c6
add esp, 0x10
add esi, eax
mov eax, dword [0x4c826c]
cmp eax, ebx
je 0x455f48
push eax
mov eax, edi
sub eax, esi
push str.m_down_d
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043c4c6
add esp, 0x10
add esi, eax
mov eax, dword [0x4c2af0]
cmp eax, ebx
je 0x455f6e
push eax
mov eax, edi
sub eax, esi
push str.m_utpq_d
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043c4c6
add esp, 0x10
add esi, eax
mov eax, dword [0x4c2b18]
mov ecx, dword [0x4c2b1c]
mov edx, eax
or edx, ecx
je 0x455f9d
push ecx
push eax
mov eax, edi
sub eax, esi
push str.mtl_Lu
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043c4c6
add esp, 0x14
add esi, eax
mov eax, dword [0x4b518c]
cmp eax, ebx
je 0x455fc3
push eax
mov eax, edi
sub eax, esi
push str.mts_u
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043c4c6
add esp, 0x10
add esi, eax
mov eax, dword [0x4c2b10]
mov ecx, dword [0x4c2b14]
mov edx, eax
or edx, ecx
je 0x455ff2
push ecx
push eax
mov eax, edi
sub eax, esi
push str.mt_Lu
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043c4c6
add esp, 0x14
add esi, eax
mov al, byte [0x4c4418]
test al, al
je 0x45601b
movzx eax, al
push eax
mov eax, edi
sub eax, esi
push str.wui_d
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043c4c6
add esp, 0x10
add esi, eax
mov eax, dword [0x4c50fc]
cmp eax, ebx
je 0x456041
push eax
mov eax, edi
sub eax, esi
push str.rsf_d
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043c4c6
add esp, 0x10
add esi, eax
mov eax, dword [0x4c5108]
cmp eax, ebx
je 0x456067
push eax
mov eax, edi
sub eax, esi
push str.rsa_d
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043c4c6
add esp, 0x10
add esi, eax
mov ax, word [0x4c8b58]
cmp ax, bx
je 0x456092
movzx eax, ax
push eax
mov eax, edi
sub eax, esi
push str.tor_all_d
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043c4c6
add esp, 0x10
add esi, eax
mov ax, word [0x4c8b5a]
cmp ax, bx
je 0x4560bd
movzx eax, ax
push eax
mov eax, edi
sub eax, esi
push str.tor_down_d
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043c4c6
add esp, 0x10
add esi, eax
mov ax, word [0x4c8b5c]
cmp ax, bx
je 0x4560e8
movzx eax, ax
push eax
mov eax, edi
sub eax, esi
push str.tor_cmp_d
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043c4c6
add esp, 0x10
add esi, eax
mov ax, word [0x4c8b5e]
cmp ax, bx
je 0x456113
movzx eax, ax
push eax
mov eax, edi
sub eax, esi
push str.tor_act_d
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043c4c6
add esp, 0x10
add esi, eax
mov ax, word [0x4c8b60]
cmp ax, bx
je 0x45613e
movzx eax, ax
push eax
mov eax, edi
sub eax, esi
push str.tor_in_d
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043c4c6
add esp, 0x10
add esi, eax
mov ax, word [0x4c8b64]
cmp ax, bx
je 0x456169
movzx eax, ax
push eax
mov eax, edi
sub eax, esi
push str.tor_nl_d
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043c4c6
add esp, 0x10
add esi, eax
mov eax, dword [0x4c8970]
cmp eax, ebx
je 0x45618f
push eax
mov eax, edi
sub eax, esi
push str.tta_d
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043c4c6
add esp, 0x10
add esi, eax
mov eax, dword [0x4c8974]
cmp eax, ebx
je 0x4561b5
push eax
mov eax, edi
sub eax, esi
push str.ttd_d
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043c4c6
add esp, 0x10
add esi, eax
mov eax, dword [0x4c8978]
cmp eax, ebx
je 0x4561db
push eax
mov eax, edi
sub eax, esi
push str.ttc_d
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043c4c6
add esp, 0x10
add esi, eax
mov eax, dword [0x4c897c]
mov ecx, dword [0x4c8980]
mov edx, eax
or edx, ecx
je 0x45620a
push ecx
push eax
mov eax, edi
sub eax, esi
push str.fg_Lu
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043c4c6
add esp, 0x14
add esi, eax
mov eax, dword [0x4c8984]
cmp eax, ebx
je 0x456230
push eax
mov eax, edi
sub eax, esi
push str.gnc_d
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043c4c6
add esp, 0x10
add esi, eax
mov eax, dword [0x4c8988]
cmp eax, ebx
je 0x456256
push eax
mov eax, edi
sub eax, esi
push str.trc_d
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043c4c6
add esp, 0x10
add esi, eax
mov eax, dword [0x4c898c]
cmp eax, ebx
je 0x45627c
push eax
mov eax, edi
sub eax, esi
push str.prc_d
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043c4c6
add esp, 0x10
add esi, eax
mov eax, dword [0x4c8990]
cmp eax, ebx
je 0x4562a2
push eax
mov eax, edi
sub eax, esi
push str.pcc_d
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043c4c6
add esp, 0x10
add esi, eax
mov eax, dword [0x4c8994]
cmp eax, ebx
je 0x4562c8
push eax
mov eax, edi
sub eax, esi
push str.flc_d
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043c4c6
add esp, 0x10
add esi, eax
mov eax, dword [0x4c8998]
cmp eax, ebx
je 0x4562ee
push eax
mov eax, edi
sub eax, esi
push str.spc_d
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043c4c6
add esp, 0x10
add esi, eax
mov eax, dword [0x4c899c]
cmp eax, ebx
je 0x456314
push eax
mov eax, edi
sub eax, esi
push str.lgc_d
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043c4c6
add esp, 0x10
add esi, eax
mov eax, dword [0x4c89a0]
cmp eax, ebx
je 0x45633a
push eax
mov eax, edi
sub eax, esi
push str.ac_d
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043c4c6
add esp, 0x10
add esi, eax
movzx eax, byte [0x4c82f3]
add eax, eax
mov ecx, eax
push 3
pop eax
sub eax, ecx
movzx ecx, byte [0x4c82f0]
sub eax, ecx
je 0x456372
push eax
mov eax, edi
sub eax, esi
push str.ps_d
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043c4c6
add esp, 0x10
add esi, eax
mov eax, dword [0x4c89a4]
cmp eax, ebx
je 0x456398
push eax
mov eax, edi
sub eax, esi
push str.sc_d
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043c4c6
add esp, 0x10
add esi, eax
mov eax, dword [0x4c8a48]
cmp eax, ebx
je 0x4563be
push eax
mov eax, edi
sub eax, esi
push str.hc_d
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043c4c6
add esp, 0x10
add esi, eax
mov al, byte [0x4c82e0]
test al, al
je 0x4563e7
movzx eax, al
push eax
mov eax, edi
sub eax, esi
push str.sch_d
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043c4c6
add esp, 0x10
add esi, eax
call fcn.00471f2e
test al, al
je 0x456415
call fcn.00471f2e
movzx eax, al
push eax
mov eax, edi
sub eax, esi
push str.nat_state_d
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043c4c6
add esp, 0x10
add esi, eax
cmp word [0x4c51fc], bx
je 0x45643c
push 1
mov eax, edi
sub eax, esi
push str.up_d
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043c4c6
add esp, 0x10
add esi, eax
cmp word [0x4c44f8], bx
je 0x456463
push 1
mov eax, edi
sub eax, esi
push str.np_d
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043c4c6
add esp, 0x10
add esi, eax
mov eax, dword [0x4c2adc]
cmp eax, ebx
je 0x456489
push eax
mov eax, edi
sub eax, esi
push str.ot_d
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043c4c6
add esp, 0x10
add esi, eax
mov eax, dword [0x4c2ae0]
cmp eax, ebx
je 0x4564af
push eax
mov eax, edi
sub eax, esi
push str.ou_d
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043c4c6
add esp, 0x10
add esi, eax
mov eax, dword [0x4c2ae4]
cmp eax, ebx
je 0x4564d5
push eax
mov eax, edi
sub eax, esi
push str.oh_d
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043c4c6
add esp, 0x10
add esi, eax
mov eax, dword [0x4c2ad0]
cmp eax, ebx
je 0x4564fb
push eax
mov eax, edi
sub eax, esi
push str.it_d
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043c4c6
add esp, 0x10
add esi, eax
mov eax, dword [0x4c2ad4]
cmp eax, ebx
je 0x456521
push eax
mov eax, edi
sub eax, esi
push str.iu_d
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043c4c6
add esp, 0x10
add esi, eax
mov eax, dword [0x4c2ad8]
cmp eax, ebx
je 0x456547
push eax
mov eax, edi
sub eax, esi
push str.ih_d
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043c4c6
add esp, 0x10
add esi, eax
mov eax, dword [0x4c2ae8]
cmp eax, ebx
je 0x45656d
push eax
mov eax, edi
sub eax, esi
push str.ah_u
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043c4c6
add esp, 0x10
add esi, eax
mov eax, dword [0x4c2aec]
cmp eax, ebx
je 0x456593
push eax
mov eax, edi
sub eax, esi
push str.fh_u
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043c4c6
add esp, 0x10
add esi, eax
mov eax, dword [0x4c2ac4]
cmp eax, ebx
je 0x4565b9
push eax
mov eax, edi
sub eax, esi
push str.pc_u
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043c4c6
add esp, 0x10
add esi, eax
mov eax, dword [0x4c2ac8]
cmp eax, ebx
je 0x4565df
push eax
mov eax, edi
sub eax, esi
push str.pr_u
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043c4c6
add esp, 0x10
add esi, eax
mov eax, dword [0x4c2acc]
cmp eax, ebx
je 0x456605
push eax
mov eax, edi
sub eax, esi
push str.pd_u
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043c4c6
add esp, 0x10
add esi, eax
mov eax, dword [0x4c496c]
cmp eax, ebx
je 0x45662b
push eax
mov eax, edi
sub eax, esi
push str.ul_u
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043c4c6
add esp, 0x10
add esi, eax
mov eax, dword [0x4c4978]
cmp eax, ebx
je 0x456651
push eax
mov eax, edi
sub eax, esi
push str.dl_u
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043c4c6
add esp, 0x10
add esi, eax
mov eax, dword [ebp - 0x2c]
xor ecx, ecx
sub eax, dword [0x4c8a18]
sbb ecx, dword [0x4c8a1c]
add eax, dword [0x4c89c8]
adc ecx, dword [0x4c89cc]
push ecx
push eax
mov eax, dword [ebp - 0x30]
xor ecx, ecx
sub eax, dword [0x4c8a10]
sbb ecx, dword [0x4c8a14]
add eax, dword [0x4c89c0]
adc ecx, dword [0x4c89c4]
push ecx
push eax
mov eax, dword [ebp - 0x34]
xor ecx, ecx
sub eax, dword [0x4c8a08]
sbb ecx, dword [0x4c8a0c]
add eax, dword [0x4c89b8]
adc ecx, dword [0x4c89bc]
push ecx
push eax
mov eax, dword [ebp - 0x38]
xor ecx, ecx
sub eax, dword [0x4c8a00]
sbb ecx, dword [0x4c8a04]
add eax, dword [0x4c89b0]
adc ecx, dword [0x4c89b4]
push ecx
push eax
mov eax, dword [ebp - 0x3c]
xor ecx, ecx
sub eax, dword [0x4c89f8]
sbb ecx, dword [0x4c89fc]
add eax, dword [0x4c89a8]
adc ecx, dword [0x4c89ac]
push ecx
push eax
mov eax, edi
sub eax, esi
push str.uts_Lu__Lu__Lu__Lu__Lu
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043c4c6
xor ecx, ecx
add esi, eax
mov eax, dword [ebp - 0x40]
sub eax, dword [0x4c8a40]
sbb ecx, dword [0x4c8a44]
add eax, dword [0x4c89f0]
adc ecx, dword [0x4c89f4]
push ecx
push eax
mov eax, dword [ebp - 0x44]
xor ecx, ecx
sub eax, dword [0x4c8a38]
sbb ecx, dword [0x4c8a3c]
add eax, dword [0x4c89e8]
adc ecx, dword [0x4c89ec]
push ecx
push eax
mov eax, dword [ebp - 0x48]
xor ecx, ecx
sub eax, dword [0x4c8a30]
sbb ecx, dword [0x4c8a34]
add eax, dword [0x4c89e0]
adc ecx, dword [0x4c89e4]
push ecx
push eax
mov eax, dword [ebp - 0x4c]
xor ecx, ecx
sub eax, dword [0x4c8a28]
sbb ecx, dword [0x4c8a2c]
add eax, dword [0x4c89d8]
adc ecx, dword [0x4c89dc]
push ecx
push eax
mov eax, dword [ebp - 0x50]
xor ecx, ecx
sub eax, dword [0x4c8a20]
sbb ecx, dword [0x4c8a24]
add eax, dword [0x4c89d0]
adc ecx, dword [0x4c89d4]
push ecx
push eax
mov eax, edi
sub eax, esi
push str.utr_Lu__Lu__Lu__Lu__Lu
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043c4c6
add esp, 0x68
lea ecx, [ebp - 0x10]
add esi, eax
call fcn.00415c08
mov eax, dword [ebp - 0x10]
cmp eax, ebx
jne 0x4567d0
mov eax, 0x48f13b
push edi
push eax
lea eax, [ebp - 0x878]
push eax
call sub.MSVCRT.dll_strncat
mov eax, dword [ebp - 0x10]
add esp, 0xc
cmp eax, ebx
jne 0x4567ec
xor eax, eax
jmp 0x4567f8
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4567ef
sub eax, edx
add esi, eax
mov eax, dword [0x4c49a8]
cmp eax, ebx
je 0x456832
mov eax, dword [eax*4 + 0x4b69d4]
xor ecx, ecx
cmp eax, ebx
setne cl
cmp ecx, ebx
je 0x456832
push eax
mov eax, edi
sub eax, esi
push str.pt_s
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043c4c6
add esp, 0x10
add esi, eax
call fcn.00473aa2
or eax, edx
je 0x45685e
call fcn.00473aa2
push edx
push eax
mov eax, edi
sub eax, esi
push str.ssb_Lu
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043c4c6
add esp, 0x14
add esi, eax
xor cl, cl
call fcn.00462557
test al, al
je 0x456890
xor cl, cl
call fcn.00462557
movzx eax, al
push eax
mov eax, edi
sub eax, esi
push str.def_tor_d
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043c4c6
add esp, 0x10
add esi, eax
call fcn.0045fd7f
test al, al
je 0x4568a9
call fcn.0045ff0e
mov dword [ebp + 8], 1
test al, al
jne 0x4568ac
mov dword [ebp + 8], ebx
call fcn.0045fddd
movzx ebx, al
neg ebx
sbb ebx, ebx
and ebx, 4
call fcn.0045fdc8
movzx eax, al
neg eax
sbb eax, eax
and eax, 2
or eax, ebx
or eax, dword [ebp + 8]
je 0x456930
call fcn.0045fd7f
test al, al
je 0x4568ec
call fcn.0045ff0e
test al, al
je 0x4568ec
mov dword [ebp + 8], 1
jmp 0x4568f0
and dword [ebp + 8], 0
call fcn.0045fddd
movzx ebx, al
neg ebx
sbb ebx, ebx
and ebx, 4
call fcn.0045fdc8
movzx eax, al
neg eax
sbb eax, eax
and eax, 2
or eax, ebx
or eax, dword [ebp + 8]
push eax
mov eax, edi
sub eax, esi
push str.tb_d
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043c4c6
add esp, 0x10
add esi, eax
mov ecx, dword [0x4c2a18]
test ecx, ecx
je 0x456941
call fcn.00402d4c
jmp 0x456943
xor eax, eax
test eax, eax
je 0x456969
cmp byte [eax], 0
je 0x456969
push eax
mov eax, edi
sub eax, esi
push str.ap_s
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043c4c6
add esp, 0x10
add esi, eax
mov eax, dword [0x4c2a18]
test eax, eax
je 0x456977
mov eax, dword [eax + 0x38]
jmp 0x45697c
mov eax, dword [0x4c2b98]
dec eax
je 0x45699c
push eax
mov eax, edi
sub eax, esi
push str.at_d
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043c4c6
add esp, 0x10
add esi, eax
cmp dword [ebp - 4], 0
je 0x4569c1
push dword [ebp - 4]
mov eax, edi
sub eax, esi
push str.ans_d
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043c4c6
add esp, 0x10
add esi, eax
mov eax, dword [0x4c8a6c]
test eax, eax
je 0x4569e7
push eax
mov eax, edi
sub eax, esi
push str.xai_d
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043c4c6
add esp, 0x10
add esi, eax
mov eax, dword [0x4c2b24]
test eax, eax
je 0x456a0d
push eax
mov eax, edi
sub eax, esi
push str.rfn_U
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043c4c6
add esp, 0x10
add esi, eax
mov eax, dword [0x4c2b28]
test eax, eax
je 0x456a33
push eax
mov eax, edi
sub eax, esi
push str.rmf_U
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043c4c6
add esp, 0x10
add esi, eax
mov eax, dword [0x4c2b2c]
test eax, eax
je 0x456a59
push eax
mov eax, edi
sub eax, esi
push str.rnm_U
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043c4c6
add esp, 0x10
add esi, eax
mov eax, dword [0x4c2b30]
test eax, eax
je 0x456a7f
push eax
mov eax, edi
sub eax, esi
push str.rnu_U
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043c4c6
add esp, 0x10
add esi, eax
call fcn.00445fc1
test al, al
je 0x456ab1
call fcn.00445fc1
xor ecx, ecx
test al, al
setne cl
mov eax, edi
sub eax, esi
push ecx
push str.w64_u
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043c4c6
add esp, 0x10
add esi, eax
mov al, byte [0x4c2b34]
test al, al
je 0x456ada
movzx eax, al
push eax
mov eax, edi
sub eax, esi
push str.skn_u
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043c4c6
add esp, 0x10
add esi, eax
push 0x14
lea eax, [ebp - 0x78]
push eax
push str.Version
mov edx, str.SOFTWAREMicrosoftInternet_Explorer
mov ecx, reloc.OLEAUT32.dll_SysReAllocString
call fcn.00458372
test al, al
je 0x456b18
lea eax, [ebp - 0x78]
push eax
mov eax, edi
sub eax, esi
push str.ie_S
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043c4c6
add esp, 0x10
add esi, eax
mov eax, dword [0x4c84f0]
push 0x1c
xor edx, edx
pop ecx
div ecx
mov ebx, eax
test ebx, ebx
je 0x456b47
push ebx
mov eax, edi
sub eax, esi
push str.hn_d
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043c4c6
add esp, 0x10
add esi, eax
add ebx, 0xfffffffe
cmp ebx, 3
ja 0x456b80
push 5
pop ecx
call fcn.00454ad3
test eax, eax
je 0x456b80
push 5
pop ecx
call fcn.00454ad3
push eax
mov eax, edi
sub eax, esi
push str.hh_s
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043c4c6
add esp, 0x10
add esi, eax
cmp byte [0x4c82fb], 0
mov eax, dword [0x4c8a5c]
je 0x456b91
or eax, 1
test eax, eax
je 0x456bb2
push eax
mov eax, edi
sub eax, esi
push str.xsm_d
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043c4c6
add esp, 0x10
add esi, eax
call fcn.004456ff
test eax, eax
je 0x456bdd
call fcn.004456ff
push eax
mov eax, edi
sub eax, esi
push str.xsss_d
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043c4c6
add esp, 0x10
add esi, eax
mov eax, dword [0x4c8a64]
test eax, eax
je 0x456c03
push eax
mov eax, edi
sub eax, esi
push str.xrsb_d
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043c4c6
add esp, 0x10
add esi, eax
call fcn.004456ff
add eax, dword [0x4c8944]
je 0x456c2d
push eax
mov eax, edi
sub eax, esi
push str.xrtsb_d
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043c4c6
add esp, 0x10
add esi, eax
inc dword [0x4c8a68]
je 0x456c57
push dword [0x4c8a68]
mov eax, edi
sub eax, esi
push str.xseq_d
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043c4c6
add esp, 0x10
add esi, eax
mov eax, dword [0x4c8a70]
mov ecx, dword [0x4c8a74]
mov edx, eax
or edx, ecx
je 0x456c86
push ecx
push eax
mov eax, edi
sub eax, esi
push str.av_Lu
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043c4c6
add esp, 0x14
add esi, eax
mov eax, dword [0x4c8a78]
test eax, eax
je 0x456ca8
push eax
push str.avie_d
sub edi, esi
lea eax, [ebp + esi - 0x878]
push edi
push eax
call fcn.0043c4c6
add esp, 0x10
cmp byte [ebp - 0xc], 0
je 0x456cb6
mov ecx, dword [ebp - 0x10]
call fcn.00444521
call fcn.00429592
mov al, byte [ebp + 0xc]
mov edx, dword [ebp - 0x20]
push 0
mov byte [edx + 1], al
mov byte [edx], 1
lea ecx, [ebp - 0x878]
push 0
test al, 0xc
jne 0x456cdc
push 0x454929
jmp 0x456ce1
push 0x45491d
call fcn.00422a7c
call fcn.004295a3
mov ecx, dword [ebp - 0x1c]
call fcn.00444521
mov al, 1
lea esp, [ebp - 0x884]
pop edi
pop esi
pop ebx
leave
ret 8