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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x10060c4a
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x138
cmp byte [ebp + 0x10], 0
push ebx
push esi
push edi
mov dword [esp + 0x54], ecx
je 0x10018ee3
mov ebx, dword [ebp + 0xc]
mov eax, dword [ebx]
cmp eax, dword [ebx + 4]
je 0x10018edb
xor eax, eax
lea ecx, [esp + 0x44]
mov dword [esp + 0x78], eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], eax
lea eax, [esp + 0x78]
push eax
push 0x1000
call fcn.1000ed4f
xor edi, edi
mov esi, 0x68a9
mov dword [esp + 0x14c], edi
mov eax, dword [esp + 0x48]
sub eax, dword [esp + 0x44]
push dword [esp + 0x44]
sar eax, 1
push eax
push esi
push 0x7448
call fcn.1003ef9b
pop ecx
pop ecx
call eax
push dword [esp + 0x44]
lea ecx, [esp + 0x80]
call fcn.100195ac
push 0x4cc5
mov byte [esp + 0x150], 1
call fcn.1000dcc7
movzx eax, ax
lea ecx, [esp + 0x80]
mov dword [esp], 0x33c3
xor dl, dl
mov dword [esp + 0x60], eax
lea eax, [esp + 0x60]
push 1
push eax
push 0x4107
call fcn.100191e3
add esp, 0xc
lea ecx, [esp + 0x114]
mov edx, 0x26e6
call fcn.1001ed00
push ecx
push eax
lea ecx, [esp + 0x88]
mov byte [esp + 0x158], 2
call fcn.1001a08b
push edi
push 1
lea ecx, [esp + 0x118]
mov byte [esp + 0x154], 1
call fcn.1000ea49
cmp dword [esp + 0x90], 8
lea eax, [esp + 0x7c]
push edi
cmovae eax, dword [esp + 0x80]
push eax
push esi
push 0x5f5d
call fcn.1003ef9b
pop ecx
pop ecx
call eax
push edi
push 0x6932
push 0x7e26
push 1
push 1
lea edx, [esp + 0x70]
lea ecx, [esp + 0x90]
call fcn.100185e2
add esp, 0x14
mov dword [esp + 0x50], edi
push 0x1ca0
push 1
push 1
push ebx
push 0x6645
push 1
lea eax, [esp + 0x68]
mov edx, 0x9c2
push 0x46b0
push eax
mov ecx, 0x4e9a
call fcn.100175f1
add esp, 0x20
mov dword [esp + 0x24], 0x1d026703
xor eax, eax
mov dword [esp + 0x28], 0x4b015600
mov byte [esp + 0x13], al
mov dword [esp + 0x14], eax
mov dword [esp + 0x2c], 0x800abf03
lea eax, [esp + 0x7c]
push eax
lea ecx, [esp + 0x98]
call fcn.1000de95
push 0x10
pop edx
lea ecx, [esp + 0xf8]
mov byte [esp + 0x14c], 3
call fcn.10012ae8
lea eax, [esp + 0x94]
mov byte [esp + 0x14c], 4
push 1
push eax
lea edx, [esp + 0x100]
call fcn.100185c2
pop ecx
pop ecx
push 0x65
pop eax
xor edi, edi
mov word [esp + 0x66], ax
push 2
mov ecx, edi
pop esi
mov dword [esp + 0x40], ecx
cmp esi, 8
jne 0x10018a9a
push 4
pop ecx
push 0xa
mov dword [esp + 0x44], ecx
pop esi
jmp 0x10018ae2
movzx edx, byte [esp + esi + 0x25]
mov eax, esi
sub eax, ecx
push 0x23fd
movzx eax, byte [esp + eax + 0x26]
movzx eax, word [esp + eax*2 + 0x64]
mov ecx, eax
and eax, edx
or ecx, edx
sub ecx, eax
movzx eax, byte [esp + esi + 0x28]
push ecx
push 0x1af1
push 0x145b
mov word [esp + eax*2 + 0x70], cx
lea eax, [esp + 0x50]
push 1
push eax
call fcn.100177d5
mov ecx, dword [esp + 0x58]
add esp, 0x18
add esi, 2
cmp esi, 0xc
jb 0x10018a89
xor eax, eax
mov dword [esp + 0xf0], 7
mov word [esp + 0x68], ax
lea ecx, [esp + 0xdc]
mov word [esp + 0xdc], ax
lea eax, [esp + 0x60]
push eax
mov dword [esp + 0xf0], edi
call fcn.10019c41
push ecx
push ecx
lea eax, [esp + 0xe4]
mov byte [esp + 0x154], 5
push eax
lea ecx, [esp + 0xa0]
call fcn.1001a08b
push edi
push 1
lea ecx, [esp + 0xe4]
mov byte [esp + 0x154], 4
call fcn.1000ea49
xor eax, eax
lea edi, [esp + 0x60]
cmp dword [esp + 0xa8], 8
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosw word es:[edi], ax
lea eax, [esp + 0x94]
cmovae eax, dword [esp + 0x94]
xor edi, edi
push edi
push 0x80
push 2
push edi
push edi
push 0x40000000
push eax
push 0x68a9
push 0x61b0
call fcn.1003ef9b
pop ecx
pop ecx
call eax
mov esi, eax
cmp esi, 0xffffffff
je 0x10018be1
push edi
lea eax, [esp + 0xf8]
push eax
push dword [esp + 0x58]
push dword [ebx]
push esi
push 0x68a9
push 0x30e1
call fcn.1003ef9b
pop ecx
pop ecx
call eax
push esi
test eax, eax
push 0x68a9
push 0x45cc
setne bl
call fcn.1003ef9b
pop ecx
pop ecx
call eax
test bl, bl
jne 0x10018c2e
mov ebx, dword [ebp + 0xc]
push edi
push 1
lea ecx, [esp + 0x100]
call fcn.1000ea49
push edi
push 1
lea ecx, [esp + 0x9c]
mov byte [esp + 0x154], 1
call fcn.1000ea49
mov edi, dword [esp + 0x14]
inc edi
mov dword [esp + 0x14], edi
cmp edi, 0x12c
jb 0x10018a2e
mov ecx, dword [esp + 0x54]
xor edi, edi
push edi
mov dword [ecx], 2
jmp 0x10018ec2
mov dword [esp + 0x58], 0x1107
xor ebx, ebx
cmp dword [esp + 0x58], 0x11f8
jle 0x10018c8d
mov esi, ebx
mov edi, ebx
mov ecx, edi
mov eax, esi
shl eax, cl
lea ecx, [esp + 0x128]
cdq
push edx
push eax
call fcn.10001a9f
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x10018c65
mov eax, dword [eax]
push eax
call fcn.10047a23
pop ecx
push ebx
push 1
lea ecx, [esp + 0x130]
call fcn.1000e875
inc edi
cmp edi, 0x5fbb
jl 0x10018c46
inc esi
cmp esi, 0x7f9
jl 0x10018c44
cmp dword [esp + 0x58], 0xf39
jge 0x10018ca2
push str.sijkh_fzyzb_kytnolk_ivwjdq
call fcn.10047a23
pop ecx
push 0x22
pop eax
push 2
mov dword [esp + 0x150], 4
mov ecx, ebx
pop esi
push 7
mov dword [esp + 0x20], 0x61040300
mov word [esp + 0x24], 0xa133
mov byte [esp + 0x26], 0x28
mov word [esp + 0x1c], ax
mov dword [esp + 0x18], ecx
pop edi
cmp esi, 2
jne 0x10018ce5
push 5
pop ecx
push ecx
mov dword [esp + 0x18], ecx
pop esi
jmp 0x10018d2b
movzx edx, byte [esp + esi + 0x1d]
mov eax, esi
sub eax, ecx
push 0x4eff
push 0x14fb
push 0x67
movzx eax, byte [esp + eax + 0x26]
movzx ecx, word [esp + eax*2 + 0x24]
mov eax, ecx
and eax, edx
add eax, eax
sub ecx, eax
movzx eax, byte [esp + esi + 0x28]
add ecx, edx
lea edx, [esp + 0x20]
push ecx
push 1
mov word [esp + eax*2 + 0x2c], cx
call fcn.100183a1
mov ecx, dword [esp + 0x28]
add esp, 0x14
add esi, 2
cmp esi, edi
jb 0x10018cd5
xor eax, eax
mov dword [esp + 0xc0], edi
mov word [esp + 0x1a], ax
lea ecx, [esp + 0xac]
mov word [esp + 0xac], ax
lea eax, [esp + 0x18]
push eax
mov dword [esp + 0xc0], ebx
call fcn.10019c41
push 1
lea eax, [esp + 0x98]
mov byte [esp + 0x150], 8
push eax
lea eax, [esp + 0xb4]
mov dword [esp + 0x20], ebx
push eax
push 1
push 1
mov edx, 0x28d2
mov ecx, 0xda4
call fcn.100185e2
add esp, 0x14
mov dword [esp + 0x30], 0x7301c703
mov dword [esp + 0x34], 0xd020200
mov ecx, ebx
mov dword [esp + 0x38], 0xe3bc5104
mov byte [esp + 0x3c], 0x81
push 0x53
pop eax
push 2
mov word [esp + 0x76], ax
pop esi
cmp esi, 8
jne 0x10018dcb
push 5
pop ecx
push 0xb
pop esi
jmp 0x10018df2
movzx edx, byte [esp + esi + 0x31]
mov eax, esi
sub eax, ecx
movzx eax, byte [esp + eax + 0x2e]
movzx eax, word [esp + eax*2 + 0x6c]
mov ecx, eax
and eax, edx
or ecx, edx
sub ecx, eax
movzx eax, byte [esp + esi + 0x30]
mov word [esp + eax*2 + 0x6c], cx
mov ecx, ebx
add esi, 2
cmp esi, 0xd
jb 0x10018dbe
xor eax, eax
mov dword [esp + 0xd8], edi
mov word [esp + 0x74], ax
lea ecx, [esp + 0xc4]
mov word [esp + 0xc4], ax
lea eax, [esp + 0x6c]
push eax
mov dword [esp + 0xd8], ebx
call fcn.10019c41
push ecx
push ecx
lea eax, [esp + 0xcc]
mov byte [esp + 0x154], 9
push eax
lea ecx, [esp + 0xb8]
call fcn.1001a08b
push ebx
push 1
lea ecx, [esp + 0xcc]
mov byte [esp + 0x154], 8
call fcn.1000ea49
xor eax, eax
lea edi, [esp + 0x6c]
stosd dword es:[edi], eax
push ecx
push 1
push ecx
stosd dword es:[edi], eax
stosw word es:[edi], ax
lea eax, [esp + 0x1f]
push eax
push ecx
mov ecx, 0x36e7
call fcn.10018734
add esp, 0x14
lea edx, [esp + 0x7c]
lea ecx, [esp + 0xac]
call fcn.100159e4
mov ecx, dword [esp + 0x54]
push ebx
push 1
mov dword [ecx], eax
lea ecx, [esp + 0xb4]
call fcn.1000ea49
push ebx
push 1
lea ecx, [esp + 0x100]
call fcn.1000ea49
push ebx
push 1
lea ecx, [esp + 0x9c]
call fcn.1000ea49
push ebx
push 1
lea ecx, [esp + 0x84]
call fcn.1000ea49
lea ecx, [esp + 0x44]
call fcn.1000edd6
jmp 0x10018ee9
mov dword [ecx], 1
jmp 0x10018ee9
mov eax, dword [ebp + 0x14]
and dword [eax], 0
mov ecx, dword [esp + 0x144]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret