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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x6c
push ebx
xor eax, eax
mov dword [ebp - 8], edx
mov ebx, ecx
mov dword [ebp - 0x3c], eax
push esi
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x4c], eax
mov byte [ebp - 1], al
mov eax, dword [ebx]
push edi
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x1c], eax
call fcn.1811e998
mov edx, dword [ebp - 8]
mov edi, eax
test byte [edx + 0x24], 0x20
movsx esi, word [edx + 0x2a]
mov dword [ebp - 0x48], esi
jne 0x18117991
and dword [ebp - 0x10], 0
mov dword [ebp - 0x30], 1
jmp 0x181179a2
mov ecx, edx
call fcn.1810dd7a
mov dword [ebp - 0x10], eax
movzx eax, word [eax + 0x32]
mov dword [ebp - 0x30], eax
test esi, esi
jle 0x18117ab9
mov eax, dword [ebp + 0x14]
xor esi, esi
mov ecx, dword [ebp + 0x2c]
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x18], ecx
lea ebx, [eax + 1]
not eax
mov dword [ebp - 0x34], eax
lea ecx, [ebx + eax]
movsx eax, word [edx + 0x28]
cmp ecx, eax
je 0x18117a95
cmp dword [ebp + 0x2c], 0
je 0x181179e1
mov eax, dword [ebp - 0x18]
cmp dword [eax], 0
jl 0x18117a98
mov ecx, dword [edx + 4]
mov al, byte [ecx + esi + 0xc]
movzx edx, al
mov dword [ebp - 0x24], edx
test al, al
je 0x18117a92
mov ah, byte [ebp + 0x20]
cmp ah, 0xa
je 0x18117a06
movzx edx, ah
mov dword [ebp - 0x24], edx
jmp 0x18117a0a
cmp al, 0xa
je 0x18117a16
cmp edx, 5
jne 0x18117a30
cmp dword [ecx + esi + 4], 0
jne 0x18117a30
mov dword [ebp - 0x24], 2
mov ecx, dword [ebp - 0x28]
call fcn.18111625
mov eax, dword [ebp - 8]
mov ecx, dword [eax + 4]
jmp 0x18117aff
mov eax, edx
sub eax, 1
je 0x18117afc
sub eax, 1
je 0x18117a1d
sub eax, 1
je 0x18117afc
mov ecx, edi
push 0
sub eax, 1
je 0x18117aeb
push 0
push ebx
push 0x33
pop edx
call fcn.180f7767
mov ecx, dword [ebp - 0x28]
mov esi, eax
mov eax, dword [ebp - 8]
add esp, 0xc
mov edx, dword [eax + 4]
mov eax, dword [ebp - 0x20]
push ebx
mov edx, dword [eax + edx + 4]
call fcn.18109acc
pop ecx
mov edx, esi
mov ecx, edi
call fcn.180f7ea8
mov ecx, dword [edi + 0x88]
mov dword [eax + 8], ecx
mov esi, dword [ebp - 0x20]
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 0x18]
add eax, 4
add esi, 0x10
mov dword [ebp - 0x18], eax
inc ebx
mov eax, dword [ebp - 0x34]
add eax, ebx
mov dword [ebp - 0x20], esi
cmp eax, dword [ebp - 0x48]
mov eax, dword [ebp - 0x34]
jl 0x181179c0
mov ebx, dword [ebp - 0x28]
mov ecx, dword [edx + 0x18]
mov dword [ebp - 0x44], ecx
test ecx, ecx
je 0x18117c26
mov eax, dword [ebp - 0x1c]
test dword [eax + 0x1c], 0x200
jne 0x18117c26
mov eax, dword [ebp + 0x14]
not eax
mov dword [ebx + 0x38], eax
mov al, byte [ebp + 0x20]
cmp al, 0xa
je 0x18117b44
movzx esi, al
jmp 0x18117b47
push dword [ebp + 0x24]
push ebx
push 0x32
pop edx
call fcn.180f7767
add esp, 0xc
jmp 0x18117a92
mov eax, dword [ebp - 8]
push dword [esi + ecx]
push dword [eax]
push str._s._s
push dword [ebp - 0x1c]
call fcn.180e1420
push ebx
push dword [ebp - 0x24]
mov ecx, edi
mov esi, eax
push 0x513
push 0x41
pop edx
call fcn.180f7767
add esp, 0x1c
mov edx, esi
mov ecx, edi
push 0xfffffffffffffff9
call fcn.180f7e59
pop ecx
xor edx, edx
mov ecx, edi
inc edx
call fcn.180f7bf4
jmp 0x18117a8f
push 2
pop esi
and dword [ebp - 0x24], 0
cmp dword [ecx], 0
jle 0x18117c22
lea eax, [ecx + 8]
mov dword [ebp - 0x2c], eax
cmp dword [ebp + 0x2c], 0
mov eax, dword [eax - 4]
mov dword [ebp - 0x34], eax
je 0x18117ba8
push 0x1c
lea eax, [ebp - 0x6c]
push 0
push eax
call fcn.181620e0
mov ecx, dword [ebp + 0x2c]
xor al, al
mov dword [ebp - 0x54], ecx
add esp, 0xc
mov ecx, dword [ebp - 0x34]
mov byte [ebp - 0x58], al
mov dword [ebp - 0x68], 0x18117915
test ecx, ecx
je 0x18117b9c
mov edx, ecx
lea ecx, [ebp - 0x6c]
call fcn.18104085
mov al, byte [ebp - 0x58]
cmp byte [ebp + 0x1c], 0
jne 0x18117ba4
and al, 0xfd
test al, al
je 0x18117c07
mov ecx, edi
call fcn.180f79a6
push 0x10
push eax
push dword [ebp - 0x34]
mov dword [ebp - 0x48], eax
push ebx
call fcn.18109dfd
add esp, 0x10
cmp esi, 4
jne 0x18117bd2
mov edx, dword [ebp + 0x24]
mov ecx, edi
call fcn.180f77c9
jmp 0x18117bfd
mov eax, dword [ebp - 0x2c]
mov eax, dword [eax]
test eax, eax
jne 0x18117be0
mov eax, dword [ebp - 8]
mov eax, dword [eax]
cmp esi, 5
jne 0x18117be8
push 2
pop esi
push 3
push 0
push eax
push esi
mov edx, 0x113
mov ecx, ebx
call fcn.18111633
add esp, 0x10
mov edx, dword [ebp - 0x48]
mov ecx, edi
call fcn.180f79e8
mov edx, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x44]
inc edx
mov eax, dword [ebp - 0x2c]
add eax, 0x18
mov dword [ebp - 0x24], edx
mov dword [ebp - 0x2c], eax
cmp edx, dword [ecx]
jl 0x18117b5a
and dword [ebx + 0x38], 0
cmp byte [ebp + 0x1c], 0
je 0x18117ded
cmp dword [ebp - 0x10], 0
jne 0x18117ded
mov ecx, edi
call fcn.180f79a6
mov dl, byte [ebp + 0x20]
mov ecx, eax
mov eax, dword [ebp - 8]
mov dword [ebp - 0x34], ecx
movzx esi, byte [eax + 0x30]
cmp dl, 0xa
je 0x18117c5a
movzx esi, dl
jmp 0x18117c62
cmp esi, 0xa
jne 0x18117c62
push 2
pop esi
mov edx, dword [ebp + 0x18]
test edx, edx
je 0x18117c8a
push edx
push ecx
push dword [ebp + 0x14]
mov ecx, edi
push 0x35
pop edx
call fcn.180f7767
add esp, 0xc
mov edx, 0x90
mov ecx, edi
call fcn.180f7bf4
mov eax, dword [ebp - 8]
cmp esi, 5
jne 0x18117cc5
cmp byte [ebp + 0x20], 5
je 0x18117cc5
mov eax, dword [eax + 8]
jmp 0x18117caa
mov cl, byte [eax + 0x36]
cmp cl, 4
je 0x18117cb0
cmp cl, 3
je 0x18117cb0
mov eax, dword [eax + 0x14]
test eax, eax
jne 0x18117c9a
jmp 0x18117cc5
xor eax, eax
mov ecx, edi
push eax
push eax
push eax
push 0xd
pop edx
call fcn.180f7767
add esp, 0xc
mov dword [ebp - 0x38], eax
push dword [ebp + 0x14]
mov ecx, edi
push dword [ebp - 0x34]
push dword [ebp + 0xc]
push 0x20
pop edx
call fcn.180f7767
add esp, 0xc
test esi, esi
je 0x18117da7
cmp esi, 3
jbe 0x18117daa
cmp esi, 4
je 0x18117d9b
cmp esi, 5
jne 0x18117da7
mov eax, dword [ebp - 0x1c]
xor esi, esi
test dword [eax + 0x1c], 0x2000
je 0x18117d23
mov edx, dword [ebp - 8]
mov ecx, ebx
push esi
push esi
push 0x6d
call fcn.18123d9c
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x18117d64
mov edx, dword [ebp - 8]
mov ecx, ebx
push 0
push 0
call fcn.18115e66
pop ecx
pop ecx
test eax, eax
jne 0x18117d64
mov ecx, dword [ebp - 8]
cmp dword [ecx + 8], eax
je 0x18117d92
mov eax, dword [ebx + 0x78]
test eax, eax
jne 0x18117d48
mov eax, ebx
push 0xffffffffffffffff
push 0
push dword [ebp + 0x10]
mov edx, ecx
mov byte [eax + 0x14], 1
push dword [ebp + 0xc]
mov ecx, ebx
call fcn.18112e61
add esp, 0x10
jmp 0x18117d92
mov eax, dword [ebx + 0x78]
test eax, eax
jne 0x18117d6d
mov eax, ebx
mov edx, dword [ebp - 8]
mov ecx, ebx
push 0xffffffffffffffff
push 1
push 5
push 0
push 1
push dword [ebp + 0x14]
mov byte [eax + 0x14], 1
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push esi
call fcn.18112bda
add esp, 0x24
mov dword [ebp - 0x3c], 1
jmp 0x18117db7
mov edx, dword [ebp + 0x24]
mov ecx, edi
call fcn.180f77c9
jmp 0x18117db7
push 2
pop esi
push dword [ebp - 8]
mov edx, esi
mov ecx, ebx
call fcn.1811178c
pop ecx
mov edx, dword [ebp - 0x34]
mov ecx, edi
call fcn.180f79e8
mov esi, dword [ebp - 0x38]
test esi, esi
je 0x18117ded
xor eax, eax
push eax
push eax
push eax
push 0xd
pop edx
call fcn.180f7767
add esp, 0xc
mov dword [ebp - 0x4c], eax
mov edx, esi
mov ecx, edi
call fcn.180f7ea8
mov ecx, dword [edi + 0x88]
mov dword [eax + 8], ecx
mov ecx, dword [ebp - 8]
and dword [ebp - 0xc], 0
mov esi, dword [ecx + 8]
mov dword [ebp - 0x48], esi
test esi, esi
je 0x18118245
mov eax, dword [ebp - 0xc]
mov edx, dword [ebp + 8]
cmp dword [edx + eax*4], 0
je 0x18118233
cmp byte [ebp - 1], 0
jne 0x18117e2b
mov eax, dword [ebp + 0x14]
mov edx, ecx
inc eax
mov ecx, edi
push eax
call fcn.1811670e
pop ecx
mov byte [ebp - 1], 1
mov eax, dword [ebp + 0x10]
mov ecx, edi
add eax, dword [ebp - 0xc]
mov dword [ebp - 0x2c], eax
call fcn.180f79a6
xor edx, edx
mov dword [ebp - 0x18], eax
cmp dword [esi + 0x24], edx
je 0x18117e79
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp + 8]
push edx
push dword [ecx + eax*4]
mov ecx, edi
push edx
push 0x46
pop edx
call fcn.180f7767
mov eax, dword [ebp + 0x14]
add esp, 8
not eax
mov ecx, ebx
mov dword [ebx + 0x38], eax
mov edx, dword [esi + 0x24]
push dword [ebp - 0x18]
call fcn.1810a448
pop ecx
xor edx, edx
pop ecx
mov dword [ebx + 0x38], edx
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp + 8]
and dword [ebp - 0x44], 0
mov dword [ebp - 0x20], edx
mov ecx, dword [ecx + eax*4]
lea eax, [ecx + 1]
mov dword [ebp - 0x24], eax
movzx eax, word [esi + 0x34]
mov edx, eax
cmp word [ebp - 0x44], ax
jae 0x18117f31
mov ecx, dword [ebp - 0x24]
and dword [ebp - 0x14], 0
mov edx, dword [ebp - 0x20]
mov dword [ebp - 0x34], ecx
jmp 0x18117eb1
mov ecx, dword [ebp - 0x34]
mov eax, dword [esi + 4]
movsx edx, word [eax + edx*2]
cmp edx, 0xfffffffe
jne 0x18117ede
mov eax, dword [ebp + 0x14]
not eax
mov dword [ebx + 0x38], eax
mov edx, dword [esi + 0x28]
mov eax, dword [ebp - 0x14]
push ecx
mov ecx, ebx
mov edx, dword [edx + eax + 4]
call fcn.18109b19
and dword [ebx + 0x38], 0
pop ecx
jmp 0x18117f10
cmp edx, 0xffffffff
je 0x18117ef6
mov eax, dword [ebp - 8]
movsx eax, word [eax + 0x28]
cmp edx, eax
je 0x18117ef6
mov eax, dword [ebp + 0x14]
inc eax
add eax, edx
jmp 0x18117ef9
mov eax, dword [ebp + 0x14]
sar edx, 0x1f
push 0
push ecx
and edx, 1
mov ecx, edi
push eax
add edx, 0x4c
call fcn.180f7767
add esp, 0xc
mov edx, dword [ebp - 0x20]
add dword [ebp - 0x14], 0x18
inc edx
movzx ecx, word [esi + 0x34]
inc dword [ebp - 0x34]
mov dword [ebp - 0x20], edx
cmp edx, ecx
jl 0x18117eae
mov eax, dword [ebp - 0xc]
mov edx, ecx
mov ecx, dword [ebp + 8]
mov ecx, dword [ecx + eax*4]
push ecx
movzx eax, dx
mov ecx, edi
push eax
push dword [ebp - 0x24]
push 0x65
pop edx
call fcn.180f7767
mov ecx, dword [ebp - 0x10]
add esp, 0xc
cmp dword [ebp + 0x18], 0
je 0x18117f68
cmp ecx, esi
jne 0x18117f68
cmp byte [ebp + 0x1c], 0
jne 0x18117f68
mov edx, dword [ebp - 0x18]
mov ecx, edi
call fcn.180f79e8
jmp 0x1811822a
movzx eax, byte [esi + 0x36]
mov dword [ebp - 0x14], eax
test eax, eax
je 0x18117f59
mov dl, byte [ebp + 0x20]
cmp dl, 0xa
je 0x18117f80
movzx eax, dl
jmp 0x18117f88
cmp eax, 0xa
jne 0x18117f8b
push 2
pop eax
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0xc], 0
jne 0x18117fe7
cmp dword [esi + 0x14], 0
jne 0x18117fe7
cmp ecx, esi
jne 0x18117fe7
cmp eax, 5
jne 0x18117fe7
mov eax, dword [ebp - 0x1c]
test dword [eax + 0x1c], 0x2000
je 0x18117fc6
mov edx, dword [ebp - 8]
mov ecx, ebx
push 0
push 0
push 0x6d
call fcn.18123d9c
add esp, 0xc
test eax, eax
jne 0x18117fe7
mov eax, dword [ebp - 0x1c]
test dword [eax + 0x1c], 0x4000
je 0x18117f59
mov eax, dword [ebp - 8]
cmp dword [eax + 0x10], 0
jne 0x18117fe7
mov ecx, eax
call fcn.1811572f
test eax, eax
je 0x18117f59
inc dword [ebx + 0x3c]
mov ecx, edi
movzx eax, word [esi + 0x32]
push eax
push dword [ebp - 0x24]
push dword [ebp - 0x18]
push dword [ebp - 0x2c]
push 0x1c
pop edx
call fcn.180f794f
mov edx, dword [ebp - 0x10]
add esp, 0x10
cmp esi, edx
jne 0x18118011
mov ecx, dword [ebp - 0x24]
jmp 0x18118020
mov edx, dword [ebp - 0x30]
mov ecx, ebx
call fcn.1810ac6a
mov edx, dword [ebp - 0x10]
mov ecx, eax
cmp dword [ebp + 0x18], 0
mov dword [ebp - 0x20], ecx
jne 0x18118035
mov eax, dword [ebp - 0x14]
cmp eax, 5
jne 0x1811817b
mov eax, dword [ebp - 8]
test byte [eax + 0x24], 0x20
jne 0x18118084
push 0
push ecx
push dword [ebp - 0x2c]
mov edx, 0x85
mov ecx, edi
call fcn.180f7767
mov eax, dword [ebp + 0x18]
add esp, 0xc
test eax, eax
je 0x18118178
push eax
push dword [ebp - 0x18]
mov eax, dword [ebp - 0x20]
mov ecx, edi
push eax
push 0x35
pop edx
call fcn.180f7767
add esp, 0xc
mov edx, 0x90
mov ecx, edi
call fcn.180f7bf4
jmp 0x18118178
cmp esi, edx
je 0x181180cd
and dword [ebp - 0x44], 0
xor eax, eax
cmp ax, word [edx + 0x32]
jae 0x181180cd
mov ebx, dword [ebp - 0x44]
lea eax, [ecx + ebx]
mov ecx, esi
push eax
mov eax, dword [edx + 4]
mov dx, word [eax + ebx*2]
call fcn.1810dd92
cwde
mov ecx, edi
push eax
push dword [ebp - 0x2c]
push 0x63
pop edx
call fcn.180f7767
mov edx, dword [ebp - 0x10]
add esp, 0xc
mov ecx, dword [ebp - 0x20]
inc ebx
movzx eax, word [edx + 0x32]
cmp ebx, eax
jl 0x18118097
mov ebx, dword [ebp - 0x28]
cmp dword [ebp + 0x18], 0
je 0x18118178
movzx ecx, word [edx + 0x32]
mov eax, dword [edi + 0x88]
add eax, ecx
mov dword [ebp - 0x34], 0x34
mov dword [ebp - 0x44], eax
mov eax, dword [esi + 0x38]
and al, 3
cmp al, 2
mov eax, dword [ebp - 0x24]
je 0x181180fc
mov eax, dword [ebp - 0x20]
and dword [ebp - 0x50], 0
mov dword [ebp - 0x40], eax
test ecx, ecx
je 0x18118178
mov esi, dword [ebp - 0x50]
mov edx, dword [edx + 0x20]
mov ecx, ebx
mov edx, dword [edx + esi*4]
call fcn.1810e7f5
mov ecx, dword [ebp - 0x10]
mov ecx, dword [ecx + 4]
movsx edx, word [ecx + esi*2]
mov ecx, dword [ebp - 0x10]
movzx ecx, word [ecx + 0x32]
dec ecx
cmp esi, ecx
jne 0x1811813b
mov ecx, dword [ebp - 0x18]
push 0x35
mov dword [ebp - 0x44], ecx
pop ecx
mov dword [ebp - 0x34], ecx
jmp 0x1811813e
mov ecx, dword [ebp - 0x34]
push 0xfffffffffffffffe
push eax
mov eax, dword [ebp - 0x40]
add eax, esi
push eax
mov eax, dword [ebp + 0x18]
push dword [ebp - 0x44]
inc eax
add eax, edx
mov edx, ecx
push eax
mov ecx, edi
call fcn.180f7892
add esp, 0x14
mov edx, 0x90
mov ecx, edi
call fcn.180f7bf4
mov edx, dword [ebp - 0x10]
inc esi
movzx eax, word [edx + 0x32]
cmp esi, eax
jl 0x1811810a
mov esi, dword [ebp - 0x48]
mov eax, dword [ebp - 0x14]
test eax, eax
je 0x181181a2
cmp eax, 3
jbe 0x18118195
cmp eax, 4
jne 0x181181a2
mov edx, dword [ebp + 0x24]
mov ecx, edi
call fcn.180f77c9
jmp 0x18118204
push esi
mov edx, eax
mov ecx, ebx
call fcn.1811167e
pop ecx
jmp 0x18118204
mov eax, dword [ebx + 0x78]
xor edx, edx
test eax, eax
jne 0x181181ad
mov eax, ebx
mov byte [eax + 0x14], 1
mov eax, dword [ebp - 0x1c]
test dword [eax + 0x1c], 0x2000
je 0x181181d2
mov edx, dword [ebp - 8]
mov ecx, ebx
push 0
push 0
push 0x6d
call fcn.18123d9c
add esp, 0xc
mov edx, eax
push dword [ebp - 0x2c]
cmp esi, dword [ebp - 0x10]
sete cl
movzx ecx, cl
push ecx
push 5
push 0
push dword [ebp - 0x30]
mov ecx, ebx
push dword [ebp - 0x20]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push edx
mov edx, dword [ebp - 8]
call fcn.18112bda
add esp, 0x24
mov dword [ebp - 0x3c], 1
mov edx, dword [ebp - 0x18]
mov ecx, edi
call fcn.180f79e8
mov ecx, ebx
call fcn.1810898e
mov eax, dword [ebp - 0x20]
cmp eax, dword [ebp - 0x24]
je 0x1811822a
push dword [ebp - 0x30]
mov edx, eax
mov ecx, ebx
call fcn.1810aca0
pop ecx
mov ecx, dword [ebp - 8]
mov eax, dword [ebp - 0xc]
mov edx, dword [ebp + 8]
mov esi, dword [esi + 0x14]
inc eax
mov dword [ebp - 0x48], esi
mov dword [ebp - 0xc], eax
test esi, esi
jne 0x18117e08
mov eax, dword [ebp - 0x38]
test eax, eax
je 0x18118269
lea edx, [eax + 1]
mov ecx, edi
call fcn.180f77c9
mov edx, dword [ebp - 0x4c]
mov ecx, edi
call fcn.180f7ea8
mov ecx, dword [edi + 0x88]
mov dword [eax + 8], ecx
mov eax, dword [ebp + 0x28]
mov ecx, dword [ebp - 0x3c]
pop edi
pop esi
mov dword [eax], ecx
pop ebx
leave
ret