Function at 0x10004451
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x100588ac
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xc0
cmp byte [ebp + 8], 0
push ebx
push esi
push edi
mov dword [esp + 0x20], edx
mov dword [esp + 0x5c], ecx
je 0x100044ae
cmp byte [ebp + 0x30], 0
je 0x10004496
push 0
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
jmp 0x10004bb9
mov eax, dword [ebp + 0x1c]
mov ecx, dword [ebp + 0x38]
mov eax, dword [eax]
mov dword [ecx], eax
mov eax, dword [ebp + 0x24]
mov ecx, dword [ecx]
neg ecx
mov eax, dword [eax]
jmp 0x1000461b
mov dword [esp + 0x1c], 0x12da
cmp dword [esp + 0x1c], 0x13a0
push 1
pop edi
jle 0x10004557
xor esi, esi
mov dword [esp + 0x14], esi
xor edi, edi
mov dword [esp + 0x18], edi
mov eax, edi
xor ebx, ebx
and eax, esi
mov dword [esp + 0x24], eax
mov esi, eax
xor edi, edi
mov dword [esp + 0x30], 0x687d
mov eax, esi
lea ecx, [esp + 0x98]
or eax, edi
cdq
push edx
push eax
call fcn.10001a11
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x10004506
mov eax, dword [eax]
push eax
call fcn.100400a6
pop ecx
push 0
push 1
lea ecx, [esp + 0xa0]
call fcn.10001eb4
add edi, ebx
dec dword [esp + 0x30]
jne 0x100044e9
inc ebx
cmp ebx, 0x6479
jl 0x100044df
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x14]
inc edi
mov dword [esp + 0x18], edi
cmp edi, 0xe46
jl 0x100044d3
inc esi
mov dword [esp + 0x14], esi
cmp esi, 0x49f8
jl 0x100044cd
xor edi, edi
inc edi
cmp dword [esp + 0x1c], 0x10e1
jge 0x1000456c
push str.bgbmyzypd_zkexxxeb_vguhugmit_avuwddt_zxfrp_cqjjxzgr_qkh_zunid_tgj_igf_oebk_vwrej
call fcn.100400a6
pop ecx
or dword [esp + 0xd4], 0xffffffff
cmp byte [ebp + 0x34], 0
je 0x10004622
mov esi, dword [ebp + 0x18]
xor edx, edx
mov ebx, dword [ebp + 0x2c]
push 0xfffffffffffffffa
pop ecx
mov dword [esi], edi
mov eax, dword [esi]
mov eax, dword [ebx]
mov edi, dword [ebp + 0x14]
mov eax, dword [edi]
sub ecx, eax
mov eax, dword [ebx]
cmp ecx, eax
mov eax, dword [esi]
setg dl
imul eax, edx
mov dword [esi], eax
mov eax, dword [esi]
mov eax, dword [esp + 0x20]
mov esi, dword [ebp + 0xc]
mov eax, dword [eax]
cmp dword [edi], 0x97911697
mov edi, dword [ebp + 0x10]
sbb edx, edx
xor ecx, ecx
neg edx
mov eax, dword [edi]
add edx, dword [eax + 4]
mov eax, dword [esi]
cmp edx, dword [eax]
mov eax, dword [ebp + 0x14]
setge cl
xor edx, edx
mov eax, dword [eax]
cmp eax, ecx
mov eax, dword [esi]
setne dl
sub edx, dword [eax]
mov eax, dword [edi]
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
test edx, edx
setle cl
xor edx, edx
imul ecx, dword [eax + 4]
mov eax, dword [ebx]
cmp ecx, eax
mov eax, dword [ebx]
setle dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [ebx]
setle cl
cmp ecx, 0xc39b398e
sbb ecx, ecx
xor edx, edx
inc ecx
cmp ecx, eax
mov eax, dword [ebp + 0x14]
setle dl
mov ecx, dword [eax]
mov eax, dword [ebp + 0x20]
imul ecx, edx
mov dword [eax], ecx
jmp 0x10004bb9
mov ebx, dword [ebp + 0x28]
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x1c], 0xac204e2d
mov dword [esp + 0x10], 0x8530de9b
mov dword [esp + 0x14], 0
mov dword [esp + 0x30], 0
mov dword [esp + 0x28], 0xcef3cf68
mov dword [esp + 0x24], 5
mov dword [esp + 0x1c], 0
jmp 0x10004673
mov eax, dword [esp + 0x1c]
mov dword [esp + eax*4 + 0x64], 0xfff8
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], 3
jl 0x10004663
mov dword [esp + 0x1c], 0xffffffe3
cmp dword [esp + 0x1c], 6
jge 0x100047b8
mov dword [esp + 0x60], 0x390197f0
mov dword [esp + 0x20], 0x6264
cmp dword [esp + 0x20], 0x6437
jle 0x10004741
xor edi, edi
mov dword [esp + 0x48], edi
xor esi, esi
mov dword [esp + 0x44], esi
mov ecx, esi
mov dword [esp + 0x18], edi
mov esi, edi
xor ebx, ebx
shl esi, cl
mov dword [esp + 0x18], esi
mov ecx, ebx
mov dword [esp + 0x28], esi
xor edi, edi
shl esi, cl
mov eax, esi
lea ecx, [esp + 0xb0]
xor eax, edi
cdq
push edx
push eax
call fcn.10001a11
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x100046ee
mov eax, dword [eax]
push eax
call fcn.100400a6
pop ecx
push 0
push 1
lea ecx, [esp + 0xb8]
call fcn.10001eb4
inc edi
cmp edi, 0x4a00
jl 0x100046d1
mov esi, dword [esp + 0x18]
inc ebx
cmp ebx, 0x1e5f
jl 0x100046c7
mov esi, dword [esp + 0x44]
mov edi, dword [esp + 0x48]
inc esi
mov dword [esp + 0x44], esi
cmp esi, 0x25a2
jl 0x100046b7
inc edi
mov dword [esp + 0x48], edi
cmp edi, 0x465e
jl 0x100046b1
cmp dword [esp + 0x20], 0x60d7
jge 0x10004756
push str.xboidanor_zqgpxtx_firpceujh_aeyjjbo_epf_dphlair_xbbjpky_rvjarnnby_jlvdpey_hze_qgijjrjiv_fcrlje_mbjophb_nsnsgwso
call fcn.100400a6
pop ecx
or dword [esp + 0xd4], 0xffffffff
xor edi, edi
mov dword [esp + 0x18], 0
inc edi
jmp 0x1000477e
mov eax, dword [esp + 0x18]
mov dword [esp + eax*4 + 0x94], 0xfffffffe
inc dword [esp + 0x18]
cmp dword [esp + 0x18], edi
jl 0x1000476b
push 0x1456
push ecx
lea eax, [esp + 0x68]
push edi
push eax
call fcn.10003bdf
add esp, 0xc
xor dl, dl
push 0x483b
call fcn.10005711
inc dword [esp + 0x24]
cmp dword [esp + 0x24], 6
pop ecx
pop ecx
jl 0x1000468d
mov ebx, dword [ebp + 0x28]
mov eax, dword [esp + 0x30]
xor ecx, ecx
add eax, dword [esp + 0x14]
add eax, dword [esp + 0x10]
mov dword [esp + 0x28], eax
mov edx, dword [esp + 0x24]
imul edx, dword [esp + 0x10]
mov eax, dword [esp + 0x30]
cmp edx, eax
setl cl
mov dword [esp + 0x1c], ecx
cmp dword [esp + 0x1c], 9
sbb eax, eax
xor ecx, ecx
neg eax
add eax, dword [esp + 0x24]
cmp eax, 0x83e7
mov eax, dword [esp + 0x10]
setge cl
xor edx, edx
cmp ecx, eax
mov eax, dword [esp + 0x14]
setl dl
xor ecx, ecx
cmp edx, eax
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x6c]
setne cl
neg edx
sub edx, ecx
neg edx
sbb edx, edx
lea ecx, [edx + 1]
add ecx, eax
mov eax, dword [esp + 0x14]
inc dword [esp + 0x6c]
cmp ecx, eax
jg 0x10004832
mov eax, edi
jmp 0x10004834
xor eax, eax
xor ecx, ecx
cmp eax, 0x90a
mov eax, dword [esp + 0x10]
sete cl
xor edx, edx
cmp eax, ecx
push 2
setg dl
add edx, dword [esp + 0x34]
pop esi
cmp edx, 0x68dd2ac3
jge 0x10004862
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x1c], eax
jmp 0x100048cf
mov dword [esp + 0x10], 0
jmp 0x100048a7
mov dword [esp + 0x14], esi
cmp dword [esp + 0x14], 0
jl 0x100048a3
push 0x5b7e
push 0
push edi
lea eax, [esp + 0x3b]
mov byte [esp + 0x3b], 0
push 0x4425
push eax
mov edx, 0x599e
xor cl, cl
call fcn.10003dac
add esp, 0x14
dec dword [esp + 0x14]
jns 0x10004877
inc dword [esp + 0x10]
cmp dword [esp + 0x10], esi
jle 0x1000486c
push 0x209a
push 0x6615
push 0x37d8
lea edx, [esp + 0x39]
mov byte [esp + 0x39], 0
xor cl, cl
call fcn.10007517
add esp, 0xc
mov dword [esp + 0x28], 0x61f9c28a
push ecx
call fcn.100088b7
pop ecx
push 0
push 0x6d7e
push 0x5e52
push 0x37ec
push 0x1157
push 0x7689
push 0x3678
push 0x1a39
push 0x34a5
push 0x2138
push edi
mov edx, 0x481e
xor cl, cl
call fcn.10008275
mov eax, dword [ebx]
lea edx, [esp + 0x78]
add esp, 0x18
mov dword [esp + 0x54], eax
lea ecx, [esp + 0x54]
call fcn.10003ae9
add esp, 0x14
lea ecx, [esp + 0x50]
push edi
call fcn.10001bdd
push 3
pop edx
mov dword [esp + 0x24], edx
xor ebx, ebx
mov dword [esp + 0x28], 0xb275cf8b
mov dword [esp + 0x10], ebx
jmp 0x10004967
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x50]
mov dword [eax + ecx*4], 0x9f9b3198
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edi
jl 0x10004954
mov dword [esp + 0x10], ebx
jmp 0x10004982
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x8c], ebx
inc dword [esp + 0x10]
cmp dword [esp + 0x10], esi
jl 0x10004973
mov eax, dword [esp + 0x50]
mov dword [eax], edx
mov dword [esp + 0x14], ebx
mov dword [esp + 0x20], 0x8e136dc9
cmp dword [esp + 0x14], ebx
jne 0x10004a13
mov eax, dword [esp + 0x50]
cmp dword [eax], ebx
je 0x100049cb
mov eax, dword [esp + 0x14]
xor edx, edx
mov dword [esp + 0x24], eax
mov ecx, dword [esp + 0x14]
add ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x14]
cmp ecx, eax
mov ecx, edi
setge dl
sub edx, dword [esp + 0x20]
jne 0x100049cd
mov ecx, ebx
mov eax, dword [esp + 0x50]
mov edx, dword [eax]
xor eax, eax
cmp ecx, edx
setle al
xor ecx, ecx
cmp eax, edx
setne cl
xor eax, eax
cmp ecx, edx
setl al
xor ecx, ecx
cmp eax, edx
mov eax, dword [esp + 0x14]
setle cl
xor edx, edx
add ecx, 0x5fd0
cmp eax, ecx
mov eax, dword [esp + 0x20]
setle dl
xor ecx, ecx
cmp edx, eax
mov eax, ebx
setg cl
cmp ecx, dword [esp + 0x14]
jge 0x10004a15
mov eax, edi
mov dword [esp + 0x8c], eax
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x50]
dec dword [eax]
cmp dword [eax], 0xffffffe2
jne 0x1000498e
lea ecx, [esp + 0x50]
call fcn.10001c3a
mov edi, ebx
xor ecx, ecx
inc ecx
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], 0xea2a3b3f
mov dword [esp + 0x14], 0xffffffff
mov dword [esp + 0x28], 0x8d9dcee3
mov dword [esp + 0x18], ebx
jmp 0x10004a6f
mov eax, dword [esp + 0x18]
mov dword [esp + eax*4 + 0x3c], 0x1476
inc dword [esp + 0x18]
cmp dword [esp + 0x18], ecx
jl 0x10004a5f
dec dword [esp + 0x14]
jne 0x10004aa9
mov eax, dword [esp + 0x20]
cmp dword [esp + 0x3c], ebx
je 0x10004a95
mov eax, dword [esp + 0x28]
mov eax, dword [esp + 0x3c]
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
cmp dword [esp + 0x24], 0x8af8
jle 0x10004aa9
mov ecx, ebx
mov eax, dword [esp + 0x3c]
xor edx, edx
cmp eax, ecx
setge dl
xor ecx, ecx
neg edx
cmp edx, 0x5b3847d2
setge cl
xor eax, eax
cmp ecx, 0xaf86
mov ecx, 0x5c0b
setg al
xor dl, dl
mov dword [esp + 0x20], eax
call fcn.100084a3
mov esi, dword [esp + 0x4c]
mov dl, 0xc8
mov cl, byte [edi + esi]
call fcn.1000cf03
mov byte [edi + esi], al
inc edi
push 4
pop esi
cmp edi, esi
jb 0x10004a3a
push 2
lea ecx, [esp + 0x74]
call fcn.10001bdd
lea eax, [esp + 0x34]
mov dword [esp + 0xd4], esi
push eax
lea ecx, [esp + 0x74]
call fcn.10005746
pop ecx
mov dword [esp + 0x34], ebx
jmp 0x10004b30
mov eax, dword [esp + 0x34]
mov dword [esp + eax*4 + 0x7c], 0x9bdba76a
inc dword [esp + 0x34]
cmp dword [esp + 0x34], esi
jl 0x10004b20
mov dword [esp + 0x88], 1
cmp dword [esp + 0x88], ebx
jl 0x10004ba6
lea eax, [esp + 0x38]
mov dword [esp + 0x38], 0xffffffff
push eax
push ebx
push 1
lea eax, [esp + 0x7c]
mov edx, 0x625a
push eax
push 0x4c82
mov cl, 1
call fcn.10003dac
add esp, 0x14
mov dword [esp + 0x38], 1
cmp dword [esp + 0x38], ebx
jl 0x10004b9d
mov byte [esp + 0x2e], bl
cmp byte [esp + 0x2e], 0
je 0x10004b97
push ecx
push ecx
xor dl, dl
call fcn.10003b2a
pop ecx
pop ecx
dec dword [esp + 0x38]
jns 0x10004b81
dec dword [esp + 0x88]
jns 0x10004b4a
lea ecx, [esp + 0x70]
call fcn.10001c3a
mov ecx, dword [esp + 0x5c]
mov eax, dword [esp + 0x40]
mov dword [ecx], eax
mov ecx, dword [esp + 0xcc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret