Function at 0x455812
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 0x45582d
xor al, al
jmp 0x456ccd
call fcn.0044645a
mov ecx, eax
call fcn.0043b312
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x45583c
mov ebx, dword [sym.imp.KERNEL32.DLL_TlsSetValue]
sub eax, edx
mov dword [ebp - 0xc], eax
cmp byte [0x4c6ce8], cl
je 0x45588b
mov eax, dword [0x4c6cec]
cmp eax, 0xffffffff
je 0x45588b
push eax
call dword [sym.imp.KERNEL32.DLL_TlsGetValue]
mov esi, eax
test esi, esi
jne 0x45588d
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 [0x4c6cec]
call ebx
jmp 0x45588d
xor esi, esi
mov eax, dword [ebp - 0xc]
inc eax
mov dword [esi + 0x14], eax
cmp byte [0x4c6ce8], 0
mov esi, dword [0x4c6cec]
je 0x4558db
cmp esi, 0xffffffff
je 0x4558db
push esi
call dword [sym.imp.KERNEL32.DLL_TlsGetValue]
mov esi, eax
test esi, esi
jne 0x4558d1
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 [0x4c6cec]
call ebx
mov eax, esi
mov esi, dword [0x4c6cec]
jmp 0x4558dd
xor eax, eax
mov eax, dword [eax + 0x14]
call section..text
cmp byte [0x4c6ce8], 0
mov dword [ebp - 0xc], esp
je 0x455921
cmp esi, 0xffffffff
je 0x455921
push esi
call dword [sym.imp.KERNEL32.DLL_TlsGetValue]
mov esi, eax
test esi, esi
jne 0x455923
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 [0x4c6cec]
call ebx
jmp 0x455923
xor esi, esi
mov eax, dword [ebp - 0xc]
mov dword [esi + 0x18], eax
cmp byte [0x4c6ce8], 0
mov eax, dword [0x4c6cec]
je 0x45596f
cmp eax, 0xffffffff
je 0x45596f
push eax
call dword [sym.imp.KERNEL32.DLL_TlsGetValue]
mov esi, eax
test esi, esi
jne 0x455965
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 [0x4c6cec]
call ebx
mov eax, dword [0x4c6cec]
mov dword [ebp - 4], esi
jmp 0x455973
and dword [ebp - 4], 0
cmp byte [0x4c6ce8], 0
je 0x4559ae
cmp eax, 0xffffffff
je 0x4559ae
push eax
call dword [sym.imp.KERNEL32.DLL_TlsGetValue]
mov esi, eax
test esi, esi
jne 0x4559aa
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 [0x4c6cec]
call ebx
mov edi, esi
jmp 0x4559b0
xor edi, edi
mov eax, dword [ebp - 4]
mov esi, dword [eax + 0x14]
call fcn.0044645a
mov ecx, eax
call fcn.0043b312
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.00446452
mov ecx, eax
call fcn.0043b312
lea ecx, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x4559e2
sub eax, ecx
mov dword [ebp - 8], eax
cmp byte [0x4c6ce8], dl
je 0x455a2b
mov eax, dword [0x4c6cec]
cmp eax, 0xffffffff
je 0x455a2b
push eax
call dword [sym.imp.KERNEL32.DLL_TlsGetValue]
mov esi, eax
test esi, esi
jne 0x455a2d
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 [0x4c6cec]
call ebx
jmp 0x455a2d
xor esi, esi
mov eax, dword [ebp - 8]
inc eax
mov dword [esi + 0x14], eax
cmp byte [0x4c6ce8], 0
mov esi, dword [0x4c6cec]
je 0x455a7b
cmp esi, 0xffffffff
je 0x455a7b
push esi
call dword [sym.imp.KERNEL32.DLL_TlsGetValue]
mov esi, eax
test esi, esi
jne 0x455a71
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 [0x4c6cec]
call ebx
mov eax, esi
mov esi, dword [0x4c6cec]
jmp 0x455a7d
xor eax, eax
mov eax, dword [eax + 0x14]
call section..text
cmp byte [0x4c6ce8], 0
mov dword [ebp - 8], esp
je 0x455ac1
cmp esi, 0xffffffff
je 0x455ac1
push esi
call dword [sym.imp.KERNEL32.DLL_TlsGetValue]
mov esi, eax
test esi, esi
jne 0x455ac3
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 [0x4c6cec]
call ebx
jmp 0x455ac3
xor esi, esi
mov eax, dword [ebp - 8]
mov dword [esi + 0x18], eax
cmp byte [0x4c6ce8], 0
mov eax, dword [0x4c6cec]
je 0x455b0c
cmp eax, 0xffffffff
je 0x455b0c
push eax
call dword [sym.imp.KERNEL32.DLL_TlsGetValue]
mov esi, eax
test esi, esi
jne 0x455b05
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 [0x4c6cec]
call ebx
mov eax, dword [0x4c6cec]
jmp 0x455b0e
xor esi, esi
cmp byte [0x4c6ce8], 0
je 0x455b4d
cmp eax, 0xffffffff
je 0x455b4d
push eax
call dword [sym.imp.KERNEL32.DLL_TlsGetValue]
mov ebx, eax
test ebx, ebx
jne 0x455b49
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 [0x4c6cec]
call dword [sym.imp.KERNEL32.DLL_TlsSetValue]
mov edi, ebx
jmp 0x455b4f
xor edi, edi
mov esi, dword [esi + 0x14]
call fcn.00446452
mov ecx, eax
call fcn.0043b312
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.004549d3
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.0045493d
and dword [ebp - 0x14], 0
call fcn.00429550
call fcn.0042659a
mov bl, al
call fcn.00429561
push 3
pop esi
test bl, bl
je 0x455bbd
mov dword [ebp - 0x14], edi
call fcn.00461704
test al, al
je 0x455bba
cmp byte [0x4c53b5], 0
je 0x455bbd
mov dword [ebp - 0x14], esi
xor ebx, ebx
mov dword [ebp - 4], ebx
cmp dword [0x4c3b98], ebx
jbe 0x455bf1
xor esi, esi
mov eax, dword [0x4c3b90]
lea ecx, [eax + esi]
push str.notstore
call fcn.00412cc6
cmp eax, edi
jne 0x455be5
inc dword [ebp - 4]
inc ebx
add esi, 0x1c
cmp ebx, dword [0x4c3b98]
jb 0x455bcc
push 0xa
pop ecx
mov esi, str.xxxx:__update.utorrent.xxx_checkupdate.xxx
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.0044861b
push 0x44362d6
push str._v_d
lea eax, [ebp - 0x84e]
push 0x7d6
push eax
call fcn.0043c508
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 0x455c70
push eax
mov eax, edi
sub eax, esi
push str.qv_d
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043c508
add esp, 0x10
add esi, eax
lea eax, [ebp - 0x28]
push eax
push dword [ebx + 4]
mov eax, edi
push dword [0x4cd05c]
sub eax, esi
push str.lv_d__d__U
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043c508
add esp, 0x18
add esi, eax
cmp dword [ebp + 0xc], 0
je 0x455cbe
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.0043c508
add esp, 0x10
add esi, eax
cmp dword [ebp - 8], 0
je 0x455ce3
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.0043c508
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.0043c508
mov ebx, dword [ebx + 0x20]
add esp, 0x10
add esi, eax
test ebx, ebx
je 0x455d28
push ebx
mov eax, edi
sub eax, esi
push str.k_U
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043c508
add esp, 0x10
add esi, eax
cmp byte [0x4c92df], 0
je 0x456c8e
cmp dword [ebp - 0xc], 0
je 0x455d5a
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.0043c508
add esp, 0x10
add esi, eax
mov ebx, dword [sym.imp.KERNEL32.DLL_GetVersion]
call ebx
test eax, eax
je 0x455d85
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.0043c508
add esp, 0x10
add esi, eax
call fcn.00461731
test al, al
je 0x455db3
call fcn.00461731
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.0043c508
add esp, 0x10
add esi, eax
cmp dword [ebp - 0x14], 0
je 0x455dd8
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.0043c508
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.0043c508
add esp, 0x14
add esi, eax
call fcn.0041386f
mov ebx, eax
mov ecx, dword [ebx + 0x14]
mov eax, 0xfa0
cmp ecx, eax
ja 0x455e12
cmp dword [ebx + 0x18], eax
jbe 0x455e74
test ecx, ecx
je 0x455e33
push ecx
mov eax, edi
sub eax, esi
push str.p_up_u
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043c508
add esp, 0x10
add esi, eax
mov eax, dword [ebx + 0x18]
test eax, eax
je 0x455e57
push eax
mov eax, edi
sub eax, esi
push str.p_down_u
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043c508
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.0043c508
add esp, 0x10
add esi, eax
mov eax, dword [0x4c9954]
mov ecx, dword [0x4c9958]
mov edx, eax
or edx, ecx
je 0x455ea3
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.0043c508
add esp, 0x14
add esi, eax
mov eax, dword [0x4c995c]
mov ecx, dword [0x4c9960]
mov edx, eax
or edx, ecx
je 0x455ed2
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.0043c508
add esp, 0x14
add esi, eax
mov eax, dword [0x4c9290]
xor ebx, ebx
cmp eax, ebx
je 0x455efa
push eax
mov eax, edi
sub eax, esi
push str.m_up_d
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043c508
add esp, 0x10
add esi, eax
mov eax, dword [0x4c928c]
cmp eax, ebx
je 0x455f20
push eax
mov eax, edi
sub eax, esi
push str.m_down_d
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043c508
add esp, 0x10
add esi, eax
mov eax, dword [0x4c3af0]
cmp eax, ebx
je 0x455f46
push eax
mov eax, edi
sub eax, esi
push str.m_utpq_d
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043c508
add esp, 0x10
add esi, eax
mov eax, dword [0x4c3b18]
mov ecx, dword [0x4c3b1c]
mov edx, eax
or edx, ecx
je 0x455f75
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.0043c508
add esp, 0x14
add esi, eax
mov eax, dword [0x4b618c]
cmp eax, ebx
je 0x455f9b
push eax
mov eax, edi
sub eax, esi
push str.mts_u
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043c508
add esp, 0x10
add esi, eax
mov eax, dword [0x4c3b10]
mov ecx, dword [0x4c3b14]
mov edx, eax
or edx, ecx
je 0x455fca
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.0043c508
add esp, 0x14
add esi, eax
mov al, byte [0x4c5418]
test al, al
je 0x455ff3
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.0043c508
add esp, 0x10
add esi, eax
mov eax, dword [0x4c60fc]
cmp eax, ebx
je 0x456019
push eax
mov eax, edi
sub eax, esi
push str.rsf_d
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043c508
add esp, 0x10
add esi, eax
mov eax, dword [0x4c6108]
cmp eax, ebx
je 0x45603f
push eax
mov eax, edi
sub eax, esi
push str.rsa_d
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043c508
add esp, 0x10
add esi, eax
mov ax, word [0x4c9b78]
cmp ax, bx
je 0x45606a
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.0043c508
add esp, 0x10
add esi, eax
mov ax, word [0x4c9b7a]
cmp ax, bx
je 0x456095
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.0043c508
add esp, 0x10
add esi, eax
mov ax, word [0x4c9b7c]
cmp ax, bx
je 0x4560c0
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.0043c508
add esp, 0x10
add esi, eax
mov ax, word [0x4c9b7e]
cmp ax, bx
je 0x4560eb
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.0043c508
add esp, 0x10
add esi, eax
mov ax, word [0x4c9b80]
cmp ax, bx
je 0x456116
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.0043c508
add esp, 0x10
add esi, eax
mov ax, word [0x4c9b84]
cmp ax, bx
je 0x456141
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.0043c508
add esp, 0x10
add esi, eax
mov eax, dword [0x4c9990]
cmp eax, ebx
je 0x456167
push eax
mov eax, edi
sub eax, esi
push str.tta_d
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043c508
add esp, 0x10
add esi, eax
mov eax, dword [0x4c9994]
cmp eax, ebx
je 0x45618d
push eax
mov eax, edi
sub eax, esi
push str.ttd_d
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043c508
add esp, 0x10
add esi, eax
mov eax, dword [0x4c9998]
cmp eax, ebx
je 0x4561b3
push eax
mov eax, edi
sub eax, esi
push str.ttc_d
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043c508
add esp, 0x10
add esi, eax
mov eax, dword [0x4c999c]
mov ecx, dword [0x4c99a0]
mov edx, eax
or edx, ecx
je 0x4561e2
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.0043c508
add esp, 0x14
add esi, eax
mov eax, dword [0x4c99a4]
cmp eax, ebx
je 0x456208
push eax
mov eax, edi
sub eax, esi
push str.gnc_d
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043c508
add esp, 0x10
add esi, eax
mov eax, dword [0x4c99a8]
cmp eax, ebx
je 0x45622e
push eax
mov eax, edi
sub eax, esi
push str.trc_d
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043c508
add esp, 0x10
add esi, eax
mov eax, dword [0x4c99ac]
cmp eax, ebx
je 0x456254
push eax
mov eax, edi
sub eax, esi
push str.prc_d
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043c508
add esp, 0x10
add esi, eax
mov eax, dword [0x4c99b0]
cmp eax, ebx
je 0x45627a
push eax
mov eax, edi
sub eax, esi
push str.pcc_d
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043c508
add esp, 0x10
add esi, eax
mov eax, dword [0x4c99b4]
cmp eax, ebx
je 0x4562a0
push eax
mov eax, edi
sub eax, esi
push str.flc_d
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043c508
add esp, 0x10
add esi, eax
mov eax, dword [0x4c99b8]
cmp eax, ebx
je 0x4562c6
push eax
mov eax, edi
sub eax, esi
push str.spc_d
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043c508
add esp, 0x10
add esi, eax
mov eax, dword [0x4c99bc]
cmp eax, ebx
je 0x4562ec
push eax
mov eax, edi
sub eax, esi
push str.lgc_d
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043c508
add esp, 0x10
add esi, eax
mov eax, dword [0x4c99c0]
cmp eax, ebx
je 0x456312
push eax
mov eax, edi
sub eax, esi
push str.ac_d
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043c508
add esp, 0x10
add esi, eax
movzx eax, byte [0x4c9313]
add eax, eax
mov ecx, eax
push 3
pop eax
sub eax, ecx
movzx ecx, byte [0x4c9310]
sub eax, ecx
je 0x45634a
push eax
mov eax, edi
sub eax, esi
push str.ps_d
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043c508
add esp, 0x10
add esi, eax
mov eax, dword [0x4c99c4]
cmp eax, ebx
je 0x456370
push eax
mov eax, edi
sub eax, esi
push str.sc_d
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043c508
add esp, 0x10
add esi, eax
mov eax, dword [0x4c9a68]
cmp eax, ebx
je 0x456396
push eax
mov eax, edi
sub eax, esi
push str.hc_d
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043c508
add esp, 0x10
add esi, eax
mov al, byte [0x4c9300]
test al, al
je 0x4563bf
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.0043c508
add esp, 0x10
add esi, eax
call fcn.00472134
test al, al
je 0x4563ed
call fcn.00472134
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.0043c508
add esp, 0x10
add esi, eax
cmp word [0x4c61fc], bx
je 0x456414
push 1
mov eax, edi
sub eax, esi
push str.up_d
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043c508
add esp, 0x10
add esi, eax
cmp word [0x4c54f8], bx
je 0x45643b
push 1
mov eax, edi
sub eax, esi
push str.np_d
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043c508
add esp, 0x10
add esi, eax
mov eax, dword [0x4c3adc]
cmp eax, ebx
je 0x456461
push eax
mov eax, edi
sub eax, esi
push str.ot_d
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043c508
add esp, 0x10
add esi, eax
mov eax, dword [0x4c3ae0]
cmp eax, ebx
je 0x456487
push eax
mov eax, edi
sub eax, esi
push str.ou_d
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043c508
add esp, 0x10
add esi, eax
mov eax, dword [0x4c3ae4]
cmp eax, ebx
je 0x4564ad
push eax
mov eax, edi
sub eax, esi
push str.oh_d
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043c508
add esp, 0x10
add esi, eax
mov eax, dword [0x4c3ad0]
cmp eax, ebx
je 0x4564d3
push eax
mov eax, edi
sub eax, esi
push str.it_d
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043c508
add esp, 0x10
add esi, eax
mov eax, dword [0x4c3ad4]
cmp eax, ebx
je 0x4564f9
push eax
mov eax, edi
sub eax, esi
push str.iu_d
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043c508
add esp, 0x10
add esi, eax
mov eax, dword [0x4c3ad8]
cmp eax, ebx
je 0x45651f
push eax
mov eax, edi
sub eax, esi
push str.ih_d
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043c508
add esp, 0x10
add esi, eax
mov eax, dword [0x4c3ae8]
cmp eax, ebx
je 0x456545
push eax
mov eax, edi
sub eax, esi
push str.ah_u
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043c508
add esp, 0x10
add esi, eax
mov eax, dword [0x4c3aec]
cmp eax, ebx
je 0x45656b
push eax
mov eax, edi
sub eax, esi
push str.fh_u
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043c508
add esp, 0x10
add esi, eax
mov eax, dword [0x4c3ac4]
cmp eax, ebx
je 0x456591
push eax
mov eax, edi
sub eax, esi
push str.pc_u
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043c508
add esp, 0x10
add esi, eax
mov eax, dword [0x4c3ac8]
cmp eax, ebx
je 0x4565b7
push eax
mov eax, edi
sub eax, esi
push str.pr_u
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043c508
add esp, 0x10
add esi, eax
mov eax, dword [0x4c3acc]
cmp eax, ebx
je 0x4565dd
push eax
mov eax, edi
sub eax, esi
push str.pd_u
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043c508
add esp, 0x10
add esi, eax
mov eax, dword [0x4c596c]
cmp eax, ebx
je 0x456603
push eax
mov eax, edi
sub eax, esi
push str.ul_u
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043c508
add esp, 0x10
add esi, eax
mov eax, dword [0x4c5978]
cmp eax, ebx
je 0x456629
push eax
mov eax, edi
sub eax, esi
push str.dl_u
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043c508
add esp, 0x10
add esi, eax
mov eax, dword [ebp - 0x2c]
xor ecx, ecx
sub eax, dword [0x4c9a38]
sbb ecx, dword [0x4c9a3c]
add eax, dword [0x4c99e8]
adc ecx, dword [0x4c99ec]
push ecx
push eax
mov eax, dword [ebp - 0x30]
xor ecx, ecx
sub eax, dword [0x4c9a30]
sbb ecx, dword [0x4c9a34]
add eax, dword [0x4c99e0]
adc ecx, dword [0x4c99e4]
push ecx
push eax
mov eax, dword [ebp - 0x34]
xor ecx, ecx
sub eax, dword [0x4c9a28]
sbb ecx, dword [0x4c9a2c]
add eax, dword [0x4c99d8]
adc ecx, dword [0x4c99dc]
push ecx
push eax
mov eax, dword [ebp - 0x38]
xor ecx, ecx
sub eax, dword [0x4c9a20]
sbb ecx, dword [0x4c9a24]
add eax, dword [0x4c99d0]
adc ecx, dword [0x4c99d4]
push ecx
push eax
mov eax, dword [ebp - 0x3c]
xor ecx, ecx
sub eax, dword [0x4c9a18]
sbb ecx, dword [0x4c9a1c]
add eax, dword [0x4c99c8]
adc ecx, dword [0x4c99cc]
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.0043c508
xor ecx, ecx
add esi, eax
mov eax, dword [ebp - 0x40]
sub eax, dword [0x4c9a60]
sbb ecx, dword [0x4c9a64]
add eax, dword [0x4c9a10]
adc ecx, dword [0x4c9a14]
push ecx
push eax
mov eax, dword [ebp - 0x44]
xor ecx, ecx
sub eax, dword [0x4c9a58]
sbb ecx, dword [0x4c9a5c]
add eax, dword [0x4c9a08]
adc ecx, dword [0x4c9a0c]
push ecx
push eax
mov eax, dword [ebp - 0x48]
xor ecx, ecx
sub eax, dword [0x4c9a50]
sbb ecx, dword [0x4c9a54]
add eax, dword [0x4c9a00]
adc ecx, dword [0x4c9a04]
push ecx
push eax
mov eax, dword [ebp - 0x4c]
xor ecx, ecx
sub eax, dword [0x4c9a48]
sbb ecx, dword [0x4c9a4c]
add eax, dword [0x4c99f8]
adc ecx, dword [0x4c99fc]
push ecx
push eax
mov eax, dword [ebp - 0x50]
xor ecx, ecx
sub eax, dword [0x4c9a40]
sbb ecx, dword [0x4c9a44]
add eax, dword [0x4c99f0]
adc ecx, dword [0x4c99f4]
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.0043c508
add esp, 0x68
lea ecx, [ebp - 0x10]
add esi, eax
call fcn.00415c0c
mov eax, dword [ebp - 0x10]
cmp eax, ebx
jne 0x4567a8
mov eax, 0x49013b
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 0x4567c4
xor eax, eax
jmp 0x4567d0
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4567c7
sub eax, edx
add esi, eax
mov eax, dword [0x4c59a8]
cmp eax, ebx
je 0x45680a
mov eax, dword [eax*4 + 0x4b79d4]
xor ecx, ecx
cmp eax, ebx
setne cl
cmp ecx, ebx
je 0x45680a
push eax
mov eax, edi
sub eax, esi
push str.pt_s
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043c508
add esp, 0x10
add esi, eax
call fcn.00473ca9
or eax, edx
je 0x456836
call fcn.00473ca9
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.0043c508
add esp, 0x14
add esi, eax
xor cl, cl
call fcn.00462697
test al, al
je 0x456868
xor cl, cl
call fcn.00462697
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.0043c508
add esp, 0x10
add esi, eax
call fcn.0045fd83
test al, al
je 0x456881
call fcn.0045ff12
mov dword [ebp + 8], 1
test al, al
jne 0x456884
mov dword [ebp + 8], ebx
call fcn.0045fde1
movzx ebx, al
neg ebx
sbb ebx, ebx
and ebx, 4
call fcn.0045fdcc
movzx eax, al
neg eax
sbb eax, eax
and eax, 2
or eax, ebx
or eax, dword [ebp + 8]
je 0x456908
call fcn.0045fd83
test al, al
je 0x4568c4
call fcn.0045ff12
test al, al
je 0x4568c4
mov dword [ebp + 8], 1
jmp 0x4568c8
and dword [ebp + 8], 0
call fcn.0045fde1
movzx ebx, al
neg ebx
sbb ebx, ebx
and ebx, 4
call fcn.0045fdcc
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.0043c508
add esp, 0x10
add esi, eax
mov ecx, dword [0x4c3a18]
test ecx, ecx
je 0x456919
call fcn.00402da6
jmp 0x45691b
xor eax, eax
test eax, eax
je 0x456941
cmp byte [eax], 0
je 0x456941
push eax
mov eax, edi
sub eax, esi
push str.ap_s
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043c508
add esp, 0x10
add esi, eax
mov eax, dword [0x4c3a18]
test eax, eax
je 0x45694f
mov eax, dword [eax + 0x38]
jmp 0x456954
mov eax, dword [0x4c3b98]
dec eax
je 0x456974
push eax
mov eax, edi
sub eax, esi
push str.at_d
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043c508
add esp, 0x10
add esi, eax
cmp dword [ebp - 4], 0
je 0x456999
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.0043c508
add esp, 0x10
add esi, eax
mov eax, dword [0x4c9a8c]
test eax, eax
je 0x4569bf
push eax
mov eax, edi
sub eax, esi
push str.xai_d
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043c508
add esp, 0x10
add esi, eax
mov eax, dword [0x4c3b24]
test eax, eax
je 0x4569e5
push eax
mov eax, edi
sub eax, esi
push str.rfn_U
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043c508
add esp, 0x10
add esi, eax
mov eax, dword [0x4c3b28]
test eax, eax
je 0x456a0b
push eax
mov eax, edi
sub eax, esi
push str.rmf_U
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043c508
add esp, 0x10
add esi, eax
mov eax, dword [0x4c3b2c]
test eax, eax
je 0x456a31
push eax
mov eax, edi
sub eax, esi
push str.rnm_U
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043c508
add esp, 0x10
add esi, eax
mov eax, dword [0x4c3b30]
test eax, eax
je 0x456a57
push eax
mov eax, edi
sub eax, esi
push str.rnu_U
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043c508
add esp, 0x10
add esi, eax
call fcn.00445f9e
test al, al
je 0x456a89
call fcn.00445f9e
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.0043c508
add esp, 0x10
add esi, eax
mov al, byte [0x4c3b34]
test al, al
je 0x456ab2
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.0043c508
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.00458383
test al, al
je 0x456af0
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.0043c508
add esp, 0x10
add esi, eax
mov eax, dword [0x4c9510]
push 0x1c
xor edx, edx
pop ecx
div ecx
mov ebx, eax
test ebx, ebx
je 0x456b1f
push ebx
mov eax, edi
sub eax, esi
push str.hn_d
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043c508
add esp, 0x10
add esi, eax
add ebx, 0xfffffffe
cmp ebx, 3
ja 0x456b58
push 5
pop ecx
call fcn.00454aab
test eax, eax
je 0x456b58
push 5
pop ecx
call fcn.00454aab
push eax
mov eax, edi
sub eax, esi
push str.hh_s
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043c508
add esp, 0x10
add esi, eax
cmp byte [0x4c931b], 0
mov eax, dword [0x4c9a7c]
je 0x456b69
or eax, 1
test eax, eax
je 0x456b8a
push eax
mov eax, edi
sub eax, esi
push str.xsm_d
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043c508
add esp, 0x10
add esi, eax
call fcn.004456dc
test eax, eax
je 0x456bb5
call fcn.004456dc
push eax
mov eax, edi
sub eax, esi
push str.xsss_d
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043c508
add esp, 0x10
add esi, eax
mov eax, dword [0x4c9a84]
test eax, eax
je 0x456bdb
push eax
mov eax, edi
sub eax, esi
push str.xrsb_d
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043c508
add esp, 0x10
add esi, eax
call fcn.004456dc
add eax, dword [0x4c9964]
je 0x456c05
push eax
mov eax, edi
sub eax, esi
push str.xrtsb_d
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043c508
add esp, 0x10
add esi, eax
inc dword [0x4c9a88]
je 0x456c2f
push dword [0x4c9a88]
mov eax, edi
sub eax, esi
push str.xseq_d
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043c508
add esp, 0x10
add esi, eax
mov eax, dword [0x4c9a90]
mov ecx, dword [0x4c9a94]
mov edx, eax
or edx, ecx
je 0x456c5e
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.0043c508
add esp, 0x14
add esi, eax
mov eax, dword [0x4c9a98]
test eax, eax
je 0x456c80
push eax
push str.avie_d
sub edi, esi
lea eax, [ebp + esi - 0x878]
push edi
push eax
call fcn.0043c508
add esp, 0x10
cmp byte [ebp - 0xc], 0
je 0x456c8e
mov ecx, dword [ebp - 0x10]
call fcn.004444fe
call fcn.00429550
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 0x456cb4
push 0x454901
jmp 0x456cb9
push 0x4548f5
call fcn.00422a6a
call fcn.00429561
mov ecx, dword [ebp - 0x1c]
call fcn.004444fe
mov al, 1
lea esp, [ebp - 0x884]
pop edi
pop esi
pop ebx
leave
ret 8