Function at 0x446de0
Capabilities:
Get process heap force flags
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x581cba
mov eax, dword fs:[0]
push eax
sub esp, 0x310
mov eax, dword [0x5cca0c]
xor eax, esp
mov dword [esp + 0x308], eax
push ebx
push esi
push edi
mov eax, dword [0x5cca0c]
xor eax, esp
push eax
lea eax, [esp + 0x320]
mov dword fs:[0], eax
call dword [sym.imp.KERNEL32.dll_GetTickCount]
call fcn.00402460
add eax, 0x3c
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
xor edi, edi
mov dword [esp + 0x4c], edi
mov dword [esp + 0x50], edi
mov dword [esp + 0x54], edi
mov dword [esp + 0x328], edi
mov dword [esp + 0x3c], edi
mov dword [esp + 0x40], edi
mov dword [esp + 0x44], edi
mov dword [esp + 0x2c], edi
mov dword [esp + 0x30], edi
mov dword [esp + 0x34], edi
mov dword [esp + 0x128], 0xf
mov dword [esp + 0x124], edi
mov byte [esp + 0x114], 0
lea eax, [esp + 0xf4]
push eax
mov byte [esp + 0x32c], 3
call fcn.004ae0d0
sub esp, 0x18
mov ecx, esp
mov dword [esp + 0x30], esp
push str._tmplastgamesused.txt
push eax
push ecx
mov byte [esp + 0x350], 4
call fcn.0040cf70
lea edx, [esp + 0x138]
add esp, 0xc
push edx
call fcn.004399d0
add esp, 0x20
cmp dword [esp + 0x10c], 0x10
mov bl, al
mov byte [esp + 0x328], 3
jb 0x446ee5
mov eax, dword [esp + 0xf8]
push eax
call fcn.0055215c
add esp, 4
test bl, bl
je 0x447a9b
lea ecx, [esp + 0x80]
call fcn.004bb870
lea ecx, [esp + 0x110]
push ecx
lea ecx, [esp + 0x84]
mov byte [esp + 0x32c], 5
call fcn.004bbc40
xor esi, esi
lea ecx, [esp + 0x80]
mov dword [esp + 0x64], esi
call fcn.004ba7f0
test eax, eax
jbe 0x447987
nop
lea ecx, [esp + 0x18]
call fcn.004bb870
push 0x2c
push esi
lea ecx, [esp + 0x88]
mov byte [esp + 0x330], 6
call fcn.004ba7a0
push eax
lea ecx, [esp + 0x20]
call fcn.004bbdd0
lea ecx, [esp + 0x18]
call fcn.004ba7f0
cmp eax, 4
lea ecx, [esp + 0x18]
jb 0x447959
push edi
call fcn.004ba7a0
mov esi, 0x10
cmp dword [eax + 0x18], esi
jb 0x446f85
mov eax, dword [eax + 4]
jmp 0x446f88
add eax, 4
push eax
call fcn.00554a20
add esp, 4
cmp eax, 2
jne 0x447130
push 3
lea ecx, [esp + 0x1c]
call fcn.004ba7a0
cmp dword [eax + 0x18], esi
jb 0x446faf
mov eax, dword [eax + 4]
jmp 0x446fb2
add eax, 4
mov ebx, eax
call fcn.00432240
test al, al
je 0x447955
push 1
lea ecx, [esp + 0x1c]
call fcn.004ba7a0
cmp dword [eax + 0x18], esi
jb 0x446fd6
mov eax, dword [eax + 4]
jmp 0x446fd9
add eax, 4
push eax
call fcn.00554a20
mov edx, dword [esp + 0x50]
mov edi, eax
mov eax, dword [esp + 0x54]
add esp, 4
cmp edx, eax
mov ebx, eax
jbe 0x446fff
call fcn.005532de
mov eax, dword [esp + 0x50]
mov edx, dword [esp + 0x4c]
cmp edx, eax
mov esi, edx
jbe 0x447012
call fcn.005532de
mov eax, dword [esp + 0x50]
mov edx, dword [esp + 0x4c]
cmp esi, ebx
lea ecx, [esp + 0x48]
mov dword [esp + 0x78], ecx
mov dword [esp + 0x7c], esi
je 0x44702d
cmp dword [esi], edi
je 0x44702d
add esi, 0x24
cmp esi, ebx
jne 0x447022
cmp edx, eax
mov ebx, eax
jbe 0x447038
call fcn.005532de
lea edx, [esp + 0x48]
cmp edx, dword [esp + 0x78]
je 0x447047
call fcn.005532de
cmp ebx, esi
jne 0x447955
mov eax, dword [0x5ce6d8]
push str.xunyou_is_valid_game
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x447955
push edi
call eax
test eax, eax
setne al
test al, al
je 0x447955
push edi
call fcn.00444df0
mov ecx, eax
call fcn.004392e0
test al, al
jne 0x4470c0
push 3
lea ecx, [esp + 0x1c]
call fcn.004ba7a0
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x78], esp
push eax
call fcn.0040c140
push edi
mov byte [esp + 0x348], 7
call fcn.00444df0
mov ecx, eax
mov byte [esp + 0x348], 6
call fcn.00444e70
push 2
lea ecx, [esp + 0x1c]
call fcn.004ba7a0
mov esi, 0x10
cmp dword [eax + 0x18], esi
jb 0x4470da
mov ebx, dword [eax + 4]
jmp 0x4470dd
lea ebx, [eax + 4]
push 3
lea ecx, [esp + 0x1c]
call fcn.004ba7a0
cmp dword [eax + 0x18], esi
jb 0x4470f2
mov esi, dword [eax + 4]
jmp 0x4470f5
lea esi, [eax + 4]
push ebx
call fcn.00554a20
add esp, 4
push eax
push esi
push edi
lea ecx, [esp + 0xdc]
call fcn.00439940
push eax
lea ecx, [esp + 0x4c]
mov byte [esp + 0x32c], 8
call fcn.004451e0
lea ecx, [esp + 0xd0]
call fcn.004389e0
jmp 0x447955
cmp eax, 3
jne 0x44727b
push eax
lea ecx, [esp + 0x1c]
call fcn.004ba7a0
cmp dword [eax + 0x18], esi
jb 0x44714d
mov eax, dword [eax + 4]
jmp 0x447150
add eax, 4
mov ebx, eax
call fcn.00432240
test al, al
je 0x447955
push 1
lea ecx, [esp + 0x1c]
call fcn.004ba7a0
cmp dword [eax + 0x18], esi
jb 0x447174
mov eax, dword [eax + 4]
jmp 0x447177
add eax, 4
push eax
call fcn.00554a20
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x44]
add esp, 4
cmp ecx, eax
mov dword [esp + 0x6c], eax
jbe 0x4471a1
call fcn.005532de
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x3c]
cmp ecx, eax
lea ebx, [esp + 0x38]
mov edi, ecx
jbe 0x4471b8
call fcn.005532de
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x3c]
cmp ecx, eax
lea esi, [esp + 0x38]
mov dword [esp + 0x5c], eax
jbe 0x4471c9
call fcn.005532de
mov ecx, dword [esp + 0x68]
mov edx, dword [esp + 0x70]
mov eax, dword [esp + 0x6c]
push ecx
push edx
push eax
push ebx
push edi
lea ecx, [esp + 0xac]
push esi
push ecx
call fcn.00438400
mov esi, eax
lea edx, [esp + 0x54]
add esp, 0x1c
cmp edx, dword [esi]
je 0x4471fa
call fcn.005532de
mov eax, dword [esp + 0x5c]
cmp eax, dword [esi + 4]
jne 0x447955
push 2
lea ecx, [esp + 0x1c]
call fcn.004ba7a0
mov esi, 0x10
cmp dword [eax + 0x18], esi
jb 0x447221
mov edi, dword [eax + 4]
jmp 0x447224
lea edi, [eax + 4]
push 3
lea ecx, [esp + 0x1c]
call fcn.004ba7a0
cmp dword [eax + 0x18], esi
jb 0x447239
mov esi, dword [eax + 4]
jmp 0x44723c
lea esi, [eax + 4]
push edi
call fcn.00554a20
mov ecx, dword [esp + 0x6c]
add esp, 4
push eax
push esi
push ecx
lea ecx, [esp + 0xdc]
call fcn.00439940
push eax
lea ecx, [esp + 0x3c]
mov byte [esp + 0x32c], 9
call fcn.004451e0
lea ecx, [esp + 0xd0]
call fcn.004389e0
jmp 0x447955
cmp eax, 1
jne 0x447955
lea ecx, [esp + 0x18]
call fcn.004ba7f0
cmp eax, 0x13
jb 0x447955
lea ecx, [esp + 0x12c]
call fcn.0041cd60
push 1
lea ecx, [esp + 0x1c]
mov byte [esp + 0x32c], 0xa
call fcn.004ba7a0
cmp dword [eax + 0x18], esi
jb 0x4472bf
mov eax, dword [eax + 4]
jmp 0x4472c2
add eax, 4
push eax
call fcn.00554a20
add esp, 4
lea edx, [esp + 0xb0]
push edx
lea ecx, [esp + 0x2c]
mov word [esp + 0x2c4], ax
mov word [esp + 0x1a], ax
call fcn.00437de0
mov ecx, dword [eax]
mov esi, dword [eax + 4]
lea edx, [esp + 0xb8]
mov dword [esp + 0x5c], ecx
push edx
lea ecx, [esp + 0x2c]
call fcn.00437db0
mov ecx, dword [esp + 0x14]
mov ebx, dword [eax]
mov eax, dword [eax + 4]
push ecx
push esi
push eax
call fcn.0043df50
add esp, 0xc
lea edx, [esp + 0x70]
mov dword [esp + 0x74], eax
push edx
lea eax, [esp + 0xc4]
push eax
lea ecx, [esp + 0x30]
mov dword [esp + 0x78], ebx
call fcn.00437de0
mov ecx, eax
call fcn.00435650
test al, al
jne 0x447949
push 2
lea ecx, [esp + 0x1c]
call fcn.004ba7a0
mov edi, 0x10
cmp dword [eax + 0x18], edi
jb 0x44735e
mov eax, dword [eax + 4]
jmp 0x447361
add eax, 4
push eax
call fcn.00554a20
add esp, 4
push 3
lea ecx, [esp + 0x1c]
mov dword [esp + 0x2d0], eax
call fcn.004ba7a0
cmp dword [eax + 0x18], edi
jb 0x447386
mov eax, dword [eax + 4]
jmp 0x447389
add eax, 4
push eax
call fcn.00554a2a
add esp, 4
push 4
lea ecx, [esp + 0x1c]
mov dword [esp + 0x2c6], eax
mov dword [esp + 0x2ca], edx
call fcn.004ba7a0
cmp dword [eax + 0x18], edi
jb 0x4473b5
mov eax, dword [eax + 4]
jmp 0x4473b8
add eax, 4
push eax
call fcn.00554a20
add esp, 4
push 5
lea ecx, [esp + 0x1c]
mov word [esp + 0x2ce], ax
call fcn.004ba7a0
cmp dword [eax + 0x18], edi
jb 0x4473de
mov eax, dword [eax + 4]
jmp 0x4473e1
add eax, 4
push eax
call fcn.00554a20
add esp, 4
push eax
lea ecx, [esp + 0xf8]
push ecx
mov ecx, 0x5ce6d8
mov dword [esp + 0x134], eax
call fcn.0043bb60
cmp dword [esp + 0x108], 0
mov byte [esp + 0x328], 0xb
je 0x44793d
mov edx, dword [esp + 0x2ca]
mov eax, dword [esp + 0x2c6]
mov ecx, dword [esp + 0x2c2]
push edx
push eax
push ecx
mov ecx, 0x5cdf38
call fcn.004324d0
cmp dword [esp + 0x10c], edi
mov eax, dword [esp + 0xf8]
jae 0x447453
lea eax, [esp + 0xf8]
push 0xffffffffffffffff
push eax
lea edx, [esp + 0x13c]
push 0x80
push edx
call fcn.0055501f
mov eax, dword [esp + 0x13c]
add esp, 0x10
push eax
mov ecx, 0x5ce6d8
call fcn.004322f0
test al, al
je 0x44748c
mov dword [esp + 0x130], 1
push 6
lea ecx, [esp + 0x1c]
call fcn.004ba7a0
cmp dword [eax + 0x18], edi
jb 0x4474a1
mov eax, dword [eax + 4]
jmp 0x4474a4
add eax, 4
push eax
call fcn.00554a20
add esp, 4
push 7
lea ecx, [esp + 0x1c]
mov dword [esp + 0x1b8], eax
call fcn.004ba7a0
cmp dword [eax + 0x18], edi
jb 0x4474c9
mov eax, dword [eax + 4]
jmp 0x4474cc
add eax, 4
push eax
call fcn.00554a20
add esp, 4
push 8
lea ecx, [esp + 0x1c]
mov dword [esp + 0x240], eax
call fcn.004ba7a0
cmp dword [eax + 0x18], edi
jb 0x4474f1
mov eax, dword [eax + 4]
jmp 0x4474f4
add eax, 4
push eax
call fcn.00554a20
add esp, 4
test eax, eax
mov dword [esp + 0x2d4], eax
jl 0x44750d
cmp eax, 2
jle 0x447518
mov dword [esp + 0x2d4], 0
push 9
lea ecx, [esp + 0x1c]
call fcn.004ba7a0
cmp dword [eax + 0x18], edi
jb 0x44752d
mov eax, dword [eax + 4]
jmp 0x447530
add eax, 4
push eax
call fcn.00554a20
add esp, 4
push 0xa
lea ecx, [esp + 0x1c]
mov dword [esp + 0x2d4], eax
call fcn.004ba7a0
cmp dword [eax + 0x18], edi
jb 0x447555
mov eax, dword [eax + 4]
jmp 0x447558
add eax, 4
push eax
call fcn.00554a20
add esp, 4
push 0xb
lea ecx, [esp + 0x1c]
mov dword [esp + 0x2dc], eax
call fcn.004ba7a0
cmp dword [eax + 0x18], edi
jb 0x44757d
mov eax, dword [eax + 4]
jmp 0x447580
add eax, 4
push eax
call fcn.00554a20
add esp, 4
cmp dword [esp + 0x2d0], 0
mov dword [esp + 0x2dc], eax
jne 0x4475b5
lea ecx, [esp + 0x12c]
call fcn.00432710
test al, al
jne 0x4475b5
mov dword [esp + 0x2d0], 1
push 0xc
lea ecx, [esp + 0x1c]
call fcn.004ba7a0
cmp dword [eax + 0x18], edi
jb 0x4475ca
mov eax, dword [eax + 4]
jmp 0x4475cd
add eax, 4
push eax
call fcn.00554a20
add esp, 4
push 0xd
lea ecx, [esp + 0x1c]
mov dword [esp + 0x2e4], eax
call fcn.004ba7a0
cmp dword [eax + 0x18], edi
jb 0x4475f2
mov eax, dword [eax + 4]
jmp 0x4475f5
add eax, 4
push eax
call fcn.00554a20
add esp, 4
push 0xe
lea ecx, [esp + 0x1c]
mov dword [esp + 0x2e8], eax
call fcn.004ba7a0
cmp dword [eax + 0x18], edi
jb 0x44761a
mov eax, dword [eax + 4]
jmp 0x44761d
add eax, 4
push eax
call fcn.00554a20
add esp, 4
push 0xf
lea ecx, [esp + 0x1c]
mov dword [esp + 0x2ec], eax
call fcn.004ba7a0
cmp dword [eax + 0x18], edi
jb 0x447642
mov eax, dword [eax + 4]
jmp 0x447645
add eax, 4
push eax
call fcn.00554a20
add esp, 4
push edi
lea ecx, [esp + 0x1c]
mov dword [esp + 0x2f0], eax
call fcn.004ba7a0
cmp dword [eax + 0x18], edi
jb 0x447669
mov eax, dword [eax + 4]
jmp 0x44766c
add eax, 4
push eax
call fcn.00554a20
add esp, 4
cmp dword [esp + 0x1b4], 0
mov dword [esp + 0x2f0], eax
jle 0x44771e
push 0x11
lea ecx, [esp + 0x1c]
call fcn.004ba7a0
push 0x12
lea ecx, [esp + 0x1c]
mov esi, eax
call fcn.004ba7a0
cmp dword [esi + 0x14], 0
mov ebx, eax
je 0x44771e
push esi
push 0x596ee8
call fcn.00438430
add esp, 8
test al, al
je 0x44771e
cmp dword [esi + 0x18], edi
jb 0x4476c6
mov esi, dword [esi + 4]
jmp 0x4476c9
add esi, 4
push 0xffffffffffffffff
push esi
lea ecx, [esp + 0x1c4]
push 0x80
push ecx
call fcn.0055501f
add esp, 0x10
cmp dword [ebx + 0x14], 0
je 0x44771e
push ebx
push 0x596ee8
call fcn.00438430
add esp, 8
test al, al
je 0x44771e
cmp dword [ebx + 0x18], edi
jb 0x447703
mov ebx, dword [ebx + 4]
jmp 0x447706
add ebx, 4
push 0xffffffffffffffff
push ebx
lea edx, [esp + 0x248]
push 0x80
push edx
call fcn.0055501f
add esp, 0x10
lea ecx, [esp + 0x12c]
call fcn.00439dd0
mov bl, al
test bl, bl
jne 0x447762
sub esp, 0x10c
mov ecx, esp
mov dword [esp + 0x168], esp
push 0x59648b
push 0
push 0x59648b
push 0
push 0
call fcn.0041ab20
lea ecx, [esp + 0x2c0]
call fcn.00432140
jmp 0x44778b
mov eax, dword [esp + 0x1b4]
mov ecx, dword [esp + 0x12c]
push eax
push ecx
mov ecx, 0x5ce6d8
call fcn.004323a0
xor edx, edx
cmp edx, eax
sbb eax, eax
neg eax
mov dword [esp + 0x1b8], eax
cmp dword [esp + 0x2e0], 0
jne 0x4477d7
test bl, bl
je 0x4477cc
mov eax, dword [esp + 0x2e4]
cmp eax, 3
ja 0x4477cc
mov ecx, dword [esp + 0x23c]
mov edx, dword [esp + 0x1b4]
push ecx
mov ecx, dword [esp + 0x130]
push edx
push ecx
push eax
mov ecx, 0x5ce6d8
call fcn.00432430
test al, al
jne 0x4477d7
mov dword [esp + 0x2e0], 1
sub esp, 0x1e8
mov edx, esp
mov dword [esp + 0x244], esp
lea eax, [esp + 0x314]
push eax
lea ecx, [esp + 0x247]
push ecx
push edx
call fcn.0043d410
add esp, 0xc
lea edx, [esp + 0x278]
push edx
lea ecx, [esp + 0x214]
call fcn.00437de0
mov esi, eax
lea eax, [esp + 0x290]
push eax
lea ecx, [esp + 0x214]
call fcn.00437db0
mov ecx, dword [esi + 4]
mov edx, dword [esi]
push ecx
mov ecx, dword [eax + 4]
push edx
mov edx, dword [eax]
push ecx
push edx
lea eax, [esp + 0x298]
push eax
call fcn.0043f420
add esp, 0x1fc
push eax
lea ecx, [esp + 0xcc]
push ecx
lea ecx, [esp + 0x30]
call fcn.00437de0
mov ecx, eax
call fcn.00435650
test al, al
jne 0x44793d
lea ecx, [esp + 0x18]
call fcn.004ba7f0
cmp eax, 0x13
jbe 0x447918
push 0x13
lea ecx, [esp + 0x1c]
call fcn.004ba7a0
push 0xffffffffffffffff
push 0
push eax
lea ecx, [esp + 0x300]
call fcn.0040a080
cmp dword [esp + 0x308], 0
je 0x447918
mov edx, dword [esp + 0x23c]
mov eax, dword [esp + 0x1b4]
mov ecx, dword [esp + 0x12c]
push edx
push eax
push ecx
call fcn.00444df0
mov ecx, eax
call fcn.00439340
test al, al
jne 0x447918
mov edx, dword [esp + 0x23c]
mov eax, dword [esp + 0x1b4]
push edx
push eax
sub esp, 0x1c
lea edx, [esp + 0x318]
mov ecx, esp
mov dword [esp + 0x80], esp
push edx
call fcn.0040c140
mov eax, dword [esp + 0x150]
push eax
mov byte [esp + 0x350], 0xc
call fcn.00444df0
mov ecx, eax
mov byte [esp + 0x350], 0xb
call fcn.00445390
mov ecx, dword [esp + 0x2c0]
push ecx
call fcn.00402460
mov ecx, eax
call fcn.0043ea80
lea edx, [esp + 0x12c]
push edx
lea ecx, [esp + 0x2c]
call fcn.004465b0
lea ecx, [esp + 0xf4]
call fcn.004074a0
lea ecx, [esp + 0x12c]
call fcn.0041ce20
lea ecx, [esp + 0x18]
mov byte [esp + 0x328], 5
call fcn.004bb880
mov esi, dword [esp + 0x64]
add esi, 1
lea ecx, [esp + 0x80]
mov dword [esp + 0x64], esi
call fcn.004ba7f0
xor edi, edi
cmp esi, eax
jb 0x446f30
mov esi, dword [esp + 0x2c]
cmp esi, edi
je 0x447a87
mov edi, dword [esp + 0x30]
mov ecx, edi
sub ecx, esi
mov eax, 0x43b3d5b
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
je 0x447a87
cmp esi, edi
mov ebx, edi
jbe 0x4479ce
call fcn.005532de
mov edi, dword [esp + 0x30]
mov esi, dword [esp + 0x2c]
cmp esi, edi
jbe 0x4479ce
call fcn.005532de
mov ecx, dword [esp + 0x14]
push ecx
mov ecx, ebx
sub ecx, esi
mov eax, 0x43b3d5b
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
push eax
push ebx
push esi
call fcn.00446860
mov esi, dword [esp + 0x3c]
add esp, 0x10
test esi, esi
je 0x447a14
mov ecx, dword [esp + 0x30]
sub ecx, esi
mov eax, 0x43b3d5b
imul ecx
sar edx, 3
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x447a1d
call fcn.005532de
mov esi, dword [esp + 0x2c]
mov edx, dword [esi]
push edx
lea eax, [esp + 0xf8]
push eax
call fcn.00443260
mov ecx, eax
call fcn.0048da30
mov eax, dword [esp + 0x108]
test eax, eax
mov byte [esp + 0x328], 0xd
je 0x447a6d
cmp dword [esp + 0x10c], 8
mov ecx, dword [esp + 0xf8]
jae 0x447a5f
lea ecx, [esp + 0xf8]
push eax
push ecx
call fcn.00444df0
mov ecx, eax
call fcn.0043be10
cmp dword [esp + 0x10c], 8
jb 0x447a87
mov ecx, dword [esp + 0xf8]
push ecx
call fcn.0055215c
add esp, 4
lea ecx, [esp + 0x80]
mov byte [esp + 0x328], 3
call fcn.004bb880
mov eax, dword [esp + 0x4c]
mov edi, dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
xor esi, esi
cmp eax, esi
je 0x447b04
mov ecx, dword [esp + 0x50]
sub ecx, eax
mov eax, 0x38e38e39
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
je 0x447b04
call fcn.00402460
mov esi, eax
lea ebx, [esi + 0x3c]
push ebx
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov eax, dword [esi + 0x20]
mov ecx, dword [esp + 0x4c]
mov dword [esi + 0x20], ecx
mov edx, dword [esp + 0x50]
mov dword [esp + 0x4c], eax
mov eax, dword [esi + 0x24]
mov dword [esi + 0x24], edx
mov ecx, dword [esp + 0x54]
mov dword [esp + 0x50], eax
mov eax, dword [esi + 0x28]
mov dword [esi + 0x28], ecx
push ebx
mov dword [esp + 0x58], eax
call edi
xor esi, esi
mov eax, dword [esp + 0x3c]
cmp eax, esi
je 0x447b65
mov ecx, dword [esp + 0x40]
sub ecx, eax
mov eax, 0x38e38e39
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
je 0x447b65
call fcn.00402460
mov esi, eax
lea ebx, [esi + 0x3c]
push ebx
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov eax, dword [esi + 0x30]
mov ecx, dword [esp + 0x3c]
mov dword [esi + 0x30], ecx
mov edx, dword [esp + 0x40]
mov dword [esp + 0x3c], eax
mov eax, dword [esi + 0x34]
mov dword [esi + 0x34], edx
mov ecx, dword [esp + 0x44]
mov dword [esp + 0x40], eax
mov eax, dword [esi + 0x38]
mov dword [esi + 0x38], ecx
push ebx
mov dword [esp + 0x48], eax
call edi
xor esi, esi
mov eax, dword [esp + 0x2c]
cmp eax, esi
je 0x447bc6
mov ecx, dword [esp + 0x30]
sub ecx, eax
mov eax, 0x43b3d5b
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
je 0x447bc6
call fcn.00402460
mov esi, eax
lea ebx, [esi + 0x3c]
push ebx
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov eax, dword [esi + 0x10]
mov ecx, dword [esp + 0x2c]
mov dword [esi + 0x10], ecx
mov edx, dword [esp + 0x30]
mov dword [esp + 0x2c], eax
mov eax, dword [esi + 0x14]
mov dword [esi + 0x14], edx
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x30], eax
mov eax, dword [esi + 0x18]
mov dword [esi + 0x18], ecx
push ebx
mov dword [esp + 0x38], eax
call edi
xor esi, esi
call fcn.00402460
add eax, 0x3c
push eax
call edi
cmp dword [esp + 0x128], 0x10
jb 0x447beb
mov edx, dword [esp + 0x114]
push edx
call fcn.0055215c
add esp, 4
mov eax, dword [esp + 0x2c]
cmp eax, esi
mov dword [esp + 0x128], 0xf
mov dword [esp + 0x124], esi
mov byte [esp + 0x114], 0
je 0x447c2f
mov ecx, dword [esp + 0x14]
push ecx
mov ecx, dword [esp + 0x34]
lea edx, [esp + 0x2c]
push edx
push ecx
push eax
call fcn.0043e170
mov edx, dword [esp + 0x3c]
push edx
call fcn.0055215c
add esp, 0x14
mov eax, dword [esp + 0x3c]
cmp eax, esi
mov dword [esp + 0x2c], esi
mov dword [esp + 0x30], esi
mov dword [esp + 0x34], esi
je 0x447c65
mov ecx, dword [esp + 0x14]
push ecx
mov ecx, dword [esp + 0x44]
lea edx, [esp + 0x3c]
push edx
push ecx
push eax
call fcn.0043e1f0
mov edx, dword [esp + 0x4c]
push edx
call fcn.0055215c
add esp, 0x14
mov eax, dword [esp + 0x4c]
cmp eax, esi
mov dword [esp + 0x3c], esi
mov dword [esp + 0x40], esi
mov dword [esp + 0x44], esi
je 0x447c9b
mov ecx, dword [esp + 0x14]
push ecx
mov ecx, dword [esp + 0x54]
lea edx, [esp + 0x4c]
push edx
push ecx
push eax
call fcn.0043e1f0
mov edx, dword [esp + 0x5c]
push edx
call fcn.0055215c
add esp, 0x14
xor eax, eax
mov ecx, dword [esp + 0x320]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x308]
xor ecx, esp
call fcn.00552d63
mov esp, ebp
pop ebp
ret 4