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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov eax, 0x206c
call fcn.1009d950
push ebx
push esi
mov esi, ecx
mov ebx, edx
mov eax, 1
mov dword [esp + 0x24], ebx
push edi
mov word [esi], ax
mov dword [esi + 4], 0
mov dword [esi + 8], 0
mov dword [esi + 0xc], 0
mov dword [esi + 0x18380], 0xffffffff
mov dword [esi + 0x1b418], 0
mov dword [esi + 0x1b41c], 0
mov dword [esi + 0x28], 0
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 0
mov dword [esi + 0x20], 0
mov dword [esi + 0x2c], 0
mov dword [esi + 0x30], 0
mov dword [esi + 0x34], 0
mov dword [esi + 0x38], 0
mov dword [esi + 0x3c], 0
mov dword [esi + 0x50], 0
mov dword [esi + 0x54], 0
mov dword [esi + 0x70], 0
mov dword [esi + 0x74], 0
mov dword [esi + 0x58], 0
mov dword [esi + 0x5c], 0
mov dword [esi + 0x60], 0
mov dword [esi + 0x68], 0
mov dword [esi + 0x6c], 0
mov dword [esi + 0x78], 0
mov dword [esi + 0x7c], 0
mov dword [esi + 0x7148], 0
mov dword [esi + 0x714c], 0
mov eax, dword [ebx]
sub eax, 8
je 0x10049093
sub eax, 1
je 0x10049093
sub eax, 1
je 0x10049093
mov eax, 0xf000
mov ecx, 0x2800
jmp 0x1004909a
mov eax, 0x2000
mov ecx, eax
mov dword [esi + 0x80], ecx
mov dword [esi + 0x84], eax
mov eax, dword [ebx + 0x3c]
mov dword [esi + 0x7148], eax
mov eax, dword [ebx + 0x40]
mov dword [esi + 0x714c], eax
mov eax, dword [ebx + 0x44]
mov dword [esi + 0x7140], eax
mov eax, dword [ebx + 0x48]
mov dword [esi + 0x7144], eax
mov eax, dword [ebx + 0x4c]
mov dword [esi + 0x1fc04], eax
mov eax, dword [ebx + 0x50]
mov dword [esi + 0x1fc08], eax
mov dword [esi + 0x1fc0c], 0
mov eax, dword [ebx + 0x24]
mov dword [esi + 0x7150], eax
mov eax, dword [ebx + 0x28]
mov dword [esi + 0x7154], eax
cmp dword [ebx], 9
je 0x10049140
mov eax, dword [ebx + 4]
test eax, eax
je 0x1004910f
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
test eax, eax
jne 0x10049140
mov eax, dword [ebx + 0x14]
mov edx, 2
shr eax, 1
and eax, 1
push eax
lea ecx, [edx + 0x6f]
call fcn.1004f5b0
mov edx, eax
mov ecx, 0x2f
call fcn.10044c90
add esp, 4
mov eax, 0x2f
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0x81
lea edi, [esi + 0x82b4]
push 0
push edi
call fcn.1007cff0
mov eax, dword [ebx + 0x20]
add esp, 0xc
test eax, eax
je 0x10049165
push eax
push edi
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
test dword [ebx + 0x14], 0x2000
je 0x10049178
mov ax, word [ebx + 0x90]
mov word [esi], ax
mov eax, dword [ebx + 0x14]
shr eax, 6
and eax, 1
mov dword [esi + 8], eax
mov eax, dword [ebx + 0x14]
and eax, 1
mov dword [esi + 0xc], eax
mov eax, dword [ebx + 0x14]
shr eax, 7
and eax, 1
mov dword [esi + 0x10], eax
mov eax, dword [ebx + 0x14]
shr eax, 9
and eax, 1
mov dword [esi + 0x18], 1
mov dword [esi + 0x14], eax
mov eax, dword [ebx + 0x14]
shr eax, 8
and eax, 1
mov dword [esi + 0x610c], eax
mov ecx, dword [ebx + 0x14]
shr ecx, 0xb
and ecx, 1
mov dword [esi + 0x38], ecx
mov eax, dword [ebx + 0x14]
shr eax, 0xa
and eax, 1
mov dword [esi + 0x1c], eax
test ecx, ecx
je 0x1004920e
cmp dword [ebx + 0x24], 0
jne 0x1004920e
mov eax, dword [ebx + 0x14]
mov edx, 2
shr eax, 1
and eax, 1
push eax
lea ecx, [edx + 0x3c]
call fcn.1004f5b0
mov edx, eax
mov ecx, 0x2f
call fcn.10044c90
add esp, 4
mov eax, 0x2f
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebx + 0x78]
mov ecx, dword [ebx + 0x7c]
mov dword [esi + 0x50], eax
mov dword [esi + 0x54], ecx
mov eax, dword [ebx + 0x80]
mov ecx, dword [ebx + 0x84]
mov dword [esi + 0x58], eax
mov dword [esi + 0x5c], ecx
mov dword [esi + 0x70], 0
mov dword [esi + 0x74], 0
mov eax, dword [ebx + 0x74]
test eax, eax
je 0x10049263
mov dword [esi + 0x60], eax
mov ecx, dword [ebx + 8]
test ecx, ecx
je 0x10049256
mov eax, dword [ecx + 0x14]
add eax, dword [ecx + 0xc]
cmp eax, 1
je 0x1004925c
cmp dword [ebx + 0xc], 0
jl 0x10049263
mov dword [esi + 0x2c], 1
cmp dword [esi + 0x2c], 0
jne 0x1004929b
cmp dword [ebx], 0xa
jne 0x1004929b
mov dword [esi + 0x30], 1
mov dword [esi + 0x60], 0
mov ecx, dword [ebx + 8]
test ecx, ecx
je 0x1004928e
mov eax, dword [ecx + 0x14]
add eax, dword [ecx + 0xc]
cmp eax, 1
je 0x10049294
cmp dword [ebx + 0xc], 0
jl 0x1004929b
mov dword [esi + 0x2c], 1
mov eax, dword [ebx + 4]
lea ecx, [esi + 0x90]
mov dword [esp + 0x14], ecx
test eax, eax
je 0x100492f7
test ecx, ecx
je 0x100492f7
xor edi, edi
cmp word [eax], di
je 0x100492e8
cmp edi, 0x800
jge 0x100492e8
movzx edx, word [eax]
cmp edx, 0x22
je 0x100492d7
mov word [ecx], dx
add eax, 2
add ecx, 2
inc edi
mov dword [esp + 0x14], ecx
jmp 0x100492e2
push eax
call dword [sym.imp.USER32.dll_CharNextW]
mov ecx, dword [esp + 0x14]
cmp word [eax], 0
jne 0x100492b7
xor eax, eax
mov word [ecx], ax
lea ecx, [esi + 0x90]
mov dword [esp + 0x14], ecx
mov edi, dword [sym.imp.KERNEL32.dll_lstrcpyW]
lea eax, [esi + 0x18384]
push ecx
push eax
call edi
push dword [esp + 0x14]
lea eax, [esi + 0x1090]
push eax
call edi
cmp dword [ebx], 9
je 0x10049377
call fcn.10045e20
cmp eax, 0xffffffff
jne 0x10049370
mov eax, dword [ebx + 0x14]
mov edx, 2
shr eax, 1
and eax, 1
push eax
lea ecx, [edx + 0x65]
call fcn.1004f5b0
mov edx, eax
mov ecx, 9
call fcn.10044c90
add esp, 4
push dword [0x100c7608]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
test eax, eax
je 0x10049364
mov dword [eax + 0x28], 0
call fcn.10045da0
mov eax, 9
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov dword [esi + 0x28], 1
mov eax, dword [ebx + 0x2c]
mov dword [esi + 0x7138], eax
mov eax, dword [ebx + 0x30]
mov dword [esi + 0x713c], eax
mov eax, dword [ebx + 0x34]
mov dword [esi + 0x71b4], eax
mov eax, dword [ebx + 0x38]
mov dword [esi + 0x71b8], eax
mov eax, dword [ebx]
dec eax
cmp eax, 0xb
ja case.default.0x100493a7
jmp dword [eax*4 + 0x10049fe4]
mov ecx, esi
mov dword [esi + 0x81bc], 0
call fcn.100471a0
test eax, eax
jne 0x100493d4
lea esi, [eax + 5]
call fcn.1004a1e0
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, ebx
call fcn.10046750
mov esi, eax
call fcn.1004a1e0
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, ebx
call fcn.10047630
mov esi, eax
call fcn.1004a1e0
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp dword [ebx + 0x6c], 0
jne 0x1004941b
mov esi, 0x2f
call fcn.1004a1e0
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, ebx
call fcn.10047630
mov esi, eax
test esi, esi
jne 0x1004944d
jmp 0x10049430
push dword [ebx + 0x70]
mov eax, dword [ebx + 0x6c]
push dword [ebx + 0x88]
call eax
test eax, eax
jne 0x1004944d
mov ecx, ebx
call fcn.10047630
test eax, eax
je 0x10049430
call fcn.1004a1e0
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, esi
mov dword [esi + 0x81bc], 0
call fcn.100471a0
test eax, eax
jne 0x10049481
lea esi, [eax + 5]
call fcn.1004a1e0
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, ebx
call fcn.100468a0
mov esi, eax
call fcn.1004a1e0
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebx + 8]
mov dword [esi + 0x1f558], eax
test eax, eax
jne 0x100494b6
lea esi, [eax + 0xb]
call fcn.1004a1e0
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, ebx
call fcn.10046750
mov esi, eax
test esi, esi
jne 0x100494cc
mov ecx, ebx
call fcn.100478f0
mov esi, eax
call fcn.1004a1e0
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp dword [esi + 0x81bc], 0
je 0x10049512
cmp dword [esi + 0x81e2], 0xffffffff
jne 0x10049512
mov ecx, esi
mov dword [esi + 0x81bc], 0
call fcn.100471a0
test eax, eax
jne 0x10049512
lea esi, [eax + 5]
call fcn.1004a1e0
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, ebx
call fcn.10047b00
mov esi, eax
call fcn.1004a1e0
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, ebx
call fcn.10047e20
mov esi, eax
call fcn.1004a1e0
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebx + 0x14]
test cl, 4
jne 0x100496d2
mov eax, dword [ebx + 0x10]
test eax, eax
jne 0x10049584
shr ecx, 1
lea edx, [eax + 2]
and ecx, 1
push ecx
lea ecx, [eax + 0x78]
call fcn.1004f5b0
mov edx, eax
mov ecx, 0x2f
call fcn.10044c90
add esp, 4
call fcn.1004a1e0
mov eax, 0x2f
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
lea edi, [esi + 0x2090]
mov dword [esp + 0x10], edi
test edi, edi
je 0x100495e6
xor ecx, ecx
mov dword [esp + 0x10], ecx
cmp word [eax], cx
je 0x100495d1
lea ecx, [ecx]
cmp ecx, 0x800
jge 0x100495d1
movzx edx, word [eax]
cmp edx, 0x22
je 0x100495c0
mov word [edi], dx
add eax, 2
add edi, 2
inc ecx
mov dword [esp + 0x10], ecx
jmp 0x100495cb
push eax
call dword [sym.imp.USER32.dll_CharNextW]
mov ecx, dword [esp + 0x10]
cmp word [eax], 0
jne 0x100495a0
xor eax, eax
mov word [edi], ax
lea eax, [esi + 0x2090]
lea edi, [esi + 0x2090]
mov dword [esp + 0x10], eax
push edi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
cmp eax, 2
jge 0x10049628
mov eax, dword [ebx + 0x14]
mov edx, 2
shr eax, 1
and eax, 1
push eax
lea ecx, [edx + 0x6c]
call fcn.1004f5b0
mov edx, eax
mov ecx, 0x2f
call fcn.10044c90
add esp, 4
call fcn.1004a1e0
mov eax, 0x2f
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
movzx eax, word [esi + 0x2092]
cmp eax, 0x3a
je 0x100496d2
mov ecx, dword [esp + 0x10]
cmp word [ecx], 0x5c
jne 0x1004964b
cmp eax, 0x5c
je 0x100496d2
mov eax, dword [ebx + 0x14]
mov edx, 2
shr eax, 1
and eax, 1
push eax
lea ecx, [edx + 0x6d]
call fcn.1004f5b0
mov edx, eax
mov ecx, 0x2f
call fcn.10044c90
add esp, 4
call fcn.1004a1e0
mov eax, 0x2f
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp dword [esi + 0x2c], 0
jne 0x100496d2
mov eax, dword [ebx + 0x14]
mov edx, 2
shr eax, 1
mov ecx, 0x83
and eax, 1
push eax
call fcn.1004f5b0
mov edx, eax
mov ecx, 0x2f
call fcn.10044c90
add esp, 4
call fcn.1004a1e0
mov eax, 0x2f
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp dword [esi + 0x2c], 0
jne 0x10049687
cmp dword [ebx + 0x24], 0
je 0x10049687
mov dword [esi + 0x34], 1
test byte [ebx + 0x14], 4
jne 0x10049753
cmp dword [esi + 0x2c], 0
jne 0x10049753
cmp dword [esi + 0x34], 0
jne 0x1004975d
mov eax, dword [ebx + 0x10]
lea edi, [esi + 0x71bc]
test eax, eax
je 0x1004973c
test edi, edi
je 0x1004973c
xor ecx, ecx
mov dword [esp + 0x10], ecx
cmp word [eax], cx
je 0x10049731
cmp ecx, 0x800
jge 0x10049731
movzx edx, word [eax]
cmp edx, 0x22
je 0x10049720
mov word [edi], dx
add eax, 2
add edi, 2
inc ecx
mov dword [esp + 0x10], ecx
jmp 0x1004972b
push eax
call dword [sym.imp.USER32.dll_CharNextW]
mov ecx, dword [esp + 0x10]
cmp word [eax], 0
jne 0x10049700
xor eax, eax
mov word [edi], ax
lea edi, [esi + 0x71bc]
mov ecx, edi
call fcn.10050740
test eax, eax
jne 0x10049753
push 0x100b0dec
push edi
call dword [sym.imp.KERNEL32.dll_lstrcatW]
cmp dword [esi + 0x34], 0
je 0x10049b2f
xor edi, edi
mov dword [esi + 0x40], 0
xor edx, edx
mov dword [esi + 0x44], 0
mov eax, 3
mov dword [esi + 0x48], 0
lea ecx, [esi + 0x8228]
mov dword [esi + 0x4c], 0
mov dword [esp + 0x18], edi
mov dword [esp + 0x20], eax
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], edx
lea esp, [esp]
cmp eax, 3
jne 0x10049802
mov eax, 0x2e
sub eax, edi
mov dword [esp + 0x24], eax
lea eax, [esp + 0x20]
push eax
push dword [esi + 0x7154]
lea eax, [esp + 0x2c]
push dword [esi + 0x4c]
push dword [esi + 0x48]
push dword [esp + 0x24]
push edx
push eax
mov eax, dword [esi + 0x7150]
push ecx
push 0
call eax
mov eax, dword [esp + 0x24]
add edi, eax
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x1c]
add edx, eax
mov dword [esp + 0x18], edi
adc dword [esp + 0x14], 0
add ecx, eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x10], edx
mov dword [esp + 0x1c], ecx
cmp edi, 0x2e
jb 0x100497a0
mov dword [esp + 0x24], edi
cmp eax, 3
ja case.0x1004980f.1
jmp dword [eax*4 + 0x1004a014]
mov edi, 2
mov byte [esi + 0x1837c], 1
jmp 0x10049b09
mov edi, 0x30
jmp 0x10049b09
mov ecx, dword [esp + 0x18]
xor eax, eax
xor edi, edi
add dword [esi + 0x40], ecx
adc eax, dword [esi + 0x44]
cmp dword [esi + 0x8228], 0x2014b50
mov dword [esi + 0x44], eax
jne 0x10049b21
movzx eax, word [esi + 0x8246]
movzx ecx, word [esi + 0x8248]
add ecx, eax
movzx eax, word [esi + 0x8244]
add ecx, eax
push ecx
mov dword [esp + 0x14], ecx
call fcn.1008680d
add esp, 4
mov dword [esp + 0x2c], eax
test eax, eax
je 0x10049b21
mov edx, eax
mov ecx, 3
mov eax, dword [esi + 0x40]
mov dword [esp + 0x14], eax
mov eax, dword [esi + 0x44]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x18], edx
mov dword [esp + 0x20], ecx
test eax, eax
je 0x10049909
lea esp, [esp]
cmp ecx, 3
jne 0x10049909
sub eax, edi
mov dword [esp + 0x24], eax
lea eax, [esp + 0x20]
push eax
push dword [esi + 0x7154]
lea eax, [esp + 0x2c]
push dword [esi + 0x4c]
push dword [esi + 0x48]
push dword [esp + 0x2c]
push dword [esp + 0x28]
push eax
mov eax, dword [esi + 0x7150]
push edx
push 0
call eax
mov eax, dword [esp + 0x24]
add edi, eax
add dword [esp + 0x14], eax
mov edx, dword [esp + 0x18]
adc dword [esp + 0x1c], 0
add edx, eax
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x18], edx
cmp edi, eax
jb 0x100498b0
mov dword [esp + 0x24], edi
cmp ecx, 3
ja case.0x10049916.1
jmp dword [ecx*4 + 0x1004a024]
mov edi, 2
mov byte [esi + 0x1837c], 1
jmp 0x10049aeb
mov edi, 0x30
jmp 0x10049aeb
movzx ecx, word [esi + 0x8230]
xor eax, eax
add dword [esi + 0x40], edi
movzx edx, word [esi + 0x8244]
adc eax, dword [esi + 0x44]
mov dword [esi + 0x44], eax
movzx eax, word [esi + 0x8232]
mov word [esi + 0x7160], ax
mov eax, dword [esi + 0x8238]
mov dword [esi + 0x7166], eax
movzx eax, word [esi + 0x8236]
mov word [esi + 0x7164], ax
movzx eax, word [esi + 0x8234]
mov word [esi + 0x7162], ax
movzx eax, word [esi + 0x822e]
mov word [esi + 0x715c], ax
movzx eax, word [esi + 0x8246]
mov dword [esi + 0x823c], 0x7fffffff
mov dword [esi + 0x8240], 0x7fffffff
mov word [esi + 0x715e], cx
mov dword [esi + 0x716a], 0x7fffffff
mov word [esi + 0x7172], dx
mov dword [esi + 0x7158], 0x4034b50
mov dword [esi + 0x716e], 0x7fffffff
mov word [esi + 0x7174], ax
mov dword [esi + 0x82b0], 0
test cl, 1
je 0x10049a94
mov dword [esi + 0x82b0], 1
test cl, 0x40
je 0x10049a94
movzx ecx, word [esi + 0x8246]
xor eax, eax
xor ebx, ebx
mov dword [esp + 0x18], eax
xor edi, edi
mov dword [esp + 0x10], ecx
mov edi, edi
test eax, eax
jne 0x10049a90
cmp di, cx
ja 0x10049a90
movzx eax, dx
add eax, dword [esp + 0x2c]
movzx ecx, di
add ecx, eax
movzx eax, word [ecx + 2]
add eax, 4
cmp word [ecx], 0x17
jne 0x10049a7c
movzx eax, ax
mov dword [esp + 0x18], 1
cmp eax, 0x10
ja 0x10049a6f
push eax
push ecx
lea eax, [esi + 0x8281]
push eax
call fcn.1007d410
movzx eax, word [esi + 0x8244]
add esp, 0xc
movzx eax, ax
jmp 0x10049a81
movzx eax, dx
mov ebx, 1
movzx eax, ax
jmp 0x10049a81
add edi, eax
movzx eax, dx
mov ecx, dword [esp + 0x10]
movzx edx, ax
mov eax, dword [esp + 0x18]
test ebx, ebx
je 0x10049a20
mov ebx, dword [esp + 0x28]
mov ecx, 0x100ab578
call fcn.1004b630
mov ecx, 0x100ab578
call fcn.10048b10
mov edi, eax
mov eax, dword [esi + 0x18368]
test eax, eax
je 0x10049ac7
push eax
call fcn.10086818
add esp, 4
mov dword [esi + 0x18368], 0
mov eax, dword [esi + 0x1a3f8]
test eax, eax
je 0x10049aeb
push eax
call fcn.10086818
add esp, 4
mov dword [esi + 0x1a3f8], 0
jmp 0x10049aeb
mov edi, 5
push dword [esp + 0x2c]
call fcn.10086818
add esp, 4
mov eax, edi
test edi, edi
je 0x10049b21
cmp eax, 0x2c
je 0x10049b21
jmp 0x10049b09
mov edi, 5
mov ecx, dword [ebx + 0x14]
mov edx, 0x100ab578
shr ecx, 1
and ecx, 1
push ecx
mov ecx, edi
call fcn.10044c90
add esp, 4
call fcn.1004a1e0
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov dword [esi + 0x24], 0
cmp dword [ebx + 8], 0
je 0x10049e7c
cmp dword [ebx + 0xc], 0xffffffff
jne 0x10049e7c
xor eax, eax
mov ecx, ebx
mov dword [esp + 0x18], eax
call fcn.100468a0
mov edi, eax
test edi, edi
je 0x10049b8d
mov dword [esi + 0x1f558], 0
call fcn.1004a1e0
mov ecx, dword [ebx + 0x14]
mov edx, 0x100ab578
shr ecx, 1
and ecx, 1
push ecx
mov ecx, edi
call fcn.10044c90
add esp, 4
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebx + 0x18]
mov dword [esp + 0x10], ecx
test ecx, ecx
jne 0x10049bd2
mov dword [esi + 0x1f558], ecx
lea edx, [ecx + 2]
mov eax, dword [ebx + 0x14]
lea ecx, [edx + 0x7b]
shr eax, 1
and eax, 1
push eax
call fcn.1004f5b0
mov edx, eax
mov ecx, 0xb
call fcn.10044c90
add esp, 4
call fcn.1004a1e0
mov eax, 0xb
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
xor eax, eax
mov dword [esi + 0x88], 1
cmp dword [esi + 0x82a8], eax
sete al
mov dword [esi + 0x28], eax
test ecx, ecx
jle 0x10049d7d
mov edi, 1
mov dword [esp + 0x1c], 0x64
mov dword [esp + 0x14], edi
jmp 0x10049c10
lea eax, [esp + 0x1030]
mov ecx, ebx
mov dword [ebx + 0x88], eax
call fcn.100478f0
mov dword [esp + 0x28], eax
test eax, eax
jne 0x10049e2a
push dword [esp + 0x10]
mov eax, dword [esp + 0x1034]
xor edx, edx
push edi
mov dword [ebx + 0xc], eax
lea ecx, [edx + 0x47]
call fcn.1004f5b0
push eax
lea eax, [esp + 0x3c]
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x10
push dword [0x100c7608]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov edi, eax
test edi, edi
je 0x10049cec
mov eax, dword [edi + 0x7138]
mov dword [esp + 0x28], eax
test eax, eax
je 0x10049cec
mov ecx, dword [esp + 0x10]
cmp ecx, 0x186a0
jle 0x10049c9f
mov eax, 0x51eb851f
imul ecx
mov eax, dword [esp + 0x14]
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jmp 0x10049ca3
mov eax, dword [esp + 0x1c]
cdq
idiv ecx
xor ecx, ecx
cmp dword [edi + 4], ecx
setne cl
mov dword [esp + 0x2c], ecx
cmp eax, 0x64
jle 0x10049cbc
mov eax, 0x64
push dword [edi + 0x713c]
mov dword [edi + 0x6120], eax
push eax
lea eax, [esp + 0x38]
push eax
call dword [esp + 0x34]
test eax, eax
je 0x10049cde
mov dword [esp + 0x2c], 1
mov ecx, edi
call fcn.1004cad0
cmp dword [esp + 0x2c], 1
je 0x10049d5d
mov ecx, ebx
call fcn.1004a200
mov edi, eax
cmp edi, 0x27
jne 0x10049d32
cmp dword [esp + 0x18], 0
jne 0x10049d2b
lea eax, [esp + 0x1072]
push eax
push ecx
push edi
lea edx, [edi - 0x19]
lea ecx, [edi - 0x1c]
call fcn.1004be00
add esp, 0xc
cmp eax, 2
je 0x10049d67
cmp eax, 0x67
jne 0x10049d2b
mov dword [esp + 0x18], 1
mov edi, 0x31
jmp 0x10049d3f
test edi, edi
je 0x10049d3f
cmp edi, 0x31
jne 0x10049de8
mov eax, dword [esp + 0x14]
add dword [esp + 0x1c], 0x64
inc eax
mov dword [esp + 0x14], eax
dec eax
cmp eax, dword [esp + 0x10]
jge 0x10049d7d
mov edi, dword [esp + 0x14]
jmp 0x10049c10
mov edi, 0x30
jmp 0x10049e14
mov dword [esi + 0x82ac], 0xffffffff
mov edi, 0x30
mov dword [esi + 0x24], 0
cmp dword [esi + 0x2c], 0
mov dword [esi + 0x28], 0
mov dword [esi + 0x88], 0
je 0x10049da0
mov eax, dword [esi + 0x48]
mov ecx, dword [esi + 0x4c]
mov dword [ebx + 0x78], eax
mov dword [ebx + 0x7c], ecx
xor eax, eax
mov word [esi + 0x18384], ax
mov dword [ebx + 0x88], eax
test edi, edi
je 0x10049dd0
cmp edi, 0x2c
je 0x10049dd0
mov eax, dword [ebx + 0x14]
mov edx, 0x100ab578
shr eax, 1
mov ecx, edi
and eax, 1
push eax
call fcn.10044c90
add esp, 4
call fcn.1004a1e0
mov dword [esi + 0x1f558], 0
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp edi, 0x30
je 0x10049e14
cmp edi, 0x28
je 0x10049e14
mov eax, dword [ebx + 0x14]
mov edx, 2
shr eax, 1
and eax, 1
push eax
lea ecx, [edx + 0x7a]
call fcn.1004f5b0
mov edx, eax
mov ecx, edi
call fcn.10044c90
add esp, 4
mov dword [esi + 0x82ac], 0xffffffff
mov dword [esi + 0x24], 0
jmp 0x10049d7d
mov eax, dword [ebx + 0x14]
mov edx, 2
shr eax, 1
and eax, 1
push eax
lea ecx, [edx + 0x69]
call fcn.1004f5b0
mov ecx, dword [esp + 0x2c]
mov edx, eax
call fcn.10044c90
add esp, 4
mov dword [ebx + 0x88], 0
mov dword [esi + 0x88], 0
mov dword [esi + 0x1f558], 0
call fcn.1004a1e0
mov eax, dword [esp + 0x28]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp dword [ebx + 0xc], 0
jge 0x10049eb8
mov eax, dword [ebx + 0x14]
mov edx, 2
shr eax, 1
and eax, 1
push eax
lea ecx, [edx + 0x78]
call fcn.1004f5b0
mov edx, eax
mov ecx, 0x2f
call fcn.10044c90
add esp, 4
call fcn.1004a1e0
mov eax, 0x2f
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, ebx
call fcn.10046750
mov edi, eax
test edi, edi
jne 0x10049b21
mov eax, dword [ebx + 0x18]
dec eax
cmp dword [ebx + 0xc], eax
jle 0x10049f02
mov eax, dword [ebx + 0x14]
lea edx, [edi + 2]
shr eax, 1
lea ecx, [edi + 0x7b]
and eax, 1
push eax
call fcn.1004f5b0
mov edx, eax
lea ecx, [edi + 0x19]
call fcn.10044c90
add esp, 4
call fcn.1004a1e0
lea eax, [edi + 0x19]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
xor eax, eax
mov ecx, ebx
cmp dword [esi + 0x82a8], eax
sete al
mov dword [esi + 0x28], eax
call fcn.1004a200
cmp dword [esi + 0x2c], 0
mov edi, eax
je 0x10049f2b
mov ecx, dword [esi + 0x48]
mov edx, dword [esi + 0x4c]
mov dword [ebx + 0x78], ecx
mov dword [ebx + 0x7c], edx
test edi, edi
je 0x10049f6b
cmp edi, 0x31
je 0x10049f6b
cmp edi, 0x30
je 0x10049f6b
mov eax, dword [ebx + 0x14]
mov edx, 2
shr eax, 1
and eax, 1
push eax
lea ecx, [edx + 0x7a]
call fcn.1004f5b0
mov edx, eax
mov ecx, edi
call fcn.10044c90
add esp, 4
xor eax, eax
mov word [esi + 0x18384], ax
call fcn.1004a1e0
jmp 0x10049f7d
xor eax, eax
mov word [esi + 0x18384], ax
call fcn.1004a1e0
test edi, edi
je 0x10049f8e
mov dword [esi + 0x82ac], 0xffffffff
mov dword [esi + 0x24], 0
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebx + 0x14]
mov edx, 2
shr eax, 1
and eax, 1
push eax
lea ecx, [edx + 0x77]
call fcn.1004f5b0
mov edx, eax
mov ecx, 0x2f
call fcn.10044c90
add esp, 4
push dword [0x100c7608]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
test eax, eax
je 0x10049fd8
mov dword [eax + 0x28], 0
call fcn.10045da0
pop edi
pop esi
mov eax, 0x2f
pop ebx
mov esp, ebp
pop ebp
ret