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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x1007f936
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xf0
push ebx
push esi
push edi
mov esi, ecx
mov dword [esp + 0x3c], edx
mov dword [esp + 0xc], 0x53d8da8e
lea ecx, [esp + 0x54]
push 2
call fcn.10012956
xor ebx, ebx
xor eax, eax
mov dword [esp + 0x104], ebx
inc eax
mov dword [esp + 0x1c], 0x598aaf0a
mov dword [esp + 0x10], 0x7e7c14ab
mov dword [esp + 0x10], 0xdab551fa
mov dword [esp + 0x10], 0xfffffff8
mov dword [esp + 0x18], eax
mov dword [esp + 0x10], 0xdd2e91c8
mov dword [esp + 0x10], 0x38ca8c98
mov dword [esp + 0x20], 0xc914a3a6
mov dword [esp + 0x10], 0x550e3526
mov dword [esp + 0x10], ebx
jmp 0x10031a63
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x54]
mov dword [eax + ecx*4], 9
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 2
jl 0x10031a50
mov ecx, dword [esp + 0xc]
sub ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x54]
mov dword [eax], ecx
xor ecx, ecx
mov eax, dword [esp + 0xc]
dec dword [esp + 0x1c]
mov dword [esp + 0x10], 0xfffffff9
mov eax, dword [esp + 0x10]
mov dword [esp + 0x10], eax
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x10]
dec edx
cmp edx, eax
setge cl
xor edi, edi
inc edi
mov dword [esp + 0x10], ecx
cmp dword [esp + 0x18], edi
sbb eax, eax
xor edx, edx
inc eax
cmp eax, 0x1f90ef30
mov eax, dword [esp + 0xc]
setne dl
xor ecx, ecx
cmp edx, eax
setne cl
cmp ecx, dword [esp + 0x18]
jl 0x10031ada
cmp dword [esp + 0x10], ebx
jne 0x10031ada
mov eax, dword [esp + 0x54]
cmp dword [eax + 4], ebx
mov eax, ebx
je 0x10031adc
mov eax, edi
mov dword [esp + 0x18], eax
xor edx, edx
mov eax, dword [esp + 0x18]
mov dword [esp + 0x10], eax
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0xc]
cmp eax, ecx
setne dl
mov dword [esp + 0x10], edx
cmp dword [esp + 0x10], ebx
je 0x10031b14
lea eax, [esp + 0x2e]
mov byte [esp + 0x2e], bl
push eax
push ebx
call fcn.10034396
pop ecx
pop ecx
jmp 0x10031b44
push ebx
push 0x7666
push 0xcb2
lea eax, [esp + 0x7c]
mov dword [esp + 0x5c], 0xfff8
push eax
lea eax, [esp + 0x60]
mov dword [esp + 0x80], 0xfa8fad74
push eax
call fcn.10034654
add esp, 0x14
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x54]
or dword [esp + 0x104], 0xffffffff
mov dword [eax], ecx
lea ecx, [esp + 0x54]
call fcn.10012bab
push dword [esp + 0x40]
movdqa xmm0, xmmword [0x10007e90]
lea eax, [esp + 0xc0]
push eax
lea eax, [esp + 0xb4]
mov dword [esp + 0x4c], ebx
push eax
push ebx
lea ecx, [esp + 0x54]
mov dword [esp + 0x58], ebx
movdqu xmmword [esp + 0xbc], xmm0
mov dword [esp + 0x5c], ebx
call fcn.10012f1b
mov eax, dword [esp + 0x44]
mov dword [eax], 0xfffffff6
mov byte [esp + 0x17], bl
cmp byte [esp + 0x17], bl
je 0x10031bbb
push 0xeb9
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_VirtualQuery]
mov byte [esp + 0x17], bl
cmp byte [esp + 0x17], bl
je 0x10031bcc
push ebx
call dword [sym.imp.KERNEL32.dll_EncodePointer]
mov eax, dword [esp + 0x44]
inc dword [eax]
cmp dword [eax], 0xfffffffd
jle 0x10031ba4
lea ecx, [esp + 0x44]
call fcn.10012bab
cmp dword [esi + 0x10], ebx
jne 0x10031bec
xor al, al
jmp 0x10032384
push edi
lea ecx, [esp + 0x7c]
call fcn.10012956
xor edx, edx
inc edx
mov dword [esp + 0x104], edx
mov dword [esp + 0x10], ebx
jmp 0x10031c19
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x78]
mov dword [eax + ecx*4], 0x7e2799ac
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edx
jl 0x10031c06
mov eax, dword [esp + 0x78]
mov dword [eax], 0xfffffffe
mov byte [esp + 0x17], bl
cmp byte [esp + 0x17], 0
je 0x10031c44
push ebx
push 0x6e7c
call fcn.10033b4b
pop ecx
xor edx, edx
pop ecx
inc edx
mov eax, dword [esp + 0x78]
cmp dword [eax], ebx
jne 0x10031c53
mov dword [eax], edx
cmp dl, 7
jl 0x10031c29
or dword [esp + 0x104], 0xffffffff
lea ecx, [esp + 0x78]
call fcn.10012bab
mov eax, dword [esp + 0x3c]
push 2
pop edi
mov dword [eax], ebx
mov dword [esp + 0x18], edi
mov dword [esp + 0x10], ebx
jmp 0x10031c8a
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0xd4], 0x1c08901
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 3
jl 0x10031c77
mov byte [esp + 0x17], bl
cmp byte [esp + 0x17], 0
je 0x10031cac
push 0x1e0b
push 0x2023
call dword [sym.imp.KERNEL32.dll_Beep]
mov dword [esp + 0x18], edi
cmp dword [esp + 0x18], ebx
jl 0x10031cc8
mov dword [esp + 0x1c], 0x1591
inc dword [esp + 0x1c]
dec dword [esp + 0x18]
jns 0x10031cb6
mov dword [esp + 0x10], 9
xor ecx, ecx
mov dword [esp + 0x1c], 3
inc ecx
mov dword [esp + 0x18], 0xfd77ccca
mov dword [esp + 0x20], 0xfffffff9
mov dword [esp + 0xc], ebx
jmp 0x10031d01
mov eax, dword [esp + 0xc]
mov dword [esp + eax*4 + 0x28], 0x1d925b0e
inc dword [esp + 0xc]
cmp dword [esp + 0xc], ecx
jl 0x10031cf1
mov dword [esp + 0xc], ebx
jmp 0x10031d1d
mov eax, dword [esp + 0xc]
mov dword [esp + eax*4 + 0x64], 0xffffffff
inc dword [esp + 0xc]
cmp dword [esp + 0xc], edi
jl 0x10031d0d
cmp dword [esp + 0x28], ebx
jne 0x10031da1
mov ecx, dword [esp + 0x28]
xor edx, edx
mov eax, dword [esp + 0x10]
cmp eax, ecx
mov eax, dword [esp + 0x28]
setl dl
xor ecx, ecx
cmp edx, eax
mov eax, 0xcd2466e9
setle cl
cmp eax, ecx
mov eax, dword [esp + 0x28]
sbb edx, edx
xor ecx, ecx
neg edx
cmp edx, eax
sete cl
mov dword [esp + 0x1c], ecx
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x28]
mov eax, dword [esp + 0x28]
mov eax, dword [esp + 0x18]
add eax, dword [esp + 0x10]
jne 0x10031d80
cmp dword [esp + 0x18], ebx
jne 0x10031d80
xor edi, edi
mov edx, ebx
inc edi
jmp 0x10031d85
xor edi, edi
inc edi
mov edx, edi
mov eax, dword [esp + 0x28]
xor ecx, ecx
cmp eax, edx
setge cl
sub ecx, dword [esp + 0x18]
mov dword [esp + 0x18], ecx
jne 0x10031d9e
mov eax, ebx
jmp 0x10031da6
xor ecx, ecx
inc ecx
xor edi, edi
mov eax, ecx
inc edi
mov dword [esp + 0x68], eax
cmp dword [esp + 0x68], ebx
je 0x10031dd9
push ebx
lea eax, [esp + 0x31]
mov dword [esp + 0x24], 0xe1054d81
push 0x77d6
mov byte [esp + 0x35], bl
push eax
call fcn.10034427
mov eax, dword [esp + 0x2c]
add esp, 0xc
mov dword [esp + 0x64], eax
jmp 0x10031deb
mov byte [esp + 0x17], bl
cmp byte [esp + 0x17], 0
je 0x10031deb
push ebx
call fcn.10033529
pop ecx
cmp dword [esi + 0x14], 0x10
jb 0x10031df5
mov ecx, dword [esi]
jmp 0x10031df7
mov ecx, esi
cmp dword [esi + 0x14], 0x10
mov dword [esp + 0x34], ecx
jb 0x10031e05
mov edx, dword [esi]
jmp 0x10031e07
mov edx, esi
mov eax, dword [esi + 0x10]
add eax, edx
cmp ecx, eax
je 0x1003223c
lea eax, [esp + 0x6c]
mov dword [esp + 0x60], 0xfffffff8
push eax
push ebx
lea eax, [esp + 0x68]
mov dword [esp + 0x74], 0xfffffff7
push eax
lea eax, [esp + 0x80]
mov dword [esp + 0x80], 0x5d06f629
push eax
call fcn.10033ce1
mov byte [esp + 0x27], bl
add esp, 0x10
cmp byte [esp + 0x17], 0
je 0x10031e5c
xor cl, cl
call fcn.100317fc
mov eax, dword [esp + 0x34]
mov al, byte [eax]
cmp al, 0x30
jl 0x1003204b
cmp al, 0x39
jg 0x1003204b
mov dword [esp + 0xc], 0x30f94f37
xor ecx, ecx
mov dword [esp + 0x10], 0x64de8cc1
inc ecx
mov dword [esp + 0xc], ebx
jmp 0x10031e9b
mov eax, dword [esp + 0xc]
mov dword [esp + eax*4 + 0x24], 0xcf57
inc dword [esp + 0xc]
cmp dword [esp + 0xc], ecx
jl 0x10031e8b
mov dword [esp + 0xc], ebx
jmp 0x10031eb7
mov eax, dword [esp + 0xc]
mov dword [esp + eax*4 + 0x38], 0x52324067
inc dword [esp + 0xc]
cmp dword [esp + 0xc], ecx
jl 0x10031ea7
mov byte [esp + 0x17], bl
cmp byte [esp + 0x17], 0
je 0x10031ecd
call fcn.100317fc
xor edi, edi
mov dword [esp + 0xc], ebx
inc edi
cmp dword [esp + 0xc], ebx
jg 0x10032029
mov eax, dword [esp + 0xc]
cmp dword [esp + eax*4 + 0x24], ebx
jne 0x10032029
mov eax, dword [esp + 0xc]
mov edx, dword [esp + eax*4 + 0x24]
mov eax, dword [esp + 0xc]
sub edx, 2
sub edx, dword [esp + eax*4 + 0x24]
mov eax, dword [esp + 0xc]
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
cmp edx, eax
mov eax, dword [esp + 0xc]
setl cl
xor edx, edx
mov eax, dword [esp + eax*4 + 0x24]
cmp ecx, eax
mov eax, dword [esp + 0xc]
setl dl
xor ecx, ecx
cmp edx, eax
setne cl
xor eax, eax
cmp eax, ecx
sbb eax, eax
inc eax
mov dword [esp + 0x10], eax
jne 0x10031f42
mov eax, dword [esp + 0xc]
mov edx, ebx
cmp dword [esp + eax*4 + 0x24], ebx
je 0x10031f44
mov edx, edi
mov eax, dword [esp + 0xc]
xor ecx, ecx
mov eax, dword [esp + eax*4 + 0x24]
cmp edx, eax
mov eax, dword [esp + 0xc]
setne cl
xor edx, edx
cmp ecx, eax
mov ecx, dword [esp + 0x24]
setl dl
sub ecx, edx
neg ecx
sbb ecx, ecx
inc ecx
mov dword [esp + 0x38], ecx
mov eax, dword [esp + 0xc]
mov eax, dword [esp + eax*4 + 0x24]
add eax, ecx
je 0x10031f7d
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0xc]
mov eax, dword [esp + eax*4 + 0x24]
mov eax, dword [esp + 0xc]
mov eax, dword [esp + eax*4 + 0x24]
mov ecx, dword [esp + 0xc]
neg ecx
sbb ecx, ecx
xor edx, edx
neg ecx
sub ecx, eax
mov eax, dword [esp + 0xc]
cmp ecx, 0xe2e0
setge dl
xor ecx, ecx
mov eax, dword [esp + eax*4 + 0x24]
cmp edx, eax
mov eax, dword [esp + 0xc]
setge cl
add ecx, dword [esp + eax*4 + 0x24]
add ecx, dword [esp + 0xc]
mov eax, dword [esp + 0xc]
neg ecx
cmp ecx, dword [esp + eax*4 + 0x24]
jle 0x10031fd7
mov eax, dword [esp + 0xc]
cmp dword [esp + eax*4 + 0x24], ebx
mov eax, ebx
je 0x10031fd9
mov eax, edi
neg eax
je 0x10032002
mov dword [esp + 0x10], ebx
jmp 0x10031ffa
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + eax*4 + 0x38]
mov eax, dword [esp + 0xc]
sub ecx, 3
mov dword [esp + eax*4 + 0x38], ecx
inc dword [esp + 0x10]
cmp dword [esp + 0x10], ebx
jle 0x10031fe3
jmp 0x10032020
mov byte [esp + 0x17], bl
cmp byte [esp + 0x17], 0
je 0x10032020
push 0x3b98
push 0x3b78
push ebx
call fcn.10033f8f
add esp, 0xc
inc dword [esp + 0xc]
jmp 0x10031ed4
lea eax, [esp + 0x34]
push eax
push 0x3ce1
lea eax, [esp + 0x44]
push eax
push ebx
call fcn.10033410
mov ecx, dword [esp + 0x44]
add esp, 0x10
inc ecx
jmp 0x10031df7
mov dword [esp + 0xc], 0xffffffff
mov dword [esp + 0x10], ebx
jmp 0x1003206c
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0xe0], 0xd7f825e
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 3
jl 0x10032059
push 2
mov dword [esp + 0x10], ebx
pop esi
jmp 0x100321c2
mov dword [esp + 0x1c], 0x4b25b3b
lea ecx, [esp + 0x90]
mov dword [esp + 0x20], 0x7059141a
mov dword [esp + 0x20], 0x8d303f02
mov dword [esp + 0x20], 0x2d621ec2
mov dword [esp + 0x20], 0xfffffff7
mov dword [esp + 0x20], 0xa0f0f5eb
push edi
call fcn.10012956
mov dword [esp + 0x104], esi
mov dword [esp + 0x30], ebx
jmp 0x100320dc
mov eax, dword [esp + 0x30]
mov dword [esp + eax*4 + 0xbc], 0x2c593c86
inc dword [esp + 0x30]
cmp dword [esp + 0x30], esi
jl 0x100320c9
lea eax, [esp + 0x90]
push eax
lea eax, [esp + 0x34]
push ebx
push eax
call fcn.10033e5f
add esp, 0xc
mov byte [esp + 0x2c], bl
lea eax, [esp + 0x2c]
push 0x6f4e
push 0x4566
push eax
push ebx
call fcn.1003376b
mov dword [esp + 0x2c], esi
add esp, 0x10
cmp dword [esp + 0x1c], ebx
jl 0x100321aa
mov dword [esp + 0x10], 4
mov dword [esp + 0x20], 0xd0357257
mov dword [esp + 0x9c], ebx
mov dword [esp + 0xa0], ebx
mov dword [esp + 0xa4], ebx
mov dword [esp + 0xa8], ebx
mov dword [esp + 0x10], ebx
jmp 0x10032191
mov dword [esp + 0x18], 5
mov dword [esp + 0x18], esi
cmp dword [esp + 0x18], ebx
jl 0x1003218d
push 0x6237
lea eax, [esp + 0x33]
mov byte [esp + 0x33], bl
push eax
push 0x25ff
push ebx
push 0x1c7f
call fcn.1003a345
add esp, 0x14
dec dword [esp + 0x18]
jns 0x10032166
inc dword [esp + 0x10]
cmp dword [esp + 0x10], esi
jle 0x10032154
mov eax, dword [esp + 0x90]
inc dword [eax]
dec dword [esp + 0x1c]
jns 0x10032122
or dword [esp + 0x104], 0xffffffff
lea ecx, [esp + 0x90]
call fcn.10012bab
inc dword [esp + 0xc]
cmp dword [esp + 0xc], esi
jle 0x1003207f
mov eax, dword [esp + 0x3c]
mov dword [eax], ebx
mov dword [esp + 0x1c], 7
mov dword [esp + 0x10], ebx
jmp 0x100321f3
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0xc4], 0x14a02569
inc dword [esp + 0x10]
cmp dword [esp + 0x10], esi
jl 0x100321e0
mov dword [esp + 0x1c], edi
cmp dword [esp + 0x1c], ebx
jl 0x10031be5
push ebx
push 0x7d4f
lea eax, [esp + 0x48]
mov dword [esp + 0x48], 4
push eax
push 0x6442
push 0x2f6a
push 0x7401
call fcn.10034858
add esp, 0x18
dec dword [esp + 0x1c]
jns 0x10032207
jmp 0x10031be5
mov dword [esp + 0x10], 0xd837
mov eax, 0xffff
mov dword [esp + 0x18], eax
xor ecx, ecx
mov dword [esp + 0x1c], ebx
inc ecx
mov dword [esp + 0x18], ecx
push 2
pop esi
mov dword [esp + 0xc], esi
mov dword [esp + 0x20], ebx
mov dword [esp + 0x20], 0xe1c2a911
push ecx
mov dword [esp + 0x24], 5
lea ecx, [esp + 0x88]
mov dword [esp + 0x24], eax
call fcn.10012956
push 3
mov dword [esp + 0x10], ebx
pop edi
jmp 0x100322a0
mov eax, dword [esp + 0xc]
mov dword [esp + eax*4 + 0xec], 0x56e3f0e2
inc dword [esp + 0xc]
cmp dword [esp + 0xc], edi
jl 0x1003228d
xor edx, edx
mov dword [esp + 0xc], ebx
inc edx
jmp 0x100322c5
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x84]
mov dword [eax + ecx*4], 0x3b6ac891
inc dword [esp + 0xc]
cmp dword [esp + 0xc], edx
jl 0x100322af
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x10]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x18], edi
mov ecx, dword [esp + 0x18]
sub ecx, dword [esp + 0x1c]
neg ecx
sbb ecx, ecx
xor eax, eax
inc ecx
cmp ecx, 0x1a812c00
setl al
mov dword [esp + 0xc], eax
cmp dword [esp + 0xc], ebx
jne 0x10032325
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x1c], edi
mov dword [esp + 0x18], ebx
mov dword [esp + 0x18], 0xffffffff
mov dword [esp + 0x18], 6
mov dword [esp + 0x10], ebx
jmp 0x1003235e
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0xcc], 0x87697ab8
inc dword [esp + 0x10]
cmp dword [esp + 0x10], esi
jl 0x1003234b
dec dword [esp + 0x1c]
inc dword [esp + 0x20]
mov ecx, dword [esp + 0x84]
inc dword [ecx]
lea ecx, [esp + 0x84]
call fcn.10012bab
xor eax, eax
inc eax
mov ecx, dword [esp + 0xfc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret