Function at 0x423a10
Capabilities:
Get thread local storage value
Resolve function by parsing pe exports
Set thread local storage value

Disassembly:
push 0xffffffffffffffff
push 0x4ab720
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xc4
push ebx
push ebp
mov ebp, ecx
xor ebx, ebx
push esi
xor esi, esi
mov dword [ebp], ebx
mov eax, dword [0x4eb358]
cmp eax, 0xffffffff
push edi
mov dword [esp + 0x38], ebp
je 0x423aec
push eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov esi, eax
cmp esi, ebx
jne 0x423aec
push 0xb8
call fcn.0048b346
add esp, 4
mov dword [esp + 0x14], eax
cmp eax, ebx
mov dword [esp + 0xdc], ebx
je 0x423a82
mov ecx, eax
call fcn.00418520
mov esi, eax
jmp 0x423a84
xor esi, esi
mov eax, dword [0x4eb358]
push esi
push eax
mov dword [esp + 0xe4], 0xffffffff
call dword [sym.imp.KERNEL32.dll_TlsSetValue]
cmp eax, ebx
jne 0x423ab9
call dword [sym.imp.KERNEL32.dll_GetLastError]
lea ecx, [esp + 0x1c]
push 0x4cb060
push ecx
mov dword [esp + 0x24], eax
call fcn.00472a64
push 8
call fcn.0048b346
add esp, 4
mov edi, eax
push 0x4eb360
mov dword [edi], esi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov edx, dword [0x4eb35c]
push 0x4eb360
mov dword [edi + 4], edx
mov dword [0x4eb35c], edi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
inc dword [esi + 4]
mov edi, dword [esp + 0xe4]
mov dword [esp + 0xdc], 1
cmp edi, ebx
jne 0x423be3
mov dword [ebp], 5
mov eax, dword [0x4eb358]
xor edi, edi
cmp eax, 0xffffffff
mov dword [esp + 0xdc], 0xffffffff
je 0x423d9c
push eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov edi, eax
cmp edi, ebx
jne 0x423d9c
push 0xb8
call fcn.0048b346
add esp, 4
mov dword [esp + 0x14], eax
cmp eax, ebx
mov dword [esp + 0xdc], 2
je 0x423b67
mov ecx, eax
call fcn.00418520
mov edi, eax
jmp 0x423b69
xor edi, edi
mov eax, dword [0x4eb358]
push edi
push eax
mov dword [esp + 0xe4], 0xffffffff
call dword [sym.imp.KERNEL32.dll_TlsSetValue]
cmp eax, ebx
jne 0x423d69
call dword [sym.imp.KERNEL32.dll_GetLastError]
lea ecx, [esp + 0x1c]
push 0x4cb060
push ecx
mov dword [esp + 0x24], eax
call fcn.00472a64
push 8
call fcn.0048b346
add esp, 4
mov esi, eax
push 0x4eb360
mov dword [esi], edi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov edx, dword [0x4eb35c]
push 0x4eb360
mov dword [esi + 4], edx
mov dword [0x4eb35c], esi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [edi + 4]
dec eax
mov dword [edi + 4], eax
xor eax, eax
jmp 0x4245ee
mov eax, dword [esp + 0xe8]
cmp edi, eax
jne 0x423ccc
mov dword [ebp], 5
mov eax, dword [0x4eb358]
xor edi, edi
cmp eax, 0xffffffff
mov dword [esp + 0xdc], 0xffffffff
je 0x423d9c
push eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov edi, eax
cmp edi, ebx
jne 0x423d9c
push 0xb8
call fcn.0048b346
add esp, 4
mov dword [esp + 0x14], eax
cmp eax, ebx
mov dword [esp + 0xdc], 3
je 0x423c50
mov ecx, eax
call fcn.00418520
mov edi, eax
jmp 0x423c52
xor edi, edi
mov eax, dword [0x4eb358]
push edi
push eax
mov dword [esp + 0xe4], 0xffffffff
call dword [sym.imp.KERNEL32.dll_TlsSetValue]
cmp eax, ebx
jne 0x423d69
call dword [sym.imp.KERNEL32.dll_GetLastError]
lea ecx, [esp + 0x1c]
push 0x4cb060
push ecx
mov dword [esp + 0x24], eax
call fcn.00472a64
push 8
call fcn.0048b346
add esp, 4
mov esi, eax
push 0x4eb360
mov dword [esi], edi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov edx, dword [0x4eb35c]
push 0x4eb360
mov dword [esi + 4], edx
mov dword [0x4eb35c], esi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [edi + 4]
dec eax
mov dword [edi + 4], eax
xor eax, eax
jmp 0x4245ee
cmp eax, ebx
jne 0x423daa
mov dword [ebp], 5
mov eax, dword [0x4eb358]
xor edi, edi
cmp eax, 0xffffffff
mov dword [esp + 0xdc], 0xffffffff
je 0x423d9c
push eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov edi, eax
cmp edi, ebx
jne 0x423d9c
push 0xb8
call fcn.0048b346
add esp, 4
mov dword [esp + 0x14], eax
cmp eax, ebx
mov dword [esp + 0xdc], 4
je 0x423d32
mov ecx, eax
call fcn.00418520
mov edi, eax
jmp 0x423d34
xor edi, edi
mov eax, dword [0x4eb358]
push edi
push eax
mov dword [esp + 0xe4], 0xffffffff
call dword [sym.imp.KERNEL32.dll_TlsSetValue]
cmp eax, ebx
jne 0x423d69
call dword [sym.imp.KERNEL32.dll_GetLastError]
lea ecx, [esp + 0x1c]
push 0x4cb060
push ecx
mov dword [esp + 0x24], eax
call fcn.00472a64
push 8
call fcn.0048b346
add esp, 4
mov esi, eax
push 0x4eb360
mov dword [esi], edi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov edx, dword [0x4eb35c]
push 0x4eb360
mov dword [esi + 4], edx
mov dword [0x4eb35c], esi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [edi + 4]
dec eax
mov dword [edi + 4], eax
xor eax, eax
jmp 0x4245ee
mov eax, dword [esp + 0xec]
lea eax, [eax + eax*2]
mov dword [esp + 0xbc], eax
mov eax, dword [esp + 0xf4]
cmp eax, 0x64
jl 0x423dcc
mov eax, 0x64
xor ecx, ecx
cmp eax, ebx
setle cl
dec ecx
and ecx, eax
mov eax, dword [esp + 0xf8]
mov dword [esp + 0xf4], ecx
cmp eax, ebx
fild dword [esp + 0xf4]
jne 0x423df7
fmul qword [0x4b0950]
jmp 0x423dfd
fmul qword [0x4b0958]
mov eax, dword [esp + 0xf0]
xor ebp, ebp
fstp qword [esp + 0x24]
cmp eax, ebx
mov dword [esp + 0x30], ebp
jbe 0x42442d
jmp 0x423e1f
mov edi, dword [esp + 0xe4]
mov edx, dword [esp + 0xbc]
mov eax, ebp
imul eax, edx
mov ebx, dword [esp + 0xec]
lea ecx, [ebp - 1]
lea esi, [ebp + 1]
imul ecx, edx
mov dword [esp + 0x14], esi
imul edx, esi
xor esi, esi
mov dword [esp + 0xcc], eax
test ebx, ebx
jbe 0x4241c1
lea ebx, [ecx + edi]
lea ecx, [eax + edi]
add edx, edi
mov dword [esp + 0xc4], ebx
mov dword [esp + 0xb8], ecx
mov dword [esp + 0x34], edx
jmp 0x423e7d
mov eax, dword [esp + 0xcc]
mov ebx, dword [esp + 0xc4]
mov ebp, dword [esp + 0xe8]
lea edx, [esi + esi*2]
add eax, edx
lea ecx, [esi + esi*2 - 3]
add ebp, eax
lea edi, [esi + esi*2 + 3]
mov dword [esp + 0x3c], ebp
mov ebp, dword [esp + 0xe8]
lea ebp, [eax + ebp + 1]
mov dword [esp + 0x40], ebp
mov ebp, dword [esp + 0xe8]
lea ebp, [eax + ebp + 2]
mov dword [esp + 0x44], ebp
lea ebp, [ecx + ebx]
mov dword [esp + 0x94], ebp
inc ebp
mov dword [esp + 0x4c], ebp
inc ebp
mov dword [esp + 0x70], ebp
lea ebp, [edx + ebx]
mov dword [esp + 0x98], ebp
inc ebp
add ebx, edi
mov dword [esp + 0x50], ebp
inc ebp
mov dword [esp + 0x9c], ebx
inc ebx
mov dword [esp + 0x74], ebp
mov dword [esp + 0x54], ebx
inc ebx
mov dword [esp + 0x78], ebx
mov ebx, dword [esp + 0xb8]
add ebx, ecx
mov dword [esp + 0xa0], ebx
inc ebx
mov dword [esp + 0x58], ebx
inc ebx
mov dword [esp + 0x7c], ebx
mov ebx, dword [esp + 0xe4]
add eax, ebx
mov dword [esp + 0xa4], eax
lea ebp, [eax + 1]
mov dword [esp + 0x5c], ebp
lea ebx, [ebp + 1]
mov dword [esp + 0x80], ebx
mov ebx, dword [esp + 0xb8]
add ebx, edi
mov dword [esp + 0xa8], ebx
inc ebx
mov dword [esp + 0x60], ebx
inc ebx
mov dword [esp + 0x84], ebx
mov ebx, dword [esp + 0x34]
add ecx, ebx
add edx, ebx
mov dword [esp + 0xac], ecx
inc ecx
mov dword [esp + 0x64], ecx
inc ecx
mov dword [esp + 0x88], ecx
lea ecx, [edx + 1]
add edi, ebx
mov dword [esp + 0x68], ecx
inc ecx
mov dword [esp + 0xb4], edi
inc edi
mov dword [esp + 0xb0], edx
mov dword [esp + 0x6c], edi
inc edi
mov dword [esp + 0x90], edi
mov edi, dword [esp + 0x30]
test edi, edi
mov dword [esp + 0x8c], ecx
jne 0x423fef
mov edi, dword [esp + 0xa0]
mov ebx, dword [esp + 0xa8]
mov dword [esp + 0x94], edi
mov edi, dword [esp + 0x58]
mov dword [esp + 0x4c], edi
mov edi, dword [esp + 0x7c]
mov dword [esp + 0x9c], ebx
mov ebx, dword [esp + 0x60]
mov dword [esp + 0x70], edi
mov edi, dword [esp + 0x80]
mov dword [esp + 0x54], ebx
mov ebx, dword [esp + 0x84]
mov dword [esp + 0x98], eax
mov dword [esp + 0x50], ebp
mov dword [esp + 0x74], edi
mov dword [esp + 0x78], ebx
jmp 0x423ff6
mov edi, dword [esp + 0x80]
test esi, esi
jne 0x42403d
mov ebx, dword [esp + 0x98]
mov dword [esp + 0xa0], eax
mov dword [esp + 0x94], ebx
mov ebx, dword [esp + 0x50]
mov dword [esp + 0x4c], ebx
mov ebx, dword [esp + 0x74]
mov dword [esp + 0x70], ebx
mov ebx, dword [esp + 0x68]
mov dword [esp + 0x58], ebp
mov dword [esp + 0x7c], edi
mov dword [esp + 0xac], edx
mov dword [esp + 0x64], ebx
mov dword [esp + 0x88], ecx
mov ebx, dword [esp + 0xf0]
dec ebx
cmp dword [esp + 0x30], ebx
jne 0x4240a6
mov edx, dword [esp + 0xa0]
mov ebx, dword [esp + 0xa8]
mov ecx, dword [esp + 0x58]
mov dword [esp + 0xac], edx
mov edx, dword [esp + 0x7c]
mov dword [esp + 0xb4], ebx
mov ebx, dword [esp + 0x60]
mov dword [esp + 0x64], ecx
mov dword [esp + 0x88], edx
mov dword [esp + 0x6c], ebx
mov ebx, dword [esp + 0x84]
mov edx, eax
mov ecx, edi
mov dword [esp + 0xb0], edx
mov dword [esp + 0x68], ebp
mov dword [esp + 0x8c], ecx
mov dword [esp + 0x90], ebx
mov ebx, dword [esp + 0xec]
dec ebx
cmp esi, ebx
jne 0x4240f8
mov ebx, dword [esp + 0x98]
mov dword [esp + 0xa8], eax
mov eax, dword [esp + 0x68]
mov dword [esp + 0x9c], ebx
mov ebx, dword [esp + 0x50]
mov dword [esp + 0x60], ebp
mov dword [esp + 0x54], ebx
mov ebx, dword [esp + 0x74]
mov dword [esp + 0x78], ebx
mov dword [esp + 0x84], edi
mov dword [esp + 0xb4], edx
mov dword [esp + 0x6c], eax
mov dword [esp + 0x90], ecx
mov eax, dword [esp + 0xf8]
xor ebx, ebx
cmp eax, ebx
jne 0x42413e
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x44]
push ecx
mov ecx, dword [esp + 0x44]
push edx
mov edx, dword [esp + 0x44]
push eax
push ecx
lea eax, [esp + 0x80]
push edx
lea ecx, [esp + 0x60]
push eax
lea edx, [esp + 0xac]
push ecx
mov ecx, dword [esp + 0x54]
push edx
call fcn.004247d0
jmp 0x4241ab
cmp eax, 1
jne 0x42417c
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x44]
push eax
mov eax, dword [esp + 0x44]
push ecx
mov ecx, dword [esp + 0x44]
push edx
push eax
lea edx, [esp + 0x80]
push ecx
lea eax, [esp + 0x60]
push edx
lea ecx, [esp + 0xac]
push eax
push ecx
mov ecx, dword [esp + 0x58]
call fcn.00424a10
jmp 0x4241ab
cmp eax, 2
jne 0x4241ab
mov edx, dword [esp + 0x44]
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x3c]
push edx
push eax
lea edx, [esp + 0x78]
push ecx
lea eax, [esp + 0x58]
push edx
lea ecx, [esp + 0xa4]
push eax
push ecx
mov ecx, dword [esp + 0x50]
call fcn.00424bd0
mov eax, dword [esp + 0xec]
inc esi
cmp esi, eax
jb 0x423e6f
mov ebp, dword [esp + 0x30]
jmp 0x4241c3
xor ebx, ebx
mov eax, dword [0x4eb358]
xor edi, edi
cmp eax, 0xffffffff
je 0x42427a
push eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov edi, eax
cmp edi, ebx
jne 0x42427a
push 0xb8
call fcn.0048b346
add esp, 4
mov dword [esp + 0x34], eax
cmp eax, ebx
mov byte [esp + 0xdc], 5
je 0x42420c
mov ecx, eax
call fcn.00418520
mov edi, eax
jmp 0x42420e
xor edi, edi
mov edx, dword [0x4eb358]
push edi
push edx
mov byte [esp + 0xe4], 1
call dword [sym.imp.KERNEL32.dll_TlsSetValue]
cmp eax, ebx
jne 0x424247
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [esp + 0xc0], eax
lea eax, [esp + 0xc0]
push 0x4cb060
push eax
call fcn.00472a64
push 8
call fcn.0048b346
add esp, 4
mov esi, eax
push 0x4eb360
mov dword [esi], edi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ecx, dword [0x4eb35c]
push 0x4eb360
mov dword [esi + 4], ecx
mov dword [0x4eb35c], esi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
cmp dword [edi + 4], 1
jne 0x42440c
mov eax, dword [0x4eb358]
xor edi, edi
cmp eax, 0xffffffff
je 0x42433b
push eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov edi, eax
cmp edi, ebx
jne 0x42433b
push 0xb8
call fcn.0048b346
add esp, 4
mov dword [esp + 0x34], eax
cmp eax, ebx
mov byte [esp + 0xdc], 6
je 0x4242cd
mov ecx, eax
call fcn.00418520
mov edi, eax
jmp 0x4242cf
xor edi, edi
mov edx, dword [0x4eb358]
push edi
push edx
mov byte [esp + 0xe4], 1
call dword [sym.imp.KERNEL32.dll_TlsSetValue]
cmp eax, ebx
jne 0x424308
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [esp + 0xc8], eax
lea eax, [esp + 0xc8]
push 0x4cb060
push eax
call fcn.00472a64
push 8
call fcn.0048b346
add esp, 4
mov esi, eax
push 0x4eb360
mov dword [esi], edi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ecx, dword [0x4eb35c]
push 0x4eb360
mov dword [esi + 4], ecx
mov dword [0x4eb35c], esi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
cmp dword [edi], ebx
je 0x42440c
mov eax, dword [0x4eb358]
xor edi, edi
cmp eax, 0xffffffff
je 0x4243fa
push eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov edi, eax
cmp edi, ebx
jne 0x4243fa
push 0xb8
call fcn.0048b346
add esp, 4
mov dword [esp + 0x34], eax
cmp eax, ebx
mov byte [esp + 0xdc], 7
je 0x42438c
mov ecx, eax
call fcn.00418520
mov edi, eax
jmp 0x42438e
xor edi, edi
mov edx, dword [0x4eb358]
push edi
push edx
mov byte [esp + 0xe4], 1
call dword [sym.imp.KERNEL32.dll_TlsSetValue]
cmp eax, ebx
jne 0x4243c7
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [esp + 0xd0], eax
lea eax, [esp + 0xd0]
push 0x4cb060
push eax
call fcn.00472a64
push 8
call fcn.0048b346
add esp, 4
mov esi, eax
push 0x4eb360
mov dword [esi], edi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ecx, dword [0x4eb35c]
push 0x4eb360
mov dword [esi + 4], ecx
mov dword [0x4eb35c], esi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov edx, dword [esp + 0xf0]
push edx
push ebp
call dword [edi]
neg eax
sbb eax, eax
inc eax
jmp 0x42440e
xor eax, eax
cmp eax, ebx
jne 0x424609
mov ebp, dword [esp + 0x14]
mov eax, dword [esp + 0xf0]
cmp ebp, eax
mov dword [esp + 0x30], ebp
jb 0x423e18
mov eax, dword [0x4eb358]
xor esi, esi
cmp eax, 0xffffffff
mov dword [esp + 0xdc], 0xffffffff
je 0x4245e0
push eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov esi, eax
cmp esi, ebx
jne 0x4245e0
push 0xb8
call fcn.0048b346
mov esi, eax
add esp, 4
mov dword [esp + 0x14], esi
cmp esi, ebx
mov dword [esp + 0xdc], 0xc
je 0x42456f
mov al, byte [esp + 0x13]
mov dword [esi + 0x38], ebx
mov byte [esi + 0x34], al
mov dword [esi + 0x3c], ebx
mov dword [esi + 0x40], ebx
lea ecx, [esp + 0x13]
mov byte [esp + 0xdc], 0xd
push ecx
lea ecx, [esi + 0x44]
call fcn.00418660
lea edx, [esp + 0x1b]
lea ecx, [esi + 0x88]
push edx
mov byte [esp + 0xe0], 0xe
call fcn.00418660
lea eax, [esp + 0x23]
lea ecx, [esi + 0x98]
push eax
mov byte [esp + 0xe0], 0xf
call fcn.00418660
mov byte [esp + 0x24], bl
mov word [esp + 0x26], bx
mov edx, dword [esp + 0x24]
lea ecx, [esi + 0x28]
mov word [esp + 0x28], bx
mov word [esp + 0x2a], bx
mov dword [ecx], edx
mov edx, dword [esp + 0x28]
mov ebp, 1
xor ax, ax
mov dword [ecx + 4], edx
mov dword [esi + 0x20], 0x33333333
mov dword [esi], ebx
mov dword [esi + 4], ebx
mov dword [esi + 8], ebp
mov dword [esi + 0xc], ebp
mov dword [esi + 0x10], ebx
mov dword [esi + 0x14], ebp
mov dword [esi + 0x18], ebp
mov dword [esi + 0x1c], ebx
mov dword [esi + 0x24], 0x40073333
mov word [ecx + 8], ax
mov dword [esi + 0x54], ebp
mov dword [esi + 0x58], ebp
mov dword [esi + 0x5c], ebp
mov dword [esi + 0x60], ebp
mov dword [esi + 0x64], ebp
mov dword [esi + 0x68], ebp
mov dword [esi + 0x6c], ebx
mov dword [esi + 0x70], ebp
mov dword [esi + 0x74], ebp
mov dword [esi + 0x78], ebx
mov dword [esi + 0x7c], ebp
mov dword [esi + 0x80], ebp
mov dword [esi + 0x84], ebx
mov dword [esi + 0xa8], ebx
mov dword [esi + 0xac], ebx
mov byte [esi + 0xb0], bl
mov dword [esi + 0xb4], ebx
jmp 0x424576
xor esi, esi
mov ebp, 1
mov eax, dword [0x4eb358]
push esi
push eax
mov dword [esp + 0xe4], 0xffffffff
call dword [sym.imp.KERNEL32.dll_TlsSetValue]
cmp eax, ebx
jne 0x4245ab
call dword [sym.imp.KERNEL32.dll_GetLastError]
lea ecx, [esp + 0x14]
push 0x4cb060
push ecx
mov dword [esp + 0x1c], eax
call fcn.00472a64
push 8
call fcn.0048b346
add esp, 4
mov edi, eax
push 0x4eb360
mov dword [edi], esi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov edx, dword [0x4eb35c]
push 0x4eb360
mov dword [edi + 4], edx
mov dword [0x4eb35c], edi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x4245e5
mov ebp, 1
mov eax, dword [esi + 4]
dec eax
mov dword [esi + 4], eax
mov eax, ebp
mov ecx, dword [esp + 0xd4]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0xd0
ret 0x18
mov eax, dword [esp + 0x38]
or edi, 0xffffffff
xor esi, esi
mov dword [esp + 0xdc], edi
mov dword [eax], 0xe
mov eax, dword [0x4eb358]
cmp eax, edi
je 0x4247b6
push eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov esi, eax
cmp esi, ebx
jne 0x4247b6
push 0xb8
call fcn.0048b346
mov esi, eax
add esp, 4
mov dword [esp + 0x14], esi
cmp esi, ebx
mov dword [esp + 0xdc], 8
je 0x424750
lea ecx, [esp + 0x4b]
push ecx
lea ecx, [esi + 0x34]
call fcn.00418660
lea edx, [esp + 0x23]
lea ecx, [esi + 0x44]
push edx
mov byte [esp + 0xe0], 9
call fcn.00418660
lea eax, [esp + 0x1b]
lea ecx, [esi + 0x88]
push eax
mov byte [esp + 0xe0], 0xa
call fcn.00418660
lea ecx, [esp + 0x13]
mov byte [esp + 0xdc], 0xb
push ecx
lea ecx, [esi + 0x98]
call fcn.00418660
mov byte [esp + 0x24], bl
mov word [esp + 0x26], bx
mov ebp, dword [esp + 0x24]
lea edx, [esi + 0x28]
mov word [esp + 0x28], bx
mov word [esp + 0x2a], bx
mov dword [edx], ebp
mov ebp, dword [esp + 0x28]
mov ecx, 1
xor ax, ax
mov dword [edx + 4], ebp
mov dword [esi + 0x20], 0x33333333
mov dword [esi], ebx
mov dword [esi + 4], ebx
mov dword [esi + 8], ecx
mov dword [esi + 0xc], ecx
mov dword [esi + 0x10], ebx
mov dword [esi + 0x14], ecx
mov dword [esi + 0x18], ecx
mov dword [esi + 0x1c], ebx
mov dword [esi + 0x24], 0x40073333
mov word [edx + 8], ax
mov dword [esi + 0x54], ecx
mov dword [esi + 0x58], ecx
mov dword [esi + 0x5c], ecx
mov dword [esi + 0x60], ecx
mov dword [esi + 0x64], ecx
mov dword [esi + 0x68], ecx
mov dword [esi + 0x6c], ebx
mov dword [esi + 0x70], ecx
mov dword [esi + 0x74], ecx
mov dword [esi + 0x78], ebx
mov dword [esi + 0x7c], ecx
mov dword [esi + 0x80], ecx
mov dword [esi + 0x84], ebx
mov dword [esi + 0xa8], ebx
mov dword [esi + 0xac], ebx
mov byte [esi + 0xb0], bl
mov dword [esi + 0xb4], ebx
jmp 0x424752
xor esi, esi
mov eax, dword [0x4eb358]
push esi
push eax
mov dword [esp + 0xe4], edi
call dword [sym.imp.KERNEL32.dll_TlsSetValue]
cmp eax, ebx
jne 0x424783
call dword [sym.imp.KERNEL32.dll_GetLastError]
lea ecx, [esp + 0x14]
push 0x4cb060
push ecx
mov dword [esp + 0x1c], eax
call fcn.00472a64
push 8
call fcn.0048b346
add esp, 4
mov edi, eax
push 0x4eb360
mov dword [edi], esi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov edx, dword [0x4eb35c]
push 0x4eb360
mov dword [edi + 4], edx
mov dword [0x4eb35c], edi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esi + 4]
dec eax
mov dword [esi + 4], eax
xor eax, eax
jmp 0x4245ee