Function at 0x10037650
Capabilities:
Query or enumerate registry value
Set registry value

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100badd1
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x270
mov eax, dword [0x100e50d4]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [ebx + 0xc]
mov cl, al
mov edi, dword [ebx + 8]
mov edx, eax
shr eax, 3
and cl, 1
and eax, 0xffffff01
shr edx, 1
mov dword [ebp - 0x280], eax
and edx, 0xffffff01
mov eax, dword [ebx + 0xc]
shr eax, 0xc
and eax, 0xffffff01
mov byte [ebp - 0x275], cl
cmp byte [ebp - 0x280], 0
mov dword [ebp - 0x27c], edx
mov dword [ebp - 0x224], eax
je 0x100376e9
mov eax, dword [0x100f2748]
mov dword [eax + 0xace67c], 0
mov esi, 1
cmp edi, dword [0x100f229c]
jne 0x10037711
movzx eax, byte [0x100f2286]
test dl, dl
cmovne eax, esi
xor esi, esi
test cl, cl
movzx eax, al
cmovne eax, esi
mov byte [0x100f2286], al
cmp dword [edi + 0x5c], 1
jne 0x10037eb0
cmp dword [edi + 0x54], 0xffffffff
je 0x10037eb0
mov eax, dword [edi + 0x58]
test eax, eax
jle 0x100379e3
cmp eax, 1
jne 0x1003773c
mov eax, dword [0x100fee4c]
jmp 0x10037791
cmp eax, 2
jne 0x10037787
mov esi, dword [0x100fee6c]
test dl, dl
je 0x10037783
cmp byte [esi + 0xcc9], 0
mov byte [esi + 0xc], 1
je 0x10037783
mov eax, dword [0x100f22d0]
cmp eax, dword [esi + 0xcc4]
je 0x1003776f
cmp byte [esi + 8], 0
jne 0x1003776f
xor al, al
jmp 0x10037771
mov al, 1
push eax
lea ecx, [esi + 0x118]
call fcn.10019490
mov cl, byte [ebp - 0x275]
test cl, cl
jmp 0x100377d4
cmp eax, 3
jne 0x10037807
mov eax, dword [0x100fee70]
mov ecx, dword [edi + 0x60]
mov esi, dword [eax + ecx*4]
test dl, dl
je 0x100377cd
mov byte [esi + 0xc], 1
cmp byte [esi + 0xcc9], 0
je 0x100377cd
mov eax, dword [0x100f22d0]
cmp eax, dword [esi + 0xcc4]
je 0x100377bf
cmp byte [esi + 8], 0
jne 0x100377bf
xor al, al
jmp 0x100377c1
mov al, 1
push eax
lea ecx, [esi + 0x118]
call fcn.10019490
cmp byte [ebp - 0x275], 0
je 0x100379e3
mov byte [esi + 0xc], 0
cmp byte [esi + 0x118], 0
je 0x100379e3
mov byte [esi + 0x119], 0
mov eax, dword [esi + 0x14c]
mov dword [eax + 0xb0], 0
jmp 0x100379e3
cmp eax, 4
jne 0x100379e3
mov eax, dword [edi + 0x60]
cmp eax, 0xffffffff
jle 0x100379e3
cmp eax, dword [0x100ff404]
ja 0x100379e3
imul ecx, eax, 0x1d0
mov eax, dword [0x100ff3f8]
mov esi, dword [ecx + eax]
test dl, dl
je 0x10037889
cmp byte [esi + 0xcc9], 0
mov byte [esi + 0xc], 1
je 0x1003786c
mov eax, dword [0x100f22d0]
cmp eax, dword [esi + 0xcc4]
je 0x1003785e
cmp byte [esi + 8], 0
jne 0x1003785e
xor al, al
jmp 0x10037860
mov al, 1
push eax
lea ecx, [esi + 0x118]
call fcn.10019490
imul ecx, dword [edi + 0x60], 0x1d0
add ecx, dword [0x100ff3f8]
cmp dword [ecx + 0x1cc], 2
je 0x10037889
push 1
call fcn.10035220
cmp byte [ebp - 0x275], 0
je 0x10037936
mov byte [esi + 0xc], 0
cmp byte [esi + 0x118], 0
je 0x100378ba
mov eax, dword [esi + 0x14c]
mov byte [esi + 0x119], 0
mov dword [eax + 0xb0], 0
imul esi, dword [edi + 0x60], 0x1d0
add esi, dword [0x100ff3f8]
cmp dword [esi + 0x1cc], 2
je 0x10037936
cmp byte [esi + 4], 0
je 0x100378fb
push dword [esi + 0xc]
call dword [0x100f2740]
test eax, eax
je 0x100378fb
mov dword [eax + 0xac], 0x8c
mov byte [eax + 0x1f7], 0x8c
mov byte [eax + 0x23c], 1
cmp byte [esi + 0xe8], 0
je 0x1003792c
push dword [esi + 0xf0]
call dword [0x100f2740]
test eax, eax
je 0x1003792c
mov dword [eax + 0xac], 0x8c
mov byte [eax + 0x1f7], 0x8c
mov byte [eax + 0x23c], 1
mov dword [esi + 0x1cc], 0
cmp byte [ebp - 0x280], 0
je 0x100379e3
mov eax, dword [0x100ff408]
cmp eax, 0xffffffff
jle 0x100379c7
cmp eax, dword [0x100ff404]
ja 0x100379c7
imul esi, eax, 0x1d0
add esi, dword [0x100ff3f8]
cmp byte [esi + 4], 0
je 0x1003798c
push dword [esi + 0xc]
call dword [0x100f2740]
test eax, eax
je 0x1003798c
mov dword [eax + 0xac], 0x8c
mov byte [eax + 0x1f7], 0x8c
mov byte [eax + 0x23c], 1
cmp byte [esi + 0xe8], 0
je 0x100379bd
push dword [esi + 0xf0]
call dword [0x100f2740]
test eax, eax
je 0x100379bd
mov dword [eax + 0xac], 0x8c
mov byte [eax + 0x1f7], 0x8c
mov byte [eax + 0x23c], 1
mov dword [esi + 0x1cc], 0
imul ecx, dword [edi + 0x60], 0x1d0
push 2
add ecx, dword [0x100ff3f8]
call fcn.10035220
mov eax, dword [edi + 0x60]
mov dword [0x100ff408], eax
cmp byte [ebp - 0x27c], 0
mov ecx, dword [edi + 0x54]
mov eax, dword [0x100fee28]
mov esi, dword [eax + ecx*4]
je 0x10037b74
cmp byte [esi + 0xcc9], 0
mov byte [0x100f2286], 1
mov byte [esi + 0xc], 1
je 0x10037a34
mov eax, dword [0x100f22d0]
cmp eax, dword [esi + 0xcc4]
je 0x10037a26
cmp byte [esi + 8], 0
jne 0x10037a26
xor al, al
jmp 0x10037a28
mov al, 1
push eax
lea ecx, [esi + 0x118]
call fcn.10019490
push esi
call fcn.10033e00
cmp byte [0x100ec570], 0
je 0x10037b74
cmp byte [0x100ec571], 1
je 0x10037b74
cmp byte [0x100ec574], 0
mov byte [0x100ec571], 1
je 0x10037a7a
mov eax, dword [0x100ec5a8]
mov byte [0x100ec575], 1
mov dword [eax + 0xb0], 0x2c
push 1
mov ecx, 0x100ec658
call fcn.10018650
push 1
mov ecx, 0x100ec73c
call fcn.10018650
push 1
mov ecx, 0x100ec820
call fcn.10018650
push 1
mov ecx, 0x100ec904
call fcn.10018650
cmp byte [0x100ec9e8], 0
je 0x10037ac9
mov eax, dword [0x100eca1c]
mov byte [0x100ec9e9], 1
mov dword [eax + 0xb0], 0x2c
cmp byte [0x100ecacc], 0
je 0x10037ae8
mov eax, dword [0x100ecb00]
mov byte [0x100ecacd], 1
mov dword [eax + 0xb0], 0x2c
cmp byte [0x100ecc94], 0
je 0x10037b07
mov eax, dword [0x100eccc8]
mov byte [0x100ecc95], 1
mov dword [eax + 0xb0], 0x2c
cmp byte [0x100ecd78], 0
je 0x10037b26
mov eax, dword [0x100ecdac]
mov byte [0x100ecd79], 1
mov dword [eax + 0xb0], 0x2c
cmp byte [0x100ece5c], 0
je 0x10037b45
mov eax, dword [0x100ece90]
mov byte [0x100ece5d], 1
mov dword [eax + 0xb0], 0x2c
cmp byte [0x100ecf40], 0
je 0x10037b64
mov eax, dword [0x100ecf74]
mov byte [0x100ecf41], 1
mov dword [eax + 0xb0], 0x2c
push dword [0x100f22c4]
mov ecx, 0x100ec570
call fcn.10034da0
cmp byte [ebp - 0x275], 0
je 0x10037cf8
mov byte [esi + 0xc], 0
cmp byte [0x100ec570], 0
je 0x10037cd8
cmp byte [0x100ec571], 0
je 0x10037cd8
cmp byte [0x100ec574], 0
mov byte [0x100ec571], 0
je 0x10037bc5
mov eax, dword [0x100ec5a8]
mov byte [0x100ec575], 0
mov dword [eax + 0xb0], 0
push 0
mov ecx, 0x100ec658
call fcn.10018650
push 0
mov ecx, 0x100ec73c
call fcn.10018650
push 0
mov ecx, 0x100ec820
call fcn.10018650
push 0
mov ecx, 0x100ec904
call fcn.10018650
cmp byte [0x100ec9e8], 0
je 0x10037c14
mov eax, dword [0x100eca1c]
mov byte [0x100ec9e9], 0
mov dword [eax + 0xb0], 0
cmp byte [0x100ecacc], 0
je 0x10037c33
mov eax, dword [0x100ecb00]
mov byte [0x100ecacd], 0
mov dword [eax + 0xb0], 0
cmp byte [0x100ecc94], 0
je 0x10037c52
mov eax, dword [0x100eccc8]
mov byte [0x100ecc95], 0
mov dword [eax + 0xb0], 0
cmp byte [0x100ecd78], 0
je 0x10037c71
mov eax, dword [0x100ecdac]
mov byte [0x100ecd79], 0
mov dword [eax + 0xb0], 0
cmp byte [0x100ece5c], 0
je 0x10037c90
mov eax, dword [0x100ece90]
mov byte [0x100ece5d], 0
mov dword [eax + 0xb0], 0
cmp byte [0x100ecf40], 0
je 0x10037caf
mov eax, dword [0x100ecf74]
mov byte [0x100ecf41], 0
mov dword [eax + 0xb0], 0
cmp byte [0x100ecbb0], 0
je 0x10037cce
mov eax, dword [0x100ecbe4]
mov byte [0x100ecbb1], 0
mov dword [eax + 0xb0], 0
mov dword [0x100ed024], 0
cmp byte [esi + 0x118], 0
je 0x10037cf8
mov eax, dword [esi + 0x14c]
mov byte [esi + 0x119], 0
mov dword [eax + 0xb0], 0
cmp byte [ebp - 0x224], 0
je 0x10037e9a
cmp byte [0x100f26cf], 0
jne 0x10037e9a
cmp byte [esi + 0xd], 0
je 0x10037d37
xor ecx, ecx
cmp dword [esi + 0x28], ecx
je 0x10037d37
lea eax, [esi + 0x10]
mov edx, dword [0x100f22c4]
cmp dword [eax], edx
mov edx, dword [esi + 0x28]
jle 0x10037d44
inc ecx
add eax, 4
cmp ecx, edx
jb 0x10037d22
cmp byte [esi + 0xcc9], 0
je 0x10037e9a
mov edx, dword [esi + 0xcb0]
cmp edx, 2
jne 0x10037ddb
mov ecx, dword [0x100f26e4]
cmp dword [ecx*4 + 0x100f2338], 0
jne 0x10037de6
mov eax, dword [esi + 0xcb4]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*2]
cmp dword [eax*4 + 0x100f22e8], 0
jne 0x10037de6
mov eax, dword [0x100f2748]
push 1
push 0
push 0xd7
push 0xff
push 0x100e5ad4
push 0x100f22d4
add eax, 0x3b8660
push 0x100f22d8
call eax
mov eax, dword [0x100f2748]
add esp, 0x1c
add eax, 0x3b8660
push 1
push 0
push 0xd7
push 0xff
push 0x100e5ad4
push 0x100f22dc
push 0x100f22e0
call eax
mov edx, dword [esi + 0xcb0]
add esp, 0x1c
mov ecx, dword [0x100f26e4]
cmp edx, 0xffffffff
je 0x10037df6
lea eax, [edx + edx*4]
lea eax, [ecx + eax*2]
cmp dword [eax*4 + 0x100f22e8], 0
jg 0x10037e47
mov eax, dword [esi + 0xcb4]
cmp eax, 0xffffffff
je 0x10037e11
lea eax, [eax + eax*4]
lea eax, [ecx + eax*2]
cmp dword [eax*4 + 0x100f22e8], 0
jg 0x10037e47
mov eax, dword [esi + 0xcb8]
cmp eax, 0xffffffff
je 0x10037e2c
lea eax, [eax + eax*4]
lea eax, [ecx + eax*2]
cmp dword [eax*4 + 0x100f22e8], 0
jg 0x10037e47
mov eax, dword [esi + 0xcbc]
cmp eax, 0xffffffff
je 0x10037e9a
lea eax, [eax + eax*4]
lea eax, [ecx + eax*2]
cmp dword [eax*4 + 0x100f22e8], 0
jle 0x10037e9a
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, dword [0x100f22a8]
add ecx, 0x64
mov dword [ebp - 0x224], eax
cmp ecx, eax
jge 0x10037e9a
cmp byte [esi + 0xcc8], 0
je 0x10037e72
cmp dword [esi + 0xd38], 0
jle 0x10037e85
push dword [esi + 0xccc]
mov edx, dword [esi + 0x2c]
call fcn.10037580
add esp, 4
jmp 0x10037e8f
mov ecx, str.InterfaceError
call fcn.1008cf80
mov eax, dword [ebp - 0x224]
mov dword [0x100f22a8], eax
cmp byte [ebp - 0x280], 0
je 0x10037eaa
mov ecx, esi
call fcn.10037270
mov edx, dword [ebp - 0x27c]
mov ecx, dword [0x100f2294]
mov eax, dword [0x100f2290]
cmp edi, ecx
je 0x10037ec9
cmp edi, eax
jne 0x1003811d
cmp edi, ecx
sete cl
cmp edi, eax
mov byte [ebp - 0x277], cl
sete al
mov byte [ebp - 0x276], al
test dl, dl
je 0x10037f6e
mov byte [0x100f2286], 1
test cl, cl
je 0x10037f33
cmp byte [0x100ec0e8], 0
je 0x10037f15
mov eax, dword [0x100ec11c]
mov byte [0x100ec0e9], 1
mov dword [eax + 0xb0], 0x2c
mov al, byte [ebp - 0x276]
cmp dword [0x100f22d0], 1
jne 0x10037f33
push 0xff
mov ecx, 0x100ec000
call fcn.10018af0
mov al, byte [ebp - 0x276]
test al, al
je 0x10037f6e
cmp byte [0x100ec3a0], 0
je 0x10037f56
mov eax, dword [0x100ec3d4]
mov byte [0x100ec3a1], 1
mov dword [eax + 0xb0], 0x2c
cmp dword [0x100f22d0], 0
jne 0x10037f6e
push 0xff
mov ecx, 0x100ec2b8
call fcn.10018af0
cmp byte [ebp - 0x275], 0
je 0x10037ffb
cmp byte [ebp - 0x277], 0
je 0x10037fbb
cmp byte [0x100ec0e8], 0
je 0x10037fa3
mov eax, dword [0x100ec11c]
mov byte [0x100ec0e9], 0
mov dword [eax + 0xb0], 0
cmp dword [0x100f22d0], 1
jne 0x10037fbb
push 0x8c
mov ecx, 0x100ec000
call fcn.10018af0
cmp byte [ebp - 0x276], 0
je 0x10037ffb
cmp byte [0x100ec3a0], 0
je 0x10037fe3
mov eax, dword [0x100ec3d4]
mov byte [0x100ec3a1], 0
mov dword [eax + 0xb0], 0
cmp dword [0x100f22d0], 0
jne 0x10037ffb
push 0x8c
mov ecx, 0x100ec2b8
call fcn.10018af0
cmp byte [ebp - 0x280], 0
je 0x1003811d
cmp byte [ebp - 0x277], 0
je 0x10038091
cmp dword [0x100f22d0], 1
jne 0x10038091
push 0x8c
mov ecx, 0x100ec2b8
mov dword [0x100f22d0], 0
call fcn.10018af0
cmp byte [0x100ebf18], 0
je 0x1003805b
mov eax, dword [0x100f2748]
xor edx, edx
mov ecx, dword [0x100ebf54]
add eax, 0x60e090
push 0
push str.UIWidgetsBattleNet_bnet_tab_up.blp
call eax
cmp byte [0x100ec1d0], 0
je 0x1003807f
mov eax, dword [0x100f2748]
xor edx, edx
mov ecx, dword [0x100ec20c]
add eax, 0x60e090
push 0
push str.UIWidgetsBattleNet_bnet_tab_down.blp
call eax
mov ecx, dword [0x100f22cc]
xor edx, edx
push 0
call fcn.100388f0
add esp, 4
cmp byte [ebp - 0x276], 0
je 0x1003811d
cmp dword [0x100f22d0], 0
jne 0x1003811d
mov ecx, dword [0x100f22cc]
mov edx, 1
push 0
call fcn.100388f0
add esp, 4
mov dword [0x100f22d0], 1
mov ecx, 0x100ec000
push 0x8c
call fcn.10018af0
cmp byte [0x100ebf18], 0
je 0x100380f9
mov eax, dword [0x100f2748]
xor edx, edx
mov ecx, dword [0x100ebf54]
add eax, 0x60e090
push 0
push str.UIWidgetsBattleNet_bnet_tab_down.blp
call eax
cmp byte [0x100ec1d0], 0
je 0x1003811d
mov eax, dword [0x100f2748]
xor edx, edx
mov ecx, dword [0x100ec20c]
add eax, 0x60e090
push 0
push str.UIWidgetsBattleNet_bnet_tab_up.blp
call eax
cmp edi, dword [0x100f228c]
jne 0x100382e8
cmp byte [ebp - 0x27c], 0
je 0x10038166
cmp byte [0x100ec488], 0
mov byte [0x100f2286], 1
je 0x10038166
push dword [0x100ec490]
call dword [0x100f2740]
test eax, eax
jle 0x10038166
mov dword [eax + 0xac], 0xff
mov dword [eax + 0x1d8], 1
cmp byte [ebp - 0x275], 0
je 0x1003819c
cmp byte [0x100ec488], 0
je 0x1003819c
push dword [0x100ec490]
call dword [0x100f2740]
test eax, eax
jle 0x1003819c
mov dword [eax + 0xac], 0xc8
mov dword [eax + 0x1d8], 1
cmp byte [ebp - 0x280], 0
je 0x100382e8
cmp dword [0x100f22cc], 0
mov edx, dword [0x100f22d0]
push 1
jne 0x100381ef
mov ecx, 1
mov dword [0x100f22cc], 1
call fcn.100388f0
add esp, 4
cmp byte [0x100ec488], 0
je 0x1003823b
push 1
push str.UIWidgetsGluesGlueScreen_Scrollbar_BackdropBorder.blp
push 0
push 0xff
push str.BookmarkStyle2.tga
jmp 0x1003821f
xor ecx, ecx
mov dword [0x100f22cc], 0
call fcn.100388f0
add esp, 4
cmp byte [0x100ec488], 0
je 0x1003823b
push 1
push str.UIWidgetsGluesGlueScreen_Scrollbar_BackdropBorder.blp
push 0
push 0xff
push str.BookmarkStyle1.tga
push dword [0x100ec490]
call dword [0x100f2740]
mov edx, dword [0x100f2748]
mov ecx, eax
lea edx, [edx + 0x6212d0]
call edx
mov eax, dword [0x100f22cc]
mov esi, dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
mov dword [ebp - 0x224], eax
nop dword [eax]
lea eax, [ebp - 0x274]
push eax
push 0xf003f
push 0
push str.SoftwareWarCraftHelper_
push closesocket
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x100382e8
lea eax, [ebp - 0x22c]
mov dword [ebp - 0x22c], 0x104
push eax
lea eax, [ebp - 0x220]
push eax
push 0
push 0
push str.SideShopBookmark
push dword [ebp - 0x274]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
push 4
cmp eax, 2
jne 0x100382d0
mov eax, dword [ebp - 0x224]
mov dword [ebp - 0x228], eax
lea eax, [ebp - 0x228]
push eax
push 4
push 0
push str.SideShopBookmark
push dword [ebp - 0x274]
call esi
test eax, eax
je 0x10038250
jmp 0x100382e8
lea eax, [ebp - 0x224]
push eax
push 4
push 0
push str.SideShopBookmark
push dword [ebp - 0x274]
call esi
cmp edi, dword [0x100ff30c]
jne 0x1003840f
cmp byte [ebp - 0x27c], 0
je 0x1003835b
cmp byte [0x100ff144], 0
mov byte [0x100f2286], 1
je 0x10038331
push dword [0x100ff14c]
call dword [0x100f2740]
test eax, eax
jle 0x10038331
mov dword [eax + 0xac], 0xff
mov dword [eax + 0x1d8], 1
cmp byte [0x100ff228], 0
je 0x1003835b
push dword [0x100ff230]
call dword [0x100f2740]
test eax, eax
jle 0x1003835b
mov byte [eax + 0x28f], 0xff
mov dword [eax + 0x168], 1
cmp byte [ebp - 0x275], 0
je 0x100383bb
cmp byte [0x100ff144], 0
je 0x10038391
push dword [0x100ff14c]
call dword [0x100f2740]
test eax, eax
jle 0x10038391
mov dword [eax + 0xac], 0x8c
mov dword [eax + 0x1d8], 1
cmp byte [0x100ff228], 0
je 0x100383bb
push dword [0x100ff230]
call dword [0x100f2740]
test eax, eax
jle 0x100383bb
mov byte [eax + 0x28f], 0x8c
mov dword [eax + 0x168], 1
cmp byte [ebp - 0x280], 0
je 0x1003840f
mov edx, dword [0x100ff140]
test edx, edx
je 0x10038415
cmp byte [edx], 0
je 0x10038404
mov eax, dword [edx + 8]
test eax, eax
jle 0x10038404
push eax
call dword [0x100f2740]
test eax, eax
jle 0x100383fe
mov esi, dword [0x100f2748]
xor edx, edx
push 1
push 0x100d6824
mov ecx, eax
lea esi, [esi + 0x615b50]
call esi
mov edx, dword [0x100ff140]
push 0x40
push edx
call fcn.10037650
add esp, 8
mov edx, dword [0x100ff140]
mov esi, 1
cmp edi, dword [0x100ff3f4]
jne 0x10038438
movzx eax, byte [0x100f2286]
cmp byte [ebp - 0x27c], 0
cmovne eax, esi
mov byte [0x100f2286], al
cmp edi, edx
jne 0x1003887c
mov eax, dword [ebx + 0xc]
shr eax, 6
and eax, 0xffffff01
mov dword [ebp - 0x224], eax
mov eax, dword [ebx + 0xc]
mov ecx, eax
shr eax, 8
and eax, 0xffffff01
shr ecx, 7
mov dword [ebp - 0x228], eax
mov eax, dword [ebx + 0xc]
shr eax, 9
and eax, 0xffffff01
mov dword [ebp - 0x22c], eax
mov eax, dword [ebx + 0xc]
shr eax, 0xa
and al, 1
cmp byte [ebp - 0x27c], 0
mov dword [ebx + 0xc], eax
movzx eax, byte [0x100f2286]
cmovne eax, esi
mov byte [0x100f2286], al
and cl, 1
je 0x100384b4
mov byte [0x100f2485], 1
test edx, edx
je 0x100384b4
push 0x40
push edx
call fcn.10037650
add esp, 8
movzx eax, byte [0x100f2485]
xor ecx, ecx
cmp byte [ebp - 0x228], cl
cmovne eax, ecx
cmp byte [ebp - 0x22c], cl
movzx eax, al
cmovne eax, ecx
cmp byte [ebx + 0xc], cl
movzx eax, al
cmovne eax, ecx
mov byte [0x100f2485], al
cmp byte [ebp - 0x224], cl
je 0x1003887c
mov ecx, 0x100fee90
call fcn.10036850
mov ecx, dword [0x100ff140]
lea eax, [ebp - 0x270]
push eax
call fcn.1001af50
mov dword [ebp - 4], 0
cmp dword [ebp - 0x260], 0
jne 0x10038587
cmp byte [0x100ff145], 0
je 0x10038846
cmp byte [0x100ff228], 0
je 0x10038544
mov eax, dword [0x100ff25c]
mov byte [0x100ff229], 0
mov dword [eax + 0xb0], 0
cmp byte [0x100ff144], 0
je 0x10038563
mov eax, dword [0x100ff178]
mov byte [0x100ff145], 0
mov dword [eax + 0xb0], 0
mov ecx, dword [0x100ff30c]
test ecx, ecx
je 0x10038574
push 0
call fcn.100194c0
push 0
push 0
mov ecx, 0x100fee90
call fcn.100364c0
jmp 0x10038846
xor edi, edi
mov dword [ebp - 0x244], 0xf
mov dword [ebp - 0x248], edi
mov byte [ebp - 0x258], 0
push ecx
lea eax, [ebp - 0x270]
mov byte [ebp - 4], 1
xorps xmm0, xmm0
mov dword [ebp - 0x230], edi
push eax
lea ecx, [ebp - 0x240]
movups xmmword [ebp - 0x240], xmm0
call fcn.1003dec0
mov byte [ebp - 4], 2
xor esi, esi
mov ecx, dword [0x100fee2c]
mov eax, dword [0x100fee28]
sub ecx, eax
sar ecx, 2
mov dword [ebp - 0x228], ecx
mov dword [ebp - 0x274], esi
test ecx, ecx
je 0x1003875f
mov eax, dword [eax + esi*4]
cmp dword [eax + 4], 0xffffffff
je 0x1003875f
mov edx, dword [eax + 0xcf0]
mov ecx, edx
lea esi, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10038610
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x258]
call fcn.1000ecc0
cmp dword [ebp - 0x244], 0x10
lea ecx, [ebp - 0x258]
mov eax, dword [ebp - 0x248]
cmovae ecx, dword [ebp - 0x258]
add eax, ecx
cmp dword [ebp - 0x244], 0x10
lea ecx, [ebp - 0x258]
cmovae ecx, dword [ebp - 0x258]
push eax
push ecx
lea ecx, [ebp - 0x240]
call fcn.1003e1d0
mov esi, dword [ebp - 0x274]
add esp, 8
test al, al
jne 0x100386fc
mov eax, dword [0x100fee28]
mov ecx, dword [eax + esi*4]
cmp dword [ecx + 0xd08], 0
jbe 0x100386bb
add ecx, 0xcf8
mov edx, ecx
cmp dword [ecx + 0x14], 0x10
jb 0x10038695
mov edx, dword [ecx]
mov eax, dword [ecx + 0x10]
add eax, edx
cmp dword [ecx + 0x14], 0x10
jb 0x100386a2
mov ecx, dword [ecx]
push eax
push ecx
lea ecx, [ebp - 0x240]
call fcn.1003e1d0
add esp, 8
test al, al
jne 0x100386fc
mov eax, dword [0x100fee28]
mov ecx, dword [eax + esi*4]
cmp dword [ecx + 0xd20], 0
jbe 0x1003874c
add ecx, 0xd10
mov edx, ecx
cmp dword [ecx + 0x14], 0x10
jb 0x100386db
mov edx, dword [ecx]
mov eax, dword [ecx + 0x10]
add eax, edx
cmp dword [ecx + 0x14], 0x10
jb 0x100386e8
mov ecx, dword [ecx]
push eax
push ecx
lea ecx, [ebp - 0x240]
call fcn.1003e1d0
add esp, 8
test al, al
je 0x10038747
mov eax, dword [0x100fee28]
mov ecx, 0x100fee90
push edi
push dword [eax + esi*4]
call fcn.10036a80
test edi, edi
jne 0x1003873e
mov ecx, 0x100fee90
call fcn.100365e0
mov ecx, dword [0x100fee28]
mov ecx, dword [ecx + esi*4]
call fcn.10037270
mov ecx, dword [0x100ff3f8]
push 2
call fcn.10035220
mov dword [0x100ff408], edi
inc edi
cmp edi, dword [0x100ff404]
jae 0x1003875f
mov eax, dword [0x100fee28]
inc esi
mov dword [ebp - 0x274], esi
cmp esi, dword [ebp - 0x228]
jb 0x100385f1
push edi
push 1
mov ecx, 0x100fee90
call fcn.100364c0
cmp byte [0x100ff145], 0
jne 0x100387c4
cmp byte [0x100ff228], 0
je 0x10038794
mov eax, dword [0x100ff25c]
mov byte [0x100ff229], 1
mov dword [eax + 0xb0], 0x2c
cmp byte [0x100ff144], 0
je 0x100387b3
mov eax, dword [0x100ff178]
mov byte [0x100ff145], 1
mov dword [eax + 0xb0], 0x2c
mov ecx, dword [0x100ff30c]
test ecx, ecx
je 0x100387c4
push 1
call fcn.100194c0
mov ecx, dword [ebp - 0x240]
test ecx, ecx
je 0x100387e5
or eax, 0xffffffff
lock xadd dword [ecx + 0x20], eax
jne 0x100387e5
mov ecx, dword [ebp - 0x240]
xor edx, edx
call fcn.100307c0
mov dword [ebp - 0x240], 0
mov byte [ebp - 4], 3
mov ecx, dword [ebp - 0x230]
test ecx, ecx
je 0x10038810
mov eax, dword [ecx]
mov eax, dword [eax + 8]
call eax
test eax, eax
je 0x10038810
mov edx, dword [eax]
mov ecx, eax
push 1
call dword [edx]
mov edx, dword [ebp - 0x244]
cmp edx, 0x10
jb 0x10038846
mov ecx, dword [ebp - 0x258]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x1003883c
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1003889a
push edx
push ecx
call fcn.10097faf
add esp, 8
mov edx, dword [ebp - 0x25c]
cmp edx, 0x10
jb 0x1003887c
mov ecx, dword [ebp - 0x270]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x10038872
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1003889f
push edx
push ecx
call fcn.10097faf
add esp, 8
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.10097f9e
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
call fcn.1009d41c
call fcn.1009d41c
int3