Function at 0x454578
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 0x454593
xor al, al
jmp 0x4559f8
call fcn.0044531b
mov ecx, eax
call fcn.0043a258
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4545a2
mov ebx, dword [sym.imp.KERNEL32.DLL_TlsSetValue]
sub eax, edx
mov dword [ebp - 0xc], eax
cmp byte [0x4c3bb0], cl
je 0x4545f1
mov eax, dword [0x4c3bb4]
cmp eax, 0xffffffff
je 0x4545f1
push eax
call dword [sym.imp.KERNEL32.DLL_TlsGetValue]
mov esi, eax
test esi, esi
jne 0x4545f3
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 [0x4c3bb4]
call ebx
jmp 0x4545f3
xor esi, esi
mov eax, dword [ebp - 0xc]
inc eax
mov dword [esi + 0x14], eax
cmp byte [0x4c3bb0], 0
mov esi, dword [0x4c3bb4]
je 0x454641
cmp esi, 0xffffffff
je 0x454641
push esi
call dword [sym.imp.KERNEL32.DLL_TlsGetValue]
mov esi, eax
test esi, esi
jne 0x454637
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 [0x4c3bb4]
call ebx
mov eax, esi
mov esi, dword [0x4c3bb4]
jmp 0x454643
xor eax, eax
mov eax, dword [eax + 0x14]
call section..text
cmp byte [0x4c3bb0], 0
mov dword [ebp - 0xc], esp
je 0x454687
cmp esi, 0xffffffff
je 0x454687
push esi
call dword [sym.imp.KERNEL32.DLL_TlsGetValue]
mov esi, eax
test esi, esi
jne 0x454689
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 [0x4c3bb4]
call ebx
jmp 0x454689
xor esi, esi
mov eax, dword [ebp - 0xc]
mov dword [esi + 0x18], eax
cmp byte [0x4c3bb0], 0
mov eax, dword [0x4c3bb4]
je 0x4546d5
cmp eax, 0xffffffff
je 0x4546d5
push eax
call dword [sym.imp.KERNEL32.DLL_TlsGetValue]
mov esi, eax
test esi, esi
jne 0x4546cb
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 [0x4c3bb4]
call ebx
mov eax, dword [0x4c3bb4]
mov dword [ebp - 4], esi
jmp 0x4546d9
and dword [ebp - 4], 0
cmp byte [0x4c3bb0], 0
je 0x454714
cmp eax, 0xffffffff
je 0x454714
push eax
call dword [sym.imp.KERNEL32.DLL_TlsGetValue]
mov esi, eax
test esi, esi
jne 0x454710
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 [0x4c3bb4]
call ebx
mov edi, esi
jmp 0x454716
xor edi, edi
mov eax, dword [ebp - 4]
mov esi, dword [eax + 0x14]
call fcn.0044531b
mov ecx, eax
call fcn.0043a258
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.00445313
mov ecx, eax
call fcn.0043a258
lea ecx, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x454748
sub eax, ecx
mov dword [ebp - 8], eax
cmp byte [0x4c3bb0], dl
je 0x454791
mov eax, dword [0x4c3bb4]
cmp eax, 0xffffffff
je 0x454791
push eax
call dword [sym.imp.KERNEL32.DLL_TlsGetValue]
mov esi, eax
test esi, esi
jne 0x454793
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 [0x4c3bb4]
call ebx
jmp 0x454793
xor esi, esi
mov eax, dword [ebp - 8]
inc eax
mov dword [esi + 0x14], eax
cmp byte [0x4c3bb0], 0
mov esi, dword [0x4c3bb4]
je 0x4547e1
cmp esi, 0xffffffff
je 0x4547e1
push esi
call dword [sym.imp.KERNEL32.DLL_TlsGetValue]
mov esi, eax
test esi, esi
jne 0x4547d7
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 [0x4c3bb4]
call ebx
mov eax, esi
mov esi, dword [0x4c3bb4]
jmp 0x4547e3
xor eax, eax
mov eax, dword [eax + 0x14]
call section..text
cmp byte [0x4c3bb0], 0
mov dword [ebp - 8], esp
je 0x454827
cmp esi, 0xffffffff
je 0x454827
push esi
call dword [sym.imp.KERNEL32.DLL_TlsGetValue]
mov esi, eax
test esi, esi
jne 0x454829
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 [0x4c3bb4]
call ebx
jmp 0x454829
xor esi, esi
mov eax, dword [ebp - 8]
mov dword [esi + 0x18], eax
cmp byte [0x4c3bb0], 0
mov eax, dword [0x4c3bb4]
je 0x454872
cmp eax, 0xffffffff
je 0x454872
push eax
call dword [sym.imp.KERNEL32.DLL_TlsGetValue]
mov esi, eax
test esi, esi
jne 0x45486b
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 [0x4c3bb4]
call ebx
mov eax, dword [0x4c3bb4]
jmp 0x454874
xor esi, esi
cmp byte [0x4c3bb0], 0
je 0x4548b3
cmp eax, 0xffffffff
je 0x4548b3
push eax
call dword [sym.imp.KERNEL32.DLL_TlsGetValue]
mov ebx, eax
test ebx, ebx
jne 0x4548af
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 [0x4c3bb4]
call dword [sym.imp.KERNEL32.DLL_TlsSetValue]
mov edi, ebx
jmp 0x4548b5
xor edi, edi
mov esi, dword [esi + 0x14]
call fcn.00445313
mov ecx, eax
call fcn.0043a258
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.0045375e
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.004536eb
and dword [ebp - 0x14], 0
call fcn.00428703
call fcn.0042571c
mov bl, al
call fcn.00428714
push 3
pop esi
test bl, bl
je 0x454923
mov dword [ebp - 0x14], edi
call fcn.00460367
test al, al
je 0x454920
cmp byte [0x4c2295], 0
je 0x454923
mov dword [ebp - 0x14], esi
xor ebx, ebx
mov dword [ebp - 4], ebx
cmp dword [0x4c0a90], ebx
jbe 0x454957
xor esi, esi
mov eax, dword [0x4c0a88]
lea ecx, [eax + esi]
push str.notstore
call fcn.00412983
cmp eax, edi
jne 0x45494b
inc dword [ebp - 4]
inc ebx
add esi, 0x1c
cmp ebx, dword [0x4c0a90]
jb 0x454932
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.004473a0
push 0x4415cde
push str._v_d
lea eax, [ebp - 0x84e]
push 0x7d6
push eax
call fcn.0043b44e
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 0x4549d6
push eax
mov eax, edi
sub eax, esi
push str.qv_d
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043b44e
add esp, 0x10
add esi, eax
lea eax, [ebp - 0x28]
push eax
push dword [ebx + 4]
mov eax, edi
push dword [0x4c9a8c]
sub eax, esi
push str.lv_d__d__U
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043b44e
add esp, 0x18
add esi, eax
cmp dword [ebp + 0xc], 0
je 0x454a24
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.0043b44e
add esp, 0x10
add esi, eax
cmp dword [ebp - 8], 0
je 0x454a49
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.0043b44e
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.0043b44e
mov ebx, dword [ebx + 0x20]
add esp, 0x10
add esi, eax
test ebx, ebx
je 0x454a8e
push ebx
mov eax, edi
sub eax, esi
push str.k_U
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043b44e
add esp, 0x10
add esi, eax
cmp byte [0x4c6197], 0
je 0x4559b9
cmp dword [ebp - 0xc], 0
je 0x454ac0
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.0043b44e
add esp, 0x10
add esi, eax
mov ebx, dword [sym.imp.KERNEL32.DLL_GetVersion]
call ebx
test eax, eax
je 0x454aeb
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.0043b44e
add esp, 0x10
add esi, eax
call fcn.00460394
test al, al
je 0x454b19
call fcn.00460394
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.0043b44e
add esp, 0x10
add esi, eax
cmp dword [ebp - 0x14], 0
je 0x454b3e
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.0043b44e
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.0043b44e
add esp, 0x14
add esi, eax
call fcn.0041352c
mov ebx, eax
mov ecx, dword [ebx + 0x14]
mov eax, 0xfa0
cmp ecx, eax
ja 0x454b78
cmp dword [ebx + 0x18], eax
jbe 0x454bda
test ecx, ecx
je 0x454b99
push ecx
mov eax, edi
sub eax, esi
push str.p_up_u
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043b44e
add esp, 0x10
add esi, eax
mov eax, dword [ebx + 0x18]
test eax, eax
je 0x454bbd
push eax
mov eax, edi
sub eax, esi
push str.p_down_u
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043b44e
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.0043b44e
add esp, 0x10
add esi, eax
mov eax, dword [0x4c680c]
mov ecx, dword [0x4c6810]
mov edx, eax
or edx, ecx
je 0x454c09
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.0043b44e
add esp, 0x14
add esi, eax
mov eax, dword [0x4c6814]
mov ecx, dword [0x4c6818]
mov edx, eax
or edx, ecx
je 0x454c38
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.0043b44e
add esp, 0x14
add esi, eax
mov eax, dword [0x4c6148]
test eax, eax
je 0x454c5e
push eax
mov eax, edi
sub eax, esi
push str.m_up_d
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043b44e
add esp, 0x10
add esi, eax
mov eax, dword [0x4c6144]
test eax, eax
je 0x454c84
push eax
mov eax, edi
sub eax, esi
push str.m_down_d
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043b44e
add esp, 0x10
add esi, eax
mov eax, dword [0x4c09e8]
test eax, eax
je 0x454caa
push eax
mov eax, edi
sub eax, esi
push str.m_utpq_d
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043b44e
add esp, 0x10
add esi, eax
mov eax, dword [0x4c0a10]
mov ecx, dword [0x4c0a14]
mov edx, eax
or edx, ecx
je 0x454cd9
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.0043b44e
add esp, 0x14
add esi, eax
mov eax, dword [0x4b318c]
test eax, eax
je 0x454cff
push eax
mov eax, edi
sub eax, esi
push str.mts_u
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043b44e
add esp, 0x10
add esi, eax
mov eax, dword [0x4c0a08]
mov ecx, dword [0x4c0a0c]
mov edx, eax
or edx, ecx
je 0x454d2e
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.0043b44e
add esp, 0x14
add esi, eax
mov al, byte [0x4c22f8]
test al, al
je 0x454d57
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.0043b44e
add esp, 0x10
add esi, eax
mov eax, dword [0x4c2fc4]
test eax, eax
je 0x454d7d
push eax
mov eax, edi
sub eax, esi
push str.rsf_d
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043b44e
add esp, 0x10
add esi, eax
mov eax, dword [0x4c2fd0]
test eax, eax
je 0x454da3
push eax
mov eax, edi
sub eax, esi
push str.rsa_d
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043b44e
add esp, 0x10
add esi, eax
mov ax, word [0x4c6a24]
test ax, ax
je 0x454dce
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.0043b44e
add esp, 0x10
add esi, eax
mov ax, word [0x4c6a26]
test ax, ax
je 0x454df9
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.0043b44e
add esp, 0x10
add esi, eax
mov ax, word [0x4c6a28]
test ax, ax
je 0x454e24
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.0043b44e
add esp, 0x10
add esi, eax
mov ax, word [0x4c6a2a]
test ax, ax
je 0x454e4f
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.0043b44e
add esp, 0x10
add esi, eax
mov ax, word [0x4c6a2c]
test ax, ax
je 0x454e7a
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.0043b44e
add esp, 0x10
add esi, eax
mov ax, word [0x4c6a30]
test ax, ax
je 0x454ea5
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.0043b44e
add esp, 0x10
add esi, eax
mov eax, dword [0x4c6848]
test eax, eax
je 0x454ecb
push eax
mov eax, edi
sub eax, esi
push str.tta_d
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043b44e
add esp, 0x10
add esi, eax
mov eax, dword [0x4c684c]
test eax, eax
je 0x454ef1
push eax
mov eax, edi
sub eax, esi
push str.ttd_d
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043b44e
add esp, 0x10
add esi, eax
mov eax, dword [0x4c6850]
test eax, eax
je 0x454f17
push eax
mov eax, edi
sub eax, esi
push str.ttc_d
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043b44e
add esp, 0x10
add esi, eax
mov eax, dword [0x4c6854]
mov ecx, dword [0x4c6858]
mov edx, eax
or edx, ecx
je 0x454f46
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.0043b44e
add esp, 0x14
add esi, eax
mov eax, dword [0x4c685c]
test eax, eax
je 0x454f6c
push eax
mov eax, edi
sub eax, esi
push str.gnc_d
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043b44e
add esp, 0x10
add esi, eax
mov eax, dword [0x4c6860]
test eax, eax
je 0x454f92
push eax
mov eax, edi
sub eax, esi
push str.trc_d
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043b44e
add esp, 0x10
add esi, eax
mov eax, dword [0x4c6864]
test eax, eax
je 0x454fb8
push eax
mov eax, edi
sub eax, esi
push str.prc_d
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043b44e
add esp, 0x10
add esi, eax
mov eax, dword [0x4c6868]
test eax, eax
je 0x454fde
push eax
mov eax, edi
sub eax, esi
push str.pcc_d
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043b44e
add esp, 0x10
add esi, eax
mov eax, dword [0x4c686c]
test eax, eax
je 0x455004
push eax
mov eax, edi
sub eax, esi
push str.flc_d
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043b44e
add esp, 0x10
add esi, eax
mov eax, dword [0x4c6870]
test eax, eax
je 0x45502a
push eax
mov eax, edi
sub eax, esi
push str.spc_d
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043b44e
add esp, 0x10
add esi, eax
mov eax, dword [0x4c6874]
test eax, eax
je 0x455050
push eax
mov eax, edi
sub eax, esi
push str.lgc_d
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043b44e
add esp, 0x10
add esi, eax
mov eax, dword [0x4c6878]
test eax, eax
je 0x455076
push eax
mov eax, edi
sub eax, esi
push str.ac_d
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043b44e
add esp, 0x10
add esi, eax
movzx eax, byte [0x4c61cb]
add eax, eax
mov ecx, eax
push 3
pop eax
sub eax, ecx
movzx ecx, byte [0x4c61c8]
sub eax, ecx
je 0x4550ae
push eax
mov eax, edi
sub eax, esi
push str.ps_d
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043b44e
add esp, 0x10
add esi, eax
mov eax, dword [0x4c687c]
test eax, eax
je 0x4550d4
push eax
mov eax, edi
sub eax, esi
push str.sc_d
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043b44e
add esp, 0x10
add esi, eax
mov eax, dword [0x4c6920]
test eax, eax
je 0x4550fa
push eax
mov eax, edi
sub eax, esi
push str.hc_d
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043b44e
add esp, 0x10
add esi, eax
mov al, byte [0x4c61b8]
test al, al
je 0x455123
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.0043b44e
add esp, 0x10
add esi, eax
call fcn.00470b79
test al, al
je 0x455151
call fcn.00470b79
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.0043b44e
add esp, 0x10
add esi, eax
xor ebx, ebx
cmp word [0x4c30c4], bx
je 0x45517a
push 1
mov eax, edi
sub eax, esi
push str.up_d
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043b44e
add esp, 0x10
add esi, eax
cmp word [0x4c23d8], bx
je 0x4551a1
push 1
mov eax, edi
sub eax, esi
push str.np_d
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043b44e
add esp, 0x10
add esi, eax
mov eax, dword [0x4c09d4]
cmp eax, ebx
je 0x4551c7
push eax
mov eax, edi
sub eax, esi
push str.ot_d
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043b44e
add esp, 0x10
add esi, eax
mov eax, dword [0x4c09d8]
cmp eax, ebx
je 0x4551ed
push eax
mov eax, edi
sub eax, esi
push str.ou_d
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043b44e
add esp, 0x10
add esi, eax
mov eax, dword [0x4c09dc]
cmp eax, ebx
je 0x455213
push eax
mov eax, edi
sub eax, esi
push str.oh_d
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043b44e
add esp, 0x10
add esi, eax
mov eax, dword [0x4c09c8]
cmp eax, ebx
je 0x455239
push eax
mov eax, edi
sub eax, esi
push str.it_d
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043b44e
add esp, 0x10
add esi, eax
mov eax, dword [0x4c09cc]
cmp eax, ebx
je 0x45525f
push eax
mov eax, edi
sub eax, esi
push str.iu_d
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043b44e
add esp, 0x10
add esi, eax
mov eax, dword [0x4c09d0]
cmp eax, ebx
je 0x455285
push eax
mov eax, edi
sub eax, esi
push str.ih_d
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043b44e
add esp, 0x10
add esi, eax
mov eax, dword [0x4c09e0]
cmp eax, ebx
je 0x4552ab
push eax
mov eax, edi
sub eax, esi
push str.ah_u
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043b44e
add esp, 0x10
add esi, eax
mov eax, dword [0x4c09e4]
cmp eax, ebx
je 0x4552d1
push eax
mov eax, edi
sub eax, esi
push str.fh_u
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043b44e
add esp, 0x10
add esi, eax
mov eax, dword [0x4c09bc]
cmp eax, ebx
je 0x4552f7
push eax
mov eax, edi
sub eax, esi
push str.pc_u
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043b44e
add esp, 0x10
add esi, eax
mov eax, dword [0x4c09c0]
cmp eax, ebx
je 0x45531d
push eax
mov eax, edi
sub eax, esi
push str.pr_u
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043b44e
add esp, 0x10
add esi, eax
mov eax, dword [0x4c09c4]
cmp eax, ebx
je 0x455343
push eax
mov eax, edi
sub eax, esi
push str.pd_u
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043b44e
add esp, 0x10
add esi, eax
mov eax, dword [0x4c2834]
cmp eax, ebx
je 0x455369
push eax
mov eax, edi
sub eax, esi
push str.ul_u
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043b44e
add esp, 0x10
add esi, eax
mov eax, dword [0x4c2840]
cmp eax, ebx
je 0x45538f
push eax
mov eax, edi
sub eax, esi
push str.dl_u
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043b44e
add esp, 0x10
add esi, eax
mov eax, dword [ebp - 0x2c]
xor ecx, ecx
sub eax, dword [0x4c68f0]
sbb ecx, dword [0x4c68f4]
add eax, dword [0x4c68a0]
adc ecx, dword [0x4c68a4]
push ecx
push eax
mov eax, dword [ebp - 0x30]
xor ecx, ecx
sub eax, dword [0x4c68e8]
sbb ecx, dword [0x4c68ec]
add eax, dword [0x4c6898]
adc ecx, dword [0x4c689c]
push ecx
push eax
mov eax, dword [ebp - 0x34]
xor ecx, ecx
sub eax, dword [0x4c68e0]
sbb ecx, dword [0x4c68e4]
add eax, dword [0x4c6890]
adc ecx, dword [0x4c6894]
push ecx
push eax
mov eax, dword [ebp - 0x38]
xor ecx, ecx
sub eax, dword [0x4c68d8]
sbb ecx, dword [0x4c68dc]
add eax, dword [0x4c6888]
adc ecx, dword [0x4c688c]
push ecx
push eax
mov eax, dword [ebp - 0x3c]
xor ecx, ecx
sub eax, dword [0x4c68d0]
sbb ecx, dword [0x4c68d4]
add eax, dword [0x4c6880]
adc ecx, dword [0x4c6884]
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.0043b44e
xor ecx, ecx
add esi, eax
mov eax, dword [ebp - 0x40]
sub eax, dword [0x4c6918]
sbb ecx, dword [0x4c691c]
add eax, dword [0x4c68c8]
adc ecx, dword [0x4c68cc]
push ecx
push eax
mov eax, dword [ebp - 0x44]
xor ecx, ecx
sub eax, dword [0x4c6910]
sbb ecx, dword [0x4c6914]
add eax, dword [0x4c68c0]
adc ecx, dword [0x4c68c4]
push ecx
push eax
mov eax, dword [ebp - 0x48]
xor ecx, ecx
sub eax, dword [0x4c6908]
sbb ecx, dword [0x4c690c]
add eax, dword [0x4c68b8]
adc ecx, dword [0x4c68bc]
push ecx
push eax
mov eax, dword [ebp - 0x4c]
xor ecx, ecx
sub eax, dword [0x4c6900]
sbb ecx, dword [0x4c6904]
add eax, dword [0x4c68b0]
adc ecx, dword [0x4c68b4]
push ecx
push eax
mov eax, dword [ebp - 0x50]
xor ecx, ecx
sub eax, dword [0x4c68f8]
sbb ecx, dword [0x4c68fc]
add eax, dword [0x4c68a8]
adc ecx, dword [0x4c68ac]
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.0043b44e
add esp, 0x68
lea ecx, [ebp - 0x10]
add esi, eax
call fcn.0041554c
mov eax, dword [ebp - 0x10]
cmp eax, ebx
jne 0x45550e
mov eax, 0x48e143
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 0x45552a
xor eax, eax
jmp 0x455536
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x45552d
sub eax, edx
add esi, eax
mov eax, dword [0x4c2870]
cmp eax, ebx
je 0x455570
mov eax, dword [eax*4 + 0x4b49b4]
xor ecx, ecx
cmp eax, ebx
setne cl
cmp ecx, ebx
je 0x455570
push eax
mov eax, edi
sub eax, esi
push str.pt_s
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043b44e
add esp, 0x10
add esi, eax
call fcn.004724be
or eax, edx
je 0x45559c
call fcn.004724be
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.0043b44e
add esp, 0x14
add esi, eax
xor cl, cl
call fcn.004611da
test al, al
je 0x4555ce
xor cl, cl
call fcn.004611da
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.0043b44e
add esp, 0x10
add esi, eax
call fcn.0045e9ca
test al, al
je 0x4555e3
call fcn.0045eb59
test al, al
je 0x4555e3
xor ebx, ebx
inc ebx
call fcn.0045ea13
movzx eax, al
add eax, eax
or eax, ebx
je 0x455633
call fcn.0045e9ca
test al, al
je 0x455608
call fcn.0045eb59
test al, al
je 0x455608
xor ebx, ebx
inc ebx
jmp 0x45560a
xor ebx, ebx
call fcn.0045ea13
movzx eax, al
add eax, eax
or eax, ebx
push eax
mov eax, edi
sub eax, esi
push str.tb_d
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043b44e
add esp, 0x10
add esi, eax
mov ecx, dword [0x4c0910]
test ecx, ecx
je 0x455644
call fcn.00402f35
jmp 0x455646
xor eax, eax
test eax, eax
je 0x45566c
cmp byte [eax], 0
je 0x45566c
push eax
mov eax, edi
sub eax, esi
push str.ap_s
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043b44e
add esp, 0x10
add esi, eax
mov eax, dword [0x4c0910]
test eax, eax
je 0x45567a
mov eax, dword [eax + 0x38]
jmp 0x45567f
mov eax, dword [0x4c0a90]
dec eax
je 0x45569f
push eax
mov eax, edi
sub eax, esi
push str.at_d
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043b44e
add esp, 0x10
add esi, eax
cmp dword [ebp - 4], 0
je 0x4556c4
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.0043b44e
add esp, 0x10
add esi, eax
mov eax, dword [0x4c6944]
test eax, eax
je 0x4556ea
push eax
mov eax, edi
sub eax, esi
push str.xai_d
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043b44e
add esp, 0x10
add esi, eax
mov eax, dword [0x4c0a1c]
test eax, eax
je 0x455710
push eax
mov eax, edi
sub eax, esi
push str.rfn_U
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043b44e
add esp, 0x10
add esi, eax
mov eax, dword [0x4c0a20]
test eax, eax
je 0x455736
push eax
mov eax, edi
sub eax, esi
push str.rmf_U
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043b44e
add esp, 0x10
add esi, eax
mov eax, dword [0x4c0a24]
test eax, eax
je 0x45575c
push eax
mov eax, edi
sub eax, esi
push str.rnm_U
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043b44e
add esp, 0x10
add esi, eax
mov eax, dword [0x4c0a28]
test eax, eax
je 0x455782
push eax
mov eax, edi
sub eax, esi
push str.rnu_U
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043b44e
add esp, 0x10
add esi, eax
call fcn.00444e5c
test al, al
je 0x4557b4
call fcn.00444e5c
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.0043b44e
add esp, 0x10
add esi, eax
mov al, byte [0x4c0a2c]
test al, al
je 0x4557dd
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.0043b44e
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.004570a9
test al, al
je 0x45581b
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.0043b44e
add esp, 0x10
add esi, eax
mov eax, dword [0x4c63c8]
push 0x1c
xor edx, edx
pop ecx
div ecx
mov ebx, eax
test ebx, ebx
je 0x45584a
push ebx
mov eax, edi
sub eax, esi
push str.hn_d
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043b44e
add esp, 0x10
add esi, eax
add ebx, 0xfffffffe
cmp ebx, 3
ja 0x455883
push 5
pop ecx
call fcn.00453836
test eax, eax
je 0x455883
push 5
pop ecx
call fcn.00453836
push eax
mov eax, edi
sub eax, esi
push str.hh_s
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043b44e
add esp, 0x10
add esi, eax
cmp byte [0x4c61d3], 0
mov eax, dword [0x4c6934]
je 0x455894
or eax, 1
test eax, eax
je 0x4558b5
push eax
mov eax, edi
sub eax, esi
push str.xsm_d
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043b44e
add esp, 0x10
add esi, eax
call fcn.004445e9
test eax, eax
je 0x4558e0
call fcn.004445e9
push eax
mov eax, edi
sub eax, esi
push str.xsss_d
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043b44e
add esp, 0x10
add esi, eax
mov eax, dword [0x4c693c]
test eax, eax
je 0x455906
push eax
mov eax, edi
sub eax, esi
push str.xrsb_d
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043b44e
add esp, 0x10
add esi, eax
call fcn.004445e9
add eax, dword [0x4c681c]
je 0x455930
push eax
mov eax, edi
sub eax, esi
push str.xrtsb_d
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043b44e
add esp, 0x10
add esi, eax
inc dword [0x4c6940]
je 0x45595a
push dword [0x4c6940]
mov eax, edi
sub eax, esi
push str.xseq_d
push eax
lea eax, [ebp + esi - 0x878]
push eax
call fcn.0043b44e
add esp, 0x10
add esi, eax
mov eax, dword [0x4c6948]
mov ecx, dword [0x4c694c]
mov edx, eax
or edx, ecx
je 0x455989
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.0043b44e
add esp, 0x14
add esi, eax
mov eax, dword [0x4c6950]
test eax, eax
je 0x4559ab
push eax
push str.avie_d
sub edi, esi
lea eax, [ebp + esi - 0x878]
push edi
push eax
call fcn.0043b44e
add esp, 0x10
cmp byte [ebp - 0xc], 0
je 0x4559b9
mov ecx, dword [ebp - 0x10]
call fcn.004433ab
call fcn.00428703
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 0x4559df
push 0x4536af
jmp 0x4559e4
push 0x4536a3
call fcn.00421cd8
call fcn.00428714
mov ecx, dword [ebp - 0x1c]
call fcn.004433ab
mov al, 1
lea esp, [ebp - 0x884]
pop edi
pop esi
pop ebx
leave
ret 8