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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x10070ecd
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x148
push ebx
push esi
push edi
mov dword [esp + 0x48], edx
xor ebx, ebx
push 3
mov dword [esp + 0x2c], 0xffffffff
mov edi, ecx
mov dword [esp + 0x14], ebx
pop esi
mov dword [esp + 0x28], 0xffffffe9
cmp dword [esp + 0x28], 0xfffffffe
push 1
mov dword [esp + 0x54], edi
pop ecx
jge 0x1003754e
jmp 0x1003732f
xor ecx, ecx
inc ecx
mov dword [esp + 0x1c], 0xa7c20398
mov dword [esp + 0x18], 0xe7eb6652
mov dword [esp + 0x18], 0xb09c821f
mov dword [esp + 0x18], 0xffffffff
mov dword [esp + 0xc], ebx
jmp 0x10037364
mov eax, dword [esp + 0xc]
mov dword [esp + eax*4 + 0xa0], ecx
inc dword [esp + 0xc]
cmp dword [esp + 0xc], esi
jl 0x10037355
mov dword [esp + 0xc], ebx
jmp 0x10037383
mov eax, dword [esp + 0xc]
mov dword [esp + eax*4 + 0x110], 0xfffffffe
inc dword [esp + 0xc]
cmp dword [esp + 0xc], esi
jl 0x10037370
mov byte [esp + 0x33], bl
lea ecx, [esp + 0x33]
call fcn.1003676d
mov dword [esp + 0x1c], ebx
jmp 0x10037534
mov dword [esp + 0xc], 0x367f5ed9
mov dword [esp + 0x18], 0x402be2ff
mov dword [esp + 0x2c], 0xc04840c2
mov byte [esp + 0x17], bl
cmp byte [esp + 0x17], bl
je 0x100373c6
call fcn.10036c43
mov dword [esp + 0xc], 2
cmp dword [esp + 0xc], ebx
jl 0x10037530
mov dword [esp + 0x20], 6
mov dword [esp + 0x2c], esi
mov dword [esp + 0x20], 2
cmp dword [esp + 0x20], ebx
jl 0x1003744c
mov dword [esp + 0x18], 8
mov dword [esp + 0x18], 2
cmp dword [esp + 0x18], ebx
jl 0x10037437
mov dword [esp + 0x10], 0xd0714ad
mov dword [esp + 0x10], ebx
jmp 0x1003742a
mov byte [esp + 0x17], bl
cmp byte [esp + 0x17], bl
je 0x10037426
call dword [sym.imp.USER32.dll_WaitMessage]
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 2
jle 0x10037416
dec dword [esp + 0x18]
jns 0x10037408
mov byte [esp + 0x17], bl
cmp byte [esp + 0x17], bl
je 0x10037446
call fcn.10036c4c
dec dword [esp + 0x20]
jns 0x100373f2
mov eax, dword [esp + 0x1c]
add eax, 0x6141060d
cmp eax, dword [esp + 0xc]
jne 0x1003746c
mov eax, dword [esp + 0xc]
cmp dword [esp + eax*4 + 0xa0], ebx
jne 0x1003746c
mov ecx, ebx
jmp 0x1003746f
xor ecx, ecx
inc ecx
mov eax, dword [esp + 0x28]
xor edx, edx
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x28]
add eax, ecx
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0xa8]
sub eax, dword [esp + 0x18]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x18]
add eax, dword [esp + 0x28]
cmp eax, 7
mov eax, dword [esp + 0x10]
setne dl
xor ecx, ecx
cmp eax, edx
setle cl
cmp ecx, dword [esp + 0xc]
jle 0x100374bc
cmp dword [esp + 0x18], ebx
je 0x100374bc
xor edx, edx
inc edx
jmp 0x100374be
mov edx, ebx
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + eax*4 + 0xa0]
mov eax, dword [esp + 0xc]
imul eax, edx
xor edx, edx
cmp eax, ecx
setge dl
sub edx, dword [esp + 0xa0]
mov eax, dword [esp + 0xc]
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
cmp eax, edx
setge cl
mov dword [esp + 0x18], ecx
mov eax, dword [esp + 0xc]
mov eax, dword [esp + eax*4 + 0xa0]
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x2c]
neg eax
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x114], eax
mov dword [esp + 0x2c], eax
dec dword [esp + 0xc]
jns 0x100373d8
dec dword [esp + 0x1c]
cmp dword [esp + 0x1c], 0xffffffe9
je 0x1003739f
inc dword [esp + 0x28]
cmp dword [esp + 0x28], 0xfffffffe
jl 0x1003732c
cmp dword [edi + 0x10], ebx
jne 0x1003755a
xor al, al
jmp 0x10037e37
push 0x1c41
lea eax, [esp + 0x4c]
push eax
push ebx
call fcn.1003806d
mov dword [esp + 0x28], 0x5c68ec0a
add esp, 0xc
mov dword [esp + 0xd4], 0xafe44fa3
mov dword [esp + 0x10], ebx
jmp 0x10037599
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x134], 0x1328f6c7
inc dword [esp + 0x10]
cmp dword [esp + 0x10], esi
jl 0x10037586
mov dword [esp + 0x1c], 0xffffffeb
jmp 0x10037685
mov dword [esp + 0x24], 0x6cce57bf
mov dword [esp + 0x24], 0x75cb
mov dword [esp + 0x2c], 0x1d92
cmp dword [esp + 0x2c], 0xea6
jge 0x10037655
lea eax, [esp + 0x3c]
push eax
push 0x1000ea08
call fcn.10056960
jmp 0x10037646
dec eax
mov dword [esp + 0x3c], eax
lea eax, [esp + 0x90]
push eax
lea eax, [esp + 0x9c]
push eax
lea eax, [esp + 0xd4]
push eax
lea eax, [esp + 0xd4]
push eax
push 0x1000eac0
call fcn.10056960
mov ecx, dword [esp + 0xa4]
add esp, 0x14
sub ecx, dword [esp + 0x98]
jns 0x10037627
neg ecx
add ecx, dword [esp + 0xcc]
mov eax, dword [esp + 0xc8]
dec eax
cmp ecx, eax
cmovg ecx, eax
push ecx
push 0x1000ea7c
call fcn.10056cf1
mov eax, dword [esp + 0x44]
pop ecx
pop ecx
test eax, eax
jne 0x100375e3
dec eax
mov dword [esp + 0x3c], eax
mov dword [esp + 0x10], ebx
jmp 0x1003766e
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x140], 7
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 4
jl 0x1003765b
lea ecx, [esp + 0xd4]
call fcn.10036c57
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], 0xffffffed
jne 0x100375ac
call fcn.10036f01
push 2
lea ecx, [esp + 0x78]
call fcn.100301c4
push 1
lea ecx, [esp + 0x84]
mov dword [esp + 0x160], ebx
call fcn.100301c4
mov byte [esp + 0x15c], 1
lea eax, [esp + 0x110]
push dword [esp + 0x50]
movdqa xmm0, xmmword [0x1000efa0]
lea ecx, [esp + 0x60]
push eax
lea eax, [esp + 0x108]
mov dword [esp + 0x2c], 0x3b3152c5
push eax
push ebx
movdqu xmmword [esp + 0x110], xmm0
mov dword [esp + 0x6c], ebx
mov dword [esp + 0x70], ebx
mov dword [esp + 0x74], ebx
call fcn.100356d8
push 1
lea ecx, [esp + 0x6c]
mov byte [esp + 0x160], 2
call fcn.100301c4
lea edx, [esp + 0x74]
lea ecx, [esp + 0x58]
call fcn.10037060
lea edx, [esp + 0x80]
lea ecx, [esp + 0x58]
call fcn.100370de
lea edx, [esp + 0x68]
lea ecx, [esp + 0x58]
call fcn.10037225
mov eax, dword [esp + 0x80]
mov dword [eax], ebx
xor eax, eax
inc eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x68]
mov dword [esp + 0x24], 0x80ca9f8d
mov dword [esp + 0x24], 0xa9bacde9
mov dword [esp + 0x24], 0xc58bdfad
dec dword [eax]
mov dword [esp + 0x24], 0x8b78acc4
mov byte [esp + 0x17], bl
cmp byte [esp + 0x17], 0
je 0x10037787
call fcn.10037244
mov esi, dword [esp + 0x80]
xor eax, eax
inc eax
inc dword [esi]
cmp dword [esi], eax
jle 0x10037749
cmp dword [esp + 0x68], 0
je 0x100377b4
push dword [esp + 0x68]
call fcn.10056e57
pop ecx
mov dword [esp + 0x68], ebx
mov dword [esp + 0x6c], ebx
mov dword [esp + 0x70], ebx
cmp dword [esp + 0x5c], 0
je 0x100377d1
push dword [esp + 0x5c]
call fcn.10056e57
pop ecx
mov dword [esp + 0x5c], ebx
mov dword [esp + 0x60], ebx
mov dword [esp + 0x64], ebx
push esi
call fcn.10056e57
or dword [esp + 0x160], 0xffffffff
cmp dword [esp + 0x78], 0
pop ecx
mov dword [esp + 0x80], ebx
mov dword [esp + 0x84], ebx
mov dword [esp + 0x88], ebx
je 0x10037812
push dword [esp + 0x74]
call fcn.10056e57
pop ecx
mov dword [esp + 0x74], ebx
mov dword [esp + 0x78], ebx
mov dword [esp + 0x7c], ebx
cmp dword [edi + 0x14], 0x10
jb 0x1003781c
mov ecx, dword [edi]
jmp 0x1003781e
mov ecx, edi
cmp dword [edi + 0x14], 0x10
mov dword [esp + 0x44], ecx
jb 0x1003782c
mov edx, dword [edi]
jmp 0x1003782e
mov edx, edi
mov eax, dword [edi + 0x10]
add eax, edx
cmp ecx, eax
je 0x10037e35
mov al, byte [ecx]
cmp al, 0x30
jl 0x10037d49
cmp al, 0x39
jg 0x10037d49
mov dword [esp + 0x20], 0xfffffff6
xor ecx, ecx
inc ecx
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], 8
mov dword [esp + 0x28], 0xffffffff
mov dword [esp + 0x2c], 0x234d
cmp dword [esp + 0x2c], 0x71a
jge 0x10037924
lea eax, [esp + 0x54]
mov ecx, 0x10662ef0
push eax
call fcn.1002feaa
xor ecx, ecx
inc ecx
mov dword [esp + 0x18], ecx
cmp dword [esp + 0x54], ecx
jl 0x10037924
lea eax, [esp + 0x4c]
mov ecx, 0x10662ef0
push eax
call fcn.1002feaa
mov esi, dword [esp + 0x4c]
mov edi, ebx
test esi, esi
je 0x100378d7
lea eax, [esp + 0x8c]
mov ecx, 0x10662ef0
push eax
call fcn.1002feaa
add edi, dword [esp + 0x8c]
dec esi
jne 0x100378bb
push edi
dec esi
mov edx, 0x1000ed0c
push ecx
mov dword [esp + 0x54], esi
mov esi, dword [esp + 0x20]
push esi
push ecx
mov ecx, 0x10662e38
call fcn.10034738
pop ecx
mov ecx, eax
call fcn.100300a5
mov edx, 0x1000e974
mov ecx, eax
call fcn.10034738
pop ecx
mov ecx, eax
call fcn.100300a5
push eax
call fcn.100346b6
inc esi
pop ecx
mov dword [esp + 0x18], esi
cmp esi, dword [esp + 0x54]
jle 0x100378a2
xor ecx, ecx
inc ecx
mov dword [esp + 0x18], 0x1ba80278
mov dword [esp + 0x24], 0x9c18
mov eax, dword [esp + 0x20]
mov dword [esp + 0xc], eax
cmp dword [esp + 0x10], ebx
jne 0x10037c2a
imul eax, dword [esp + 0x20], 0xa21e
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x28]
cmp eax, dword [esp + 0x20]
jl 0x10037960
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0x20]
neg eax
sbb eax, eax
neg eax
cmp eax, 5
je 0x10037977
mov eax, ecx
cmp dword [esp + 0x10], ebx
jne 0x10037979
mov eax, ebx
cmp eax, dword [esp + 0x18]
jne 0x10037987
cmp dword [esp + 0x18], ebx
jne 0x10037987
mov ecx, ebx
mov eax, dword [esp + 0x18]
xor edx, edx
sub ecx, eax
mov eax, dword [esp + 0x20]
cmp ecx, 0x3e018ebd
setne dl
xor ecx, ecx
cmp edx, eax
setge cl
add ecx, dword [esp + 0xc]
jne 0x10037c2a
mov dword [esp + 0x18], ebx
mov dword [esp + 0x2c], 0x1f9f
cmp dword [esp + 0x2c], 0xa22
jge 0x10037acc
mov esi, ebx
mov dword [esp + 0xd8], ebx
mov dword [esp + 0x38], esi
mov dword [esp + 0xdc], ebx
mov dword [esp + 0xe0], ebx
lea eax, [esp + 0x40]
mov dword [esp + 0x15c], 3
push eax
mov ecx, 0x10662ef0
call fcn.1002feaa
push dword [esp + 0x40]
lea ecx, [esp + 0xb4]
call fcn.100301c4
mov byte [esp + 0x15c], 4
mov edi, ebx
cmp dword [esp + 0x40], 0
jle 0x10037a77
mov eax, dword [esp + 0xb0]
mov ecx, 0x10662ef0
lea ebx, [eax + edi*4]
push ebx
call fcn.1002feaa
test edi, edi
jne 0x10037a39
inc esi
jmp 0x10037a54
mov eax, dword [ebx - 4]
cmp eax, dword [ebx]
jl 0x10037a36
lea eax, [esp + 0x38]
push eax
lea ecx, [esp + 0xdc]
call fcn.1003af68
xor esi, esi
inc esi
inc edi
mov dword [esp + 0x38], esi
cmp edi, dword [esp + 0x40]
jl 0x10037a1d
push 0
pop ebx
test esi, esi
je 0x10037a77
lea eax, [esp + 0x38]
push eax
lea ecx, [esp + 0xdc]
call fcn.1003af68
mov eax, dword [esp + 0xd8]
mov ecx, 0x10662e38
push dword [eax]
call fcn.100300a5
push eax
call fcn.100346b6
mov eax, dword [esp + 0xb4]
pop ecx
test eax, eax
je 0x10037ab8
push eax
call fcn.10056e57
pop ecx
mov dword [esp + 0xb0], ebx
mov dword [esp + 0xb4], ebx
mov dword [esp + 0xb8], ebx
or dword [esp + 0x15c], 0xffffffff
lea ecx, [esp + 0xd8]
call fcn.1003034d
mov dword [esp + 0x24], 0xfffffff8
mov dword [esp + 0x2c], 2
mov dword [esp + 0x10], ebx
jmp 0x10037af5
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0xe8], 0x5e4bc795
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 4
jl 0x10037ae2
push 3
mov dword [esp + 0x10], ebx
pop esi
jmp 0x10037b1f
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + eax*4 + 0xe8]
mov eax, dword [esp + 0xc]
mov dword [esp + eax*4 + 0xe8], ecx
inc dword [esp + 0xc]
cmp dword [esp + 0xc], esi
jle 0x10037b05
mov dword [esp + 0xc], esi
cmp dword [esp + 0xc], ebx
jl 0x10037c4a
xor edx, edx
inc edx
mov dword [esp + 0x1c], edx
mov dword [esp + 0x2c], 0xda9a
mov dword [esp + 0x10], 0xc77a5c6a
mov dword [esp + 0x10], 0xfffffff6
mov dword [esp + 0x10], 0xdbcc772a
mov dword [esp + 0x10], ebx
jmp 0x10037b73
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x128], 0xa2e34ef9
inc dword [esp + 0x10]
cmp dword [esp + 0x10], esi
jl 0x10037b60
inc dword [esp + 0x1c]
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
dec dword [esp + 0x18]
cmp eax, ecx
jl 0x10037beb
mov eax, dword [esp + 0x28]
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0xc]
cmp dword [esp + 0x2c], ebx
jne 0x10037bab
mov esi, ebx
cmp dword [esp + 0x20], ebx
je 0x10037bad
mov esi, edx
mov eax, dword [esp + 0x24]
xor ecx, ecx
cmp esi, eax
setl cl
mov dword [esp + 0x12c], ecx
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + eax*4 + 0xe8]
mov eax, dword [esp + 0xc]
mov dword [esp + eax*4 + 0xe8], ecx
mov eax, dword [esp + 0x1c]
imul eax, ecx
dec eax
neg eax
sbb eax, eax
neg eax
mov dword [esp + 0x10], eax
mov eax, edx
jne 0x10037bed
mov eax, ebx
mov ecx, 0xf6e56995
cmp ecx, eax
sbb eax, eax
neg eax
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x10]
sub eax, 0xe0da
neg eax
sbb eax, eax
inc eax
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0xc]
cmp dword [esp + eax*4 + 0xe8], ebx
jne 0x10037c4a
dec dword [esp + 0xc]
push 3
pop esi
jns 0x10037b36
jmp 0x10037c4a
mov dword [esp + 0x24], 0xffffffff
mov dword [esp + 0x18], 0xfffffff7
mov eax, dword [esp + 0x24]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x28], eax
push ebx
lea eax, [esp + 0x48]
push eax
push 0x360e
lea eax, [esp + 0x54]
push 0x55d4
push eax
call fcn.10037e8a
mov dword [esp + 0x48], 0xffffffff
add esp, 0x14
mov dword [esp + 0xd0], 1
mov dword [esp + 0x24], ebx
mov byte [esp + 0x17], bl
cmp byte [esp + 0x17], 0
je 0x10037c9e
push 0x249
push 0x119c
push 0x229a
call dword [sym.imp.KERNEL32.dll_MulDiv]
mov dword [esp + 0x34], ebx
jmp 0x10037d30
lea eax, [esp + 0x94]
mov dword [esp + 0xac], 0xffff
push eax
lea eax, [esp + 0xd4]
mov dword [esp + 0xc4], 0x74734688
push eax
lea eax, [esp + 0xa4]
mov dword [esp + 0xa4], 0xc8d4675
push eax
lea eax, [esp + 0xcc]
mov dword [esp + 0xa0], 0xffffffff
push eax
lea eax, [esp + 0x44]
mov dword [esp + 0xd4], 2
push eax
lea eax, [esp + 0xc0]
mov dword [esp + 0xd0], 0xfffd
push eax
lea edx, [esp + 0xdc]
lea ecx, [esp + 0xd4]
call fcn.1003725b
add esp, 0x18
dec dword [esp + 0x34]
cmp dword [esp + 0x34], 0xfffffffb
jl 0x10037ca7
mov ecx, dword [esp + 0x44]
mov edi, dword [esp + 0x50]
inc ecx
jmp 0x1003781e
lea ecx, [esp + 0x48]
call fcn.100372cf
mov dword [esp + 0x10], ebx
xor ecx, ecx
mov dword [esp + 0x18], 0x465cd386
inc ecx
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x18], ecx
mov dword [esp + 0xc], ebx
jmp 0x10037d82
mov eax, dword [esp + 0xc]
mov dword [esp + eax*4 + 0xf8], 0xfffffff6
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 2
jl 0x10037d6f
mov dword [esp + 0xc], ebx
jmp 0x10037d9e
mov eax, dword [esp + 0xc]
mov dword [esp + eax*4 + 0x11c], ebx
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 3
jl 0x10037d8f
cmp dword [esp + 0x10], ebx
jne 0x10037e10
mov eax, dword [esp + 0x10]
mov ecx, 0xfff6
cmp ecx, eax
sbb eax, eax
xor edx, edx
inc eax
mov dword [esp + 0x18], eax
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x10]
cmp eax, ecx
setg dl
mov dword [esp + 0x1c], edx
mov eax, dword [esp + 0x1c]
cmp dword [esp + 0x10], 0x6a056ebf
jl 0x10037deb
cmp dword [esp + 0x18], ebx
je 0x10037deb
xor ecx, ecx
inc ecx
mov edx, ecx
jmp 0x10037df0
xor ecx, ecx
mov edx, ebx
inc ecx
mov eax, 0x4215
sub eax, edx
cmp eax, 0x504dbf0c
jl 0x10037e06
mov eax, ecx
cmp dword [esp + 0x1c], ebx
jne 0x10037e08
mov eax, ebx
cmp eax, dword [esp + 0x10]
mov eax, ebx
jne 0x10037e12
mov eax, ecx
mov dword [esp + 0xf8], eax
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x18]
cmp dword [esp + 0x1c], ebx
jne 0x10037e29
mov ecx, ebx
mov dword [esp + 0x120], ecx
jmp 0x10037553
mov al, 1
mov ecx, dword [esp + 0x154]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret