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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x80
mov ecx, dword [ebp + 8]
mov eax, dword [0x100c51b8]
xor eax, ebp
mov dword [esp + 0x78], eax
xor eax, eax
mov dword [ecx], eax
mov dword [ecx + 0x10], eax
mov dword [ecx + 0x14], 0xf
mov byte [ecx], 0
lea edx, [esp + 0x44]
mov dword [esp + 0x34], edx
mov eax, dword [esp + 0x34]
mov dword [edx], ecx
mov eax, 0xb9c9d7a5
mov dword [esp + 0x30], 0
cmp eax, 0x7d88e3f
jle 0x10012703
cmp eax, 0x26d4486f
jle 0x10012769
cmp eax, 0x3b111167
jg 0x100127d6
cmp eax, 0x26d44870
je 0x100129a7
cmp eax, 0x37fb9e68
jne 0x1001257e
push dword [esp + 0x28]
call fcn.1005c0cd
add esp, 4
mov dword [esp + 0x24], eax
mov dword [esp + 0x40], edx
mov edi, dword [esp + 0x1c]
lea esi, [edi*8 + 8]
inc edi
shr edi, 0x1d
mov eax, 0xe65ce799
cmp eax, 0xec54c5c4
jg 0x10012632
cmp eax, 0xc8b8fd9e
je 0x10012654
cmp eax, 0xdd81aaa6
je 0x100126ae
cmp eax, 0xe65ce799
jne 0x100125d9
mov dword [esp + 0x64], edi
mov dword [esp + 0x60], esi
mov eax, dword [esp + 0x64]
mov eax, dword [esp + 0x60]
mov byte [esp + 8], al
mov eax, 0x80
cmp eax, dword [esp + 0x60]
mov eax, 0
sbb eax, dword [esp + 0x64]
mov bl, byte [esp + 8]
mov eax, 0xc8b8fd9e
mov ecx, 0xec54c5c5
cmovb eax, ecx
jmp 0x100125d9
cmp eax, 0xec54c5c5
je 0x100126c8
cmp eax, 0xfac77a1a
je 0x100126e2
cmp eax, 0x706191e7
jne 0x100125d9
jmp 0x100129c0
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x64]
shrd eax, ecx, 7
shr ecx, 7
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x48], eax
lea eax, [esp + 0x44]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x10]
mov ecx, dword [eax]
movsx eax, bl
push eax
call fcn.100091f2
mov eax, 0x7f
cmp eax, dword [esp + 0x48]
mov eax, 0
sbb eax, dword [esp + 0x4c]
mov eax, 0xdd81aaa6
mov ecx, 0xe65ce799
cmovb eax, ecx
mov esi, dword [esp + 0x48]
mov edi, dword [esp + 0x4c]
jmp 0x100125d9
mov eax, dword [esp + 0x48]
or eax, dword [esp + 0x4c]
mov eax, 0xfac77a1a
mov ecx, 0x706191e7
cmove eax, ecx
jmp 0x100125d9
mov bl, byte [esp + 8]
mov eax, ebx
xor al, 0xac
and bl, 0x80
or bl, al
xor bl, 0x2c
mov eax, 0xc8b8fd9e
jmp 0x100125d9
mov eax, dword [esp + 0x10]
mov ecx, dword [eax]
mov eax, dword [esp + 0x48]
mov edx, dword [esp + 0x4c]
movsx eax, al
push eax
call fcn.100091f2
mov eax, 0x706191e7
jmp 0x100125d9
cmp eax, 0xcf46468d
jle 0x10012798
cmp eax, 0xeee0735b
jg 0x10012815
cmp eax, 0xcf46468e
je 0x10012af7
cmp eax, 0xe54921e6
jne 0x1001257e
mov eax, dword [esp + 0x1c]
mov ecx, dword [ebp + 0xc]
lea eax, [ecx + eax*8]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x38]
add eax, 4
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x3c]
mov eax, dword [eax]
mov dword [esp + 0x28], eax
cmp dword [esp + 0x28], 0
mov eax, 0x64789a8f
mov ecx, 0xcf46468e
cmove eax, ecx
jmp 0x1001257e
cmp eax, 0x7d88e40
je 0x10012b0a
cmp eax, 0x10c01492
je 0x10012b23
cmp eax, 0x12c94d7c
jne 0x1001257e
mov eax, dword [esp + 0x34]
mov eax, 0xeee0735c
jmp 0x1001257e
cmp eax, 0x90c3f588
je 0x1001280b
cmp eax, 0xb9a5516c
je 0x10012c71
cmp eax, 0xb9c9d7a5
jne 0x1001257e
mov eax, dword [esp + 0x30]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x1c]
cmp eax, dword [ebp + 0x10]
mov eax, 0x90c3f588
mov ecx, 0xe54921e6
cmovl eax, ecx
jmp 0x1001257e
cmp eax, 0x3b111168
je 0x1001280b
cmp eax, 0x64789a8f
jne 0x1001257e
mov eax, dword [esp + 0x38]
mov eax, dword [eax]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x2c]
cmp eax, 1
mov eax, 0x26d44870
mov ecx, 0xf39749fb
cmove eax, ecx
jmp 0x1001257e
mov eax, 0x12c94d7c
jmp 0x1001257e
cmp eax, 0xf39749fb
jne 0x10012f23
mov eax, dword [esp + 0x3c]
push dword [eax]
lea esi, [esp + 0x64]
push esi
call fcn.1005c2e1
add esp, 8
mov ecx, esi
call fcn.10007bca
mov esi, eax
xor eax, eax
mov dword [esp + 0x48], eax
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], 0xf
mov byte [esp + 0x48], 0
push esi
call fcn.1009ee80
add esp, 4
lea ecx, [esp + 0x48]
push eax
push esi
call fcn.10007b00
mov eax, dword [esp + 0x1c]
lea esi, [eax + 1]
shr esi, 0x1d
lea edi, [eax*8 + 0xa]
mov eax, 0xe65ce799
cmp eax, 0xec54c5c4
jg 0x100128d6
cmp eax, 0xc8b8fd9e
je 0x100128f8
cmp eax, 0xdd81aaa6
je 0x10012952
cmp eax, 0xe65ce799
jne 0x1001287d
mov dword [esp + 0x14], esi
mov dword [esp + 0x10], edi
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
mov byte [esp + 7], al
mov eax, 0x80
cmp eax, dword [esp + 0x10]
mov eax, 0
sbb eax, dword [esp + 0x14]
mov bl, byte [esp + 7]
mov eax, 0xc8b8fd9e
mov ecx, 0xec54c5c5
cmovb eax, ecx
jmp 0x1001287d
cmp eax, 0xec54c5c5
je 0x1001296c
cmp eax, 0xfac77a1a
je 0x10012986
cmp eax, 0x706191e7
jne 0x1001287d
jmp 0x10012c83
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
shrd eax, ecx, 7
shr ecx, 7
mov dword [esp + 0xc], ecx
mov dword [esp + 8], eax
lea eax, [esp + 0x44]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x20]
mov ecx, dword [eax]
movsx eax, bl
push eax
call fcn.100091f2
mov eax, 0x7f
cmp eax, dword [esp + 8]
mov eax, 0
sbb eax, dword [esp + 0xc]
mov eax, 0xdd81aaa6
mov ecx, 0xe65ce799
cmovb eax, ecx
mov edi, dword [esp + 8]
mov esi, dword [esp + 0xc]
jmp 0x1001287d
mov eax, dword [esp + 8]
or eax, dword [esp + 0xc]
mov eax, 0xfac77a1a
mov ecx, 0x706191e7
cmove eax, ecx
jmp 0x1001287d
mov bl, byte [esp + 7]
mov eax, ebx
xor al, 0xac
and bl, 0x80
or bl, al
xor bl, 0x2c
mov eax, 0xc8b8fd9e
jmp 0x1001287d
mov eax, dword [esp + 0x20]
mov ecx, dword [eax]
mov eax, dword [esp + 8]
mov edx, dword [esp + 0xc]
movsx eax, al
push eax
call fcn.100091f2
mov eax, 0x706191e7
jmp 0x1001287d
mov eax, dword [esp + 0x2c]
cmp eax, 5
mov eax, 0x7d88e40
mov ecx, 0x37fb9e68
cmove eax, ecx
jmp 0x1001257e
mov eax, 0xe65ce799
mov esi, dword [esp + 0x24]
mov edi, dword [esp + 0x40]
cmp eax, 0xec54c5c4
jg 0x10012a26
cmp eax, 0xc8b8fd9e
je 0x10012a48
cmp eax, 0xdd81aaa6
je 0x10012aa2
cmp eax, 0xe65ce799
jne 0x100129cd
mov dword [esp + 0x64], edi
mov dword [esp + 0x60], esi
mov eax, dword [esp + 0x64]
mov eax, dword [esp + 0x60]
mov byte [esp + 8], al
mov eax, 0x80
cmp eax, dword [esp + 0x60]
mov eax, 0
sbb eax, dword [esp + 0x64]
mov bl, byte [esp + 8]
mov eax, 0xc8b8fd9e
mov ecx, 0xec54c5c5
cmovb eax, ecx
jmp 0x100129cd
cmp eax, 0xec54c5c5
je 0x10012abc
cmp eax, 0xfac77a1a
je 0x10012ad6
cmp eax, 0x706191e7
jne 0x100129cd
jmp 0x10012f19
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x64]
shrd eax, ecx, 7
shr ecx, 7
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x48], eax
lea eax, [esp + 0x44]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x10]
mov ecx, dword [eax]
movsx eax, bl
push eax
call fcn.100091f2
mov eax, 0x7f
cmp eax, dword [esp + 0x48]
mov eax, 0
sbb eax, dword [esp + 0x4c]
mov eax, 0xdd81aaa6
mov ecx, 0xe65ce799
cmovb eax, ecx
mov esi, dword [esp + 0x48]
mov edi, dword [esp + 0x4c]
jmp 0x100129cd
mov eax, dword [esp + 0x48]
or eax, dword [esp + 0x4c]
mov eax, 0xfac77a1a
mov ecx, 0x706191e7
cmove eax, ecx
jmp 0x100129cd
mov bl, byte [esp + 8]
mov eax, ebx
xor al, 0xac
and bl, 0x80
or bl, al
xor bl, 0x2c
mov eax, 0xc8b8fd9e
jmp 0x100129cd
mov eax, dword [esp + 0x10]
mov ecx, dword [eax]
mov eax, dword [esp + 0x48]
mov edx, dword [esp + 0x4c]
movsx eax, al
push eax
call fcn.100091f2
mov eax, 0x706191e7
jmp 0x100129cd
mov eax, dword [esp + 0x1c]
inc eax
mov dword [esp + 0x30], eax
mov eax, 0xb9c9d7a5
jmp 0x1001257e
mov eax, dword [esp + 0x2c]
cmp eax, 4
mov eax, 0x3b111168
mov ecx, 0x10c01492
cmove eax, ecx
jmp 0x1001257e
push dword [esp + 0x28]
call fcn.1005c08b
add esp, 4
mov dword [esp + 0x24], eax
mov esi, dword [esp + 0x1c]
lea edi, [esi*8 + 8]
inc esi
shr esi, 0x1d
mov eax, 0xe65ce799
cmp eax, 0xec54c5c4
jg 0x10012ba0
cmp eax, 0xc8b8fd9e
je 0x10012bc2
cmp eax, 0xdd81aaa6
je 0x10012c1c
cmp eax, 0xe65ce799
jne 0x10012b47
mov dword [esp + 0x64], esi
mov dword [esp + 0x60], edi
mov eax, dword [esp + 0x64]
mov eax, dword [esp + 0x60]
mov byte [esp + 8], al
mov eax, 0x80
cmp eax, dword [esp + 0x60]
mov eax, 0
sbb eax, dword [esp + 0x64]
mov bl, byte [esp + 8]
mov eax, 0xc8b8fd9e
mov ecx, 0xec54c5c5
cmovb eax, ecx
jmp 0x10012b47
cmp eax, 0xec54c5c5
je 0x10012c36
cmp eax, 0xfac77a1a
je 0x10012c50
cmp eax, 0x706191e7
jne 0x10012b47
jmp 0x10012db8
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x64]
shrd eax, ecx, 7
shr ecx, 7
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x48], eax
lea eax, [esp + 0x44]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x10]
mov ecx, dword [eax]
movsx eax, bl
push eax
call fcn.100091f2
mov eax, 0x7f
cmp eax, dword [esp + 0x48]
mov eax, 0
sbb eax, dword [esp + 0x4c]
mov eax, 0xdd81aaa6
mov ecx, 0xe65ce799
cmovb eax, ecx
mov edi, dword [esp + 0x48]
mov esi, dword [esp + 0x4c]
jmp 0x10012b47
mov eax, dword [esp + 0x48]
or eax, dword [esp + 0x4c]
mov eax, 0xfac77a1a
mov ecx, 0x706191e7
cmove eax, ecx
jmp 0x10012b47
mov bl, byte [esp + 8]
mov eax, ebx
xor al, 0xac
and bl, 0x80
or bl, al
xor bl, 0x2c
mov eax, 0xc8b8fd9e
jmp 0x10012b47
mov eax, dword [esp + 0x10]
mov ecx, dword [eax]
mov eax, dword [esp + 0x48]
mov edx, dword [esp + 0x4c]
movsx eax, al
push eax
call fcn.100091f2
mov eax, 0x706191e7
jmp 0x10012b47
mov ecx, dword [ebp + 8]
call fcn.100087f0
mov eax, 0xeee0735c
jmp 0x1001257e
mov esi, dword [esp + 0x58]
xor edi, edi
mov eax, 0xe65ce799
cmp eax, 0xec54c5c4
jg 0x10012ce7
cmp eax, 0xc8b8fd9e
je 0x10012d09
cmp eax, 0xdd81aaa6
je 0x10012d63
cmp eax, 0xe65ce799
jne 0x10012c8e
mov dword [esp + 0x14], edi
mov dword [esp + 0x10], esi
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
mov byte [esp + 7], al
mov eax, 0x80
cmp eax, dword [esp + 0x10]
mov eax, 0
sbb eax, dword [esp + 0x14]
mov bl, byte [esp + 7]
mov eax, 0xc8b8fd9e
mov ecx, 0xec54c5c5
cmovb eax, ecx
jmp 0x10012c8e
cmp eax, 0xec54c5c5
je 0x10012d7d
cmp eax, 0xfac77a1a
je 0x10012d97
cmp eax, 0x706191e7
jne 0x10012c8e
jmp 0x10012eed
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
shrd eax, ecx, 7
shr ecx, 7
mov dword [esp + 0xc], ecx
mov dword [esp + 8], eax
lea eax, [esp + 0x44]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x20]
mov ecx, dword [eax]
movsx eax, bl
push eax
call fcn.100091f2
mov eax, 0x7f
cmp eax, dword [esp + 8]
mov eax, 0
sbb eax, dword [esp + 0xc]
mov eax, 0xdd81aaa6
mov ecx, 0xe65ce799
cmovb eax, ecx
mov esi, dword [esp + 8]
mov edi, dword [esp + 0xc]
jmp 0x10012c8e
mov eax, dword [esp + 8]
or eax, dword [esp + 0xc]
mov eax, 0xfac77a1a
mov ecx, 0x706191e7
cmove eax, ecx
jmp 0x10012c8e
mov bl, byte [esp + 7]
mov eax, ebx
xor al, 0xac
and bl, 0x80
or bl, al
xor bl, 0x2c
mov eax, 0xc8b8fd9e
jmp 0x10012c8e
mov eax, dword [esp + 0x20]
mov ecx, dword [eax]
mov eax, dword [esp + 8]
mov edx, dword [esp + 0xc]
movsx eax, al
push eax
call fcn.100091f2
mov eax, 0x706191e7
jmp 0x10012c8e
xor esi, esi
mov eax, 0xe65ce799
mov edi, dword [esp + 0x24]
cmp eax, 0xec54c5c4
jg 0x10012e1c
cmp eax, 0xc8b8fd9e
je 0x10012e3e
cmp eax, 0xdd81aaa6
je 0x10012e98
cmp eax, 0xe65ce799
jne 0x10012dc3
mov dword [esp + 0x64], esi
mov dword [esp + 0x60], edi
mov eax, dword [esp + 0x64]
mov eax, dword [esp + 0x60]
mov byte [esp + 8], al
mov eax, 0x80
cmp eax, dword [esp + 0x60]
mov eax, 0
sbb eax, dword [esp + 0x64]
mov bl, byte [esp + 8]
mov eax, 0xc8b8fd9e
mov ecx, 0xec54c5c5
cmovb eax, ecx
jmp 0x10012dc3
cmp eax, 0xec54c5c5
je 0x10012eb2
cmp eax, 0xfac77a1a
je 0x10012ecc
cmp eax, 0x706191e7
jne 0x10012dc3
jmp 0x10012f19
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x64]
shrd eax, ecx, 7
shr ecx, 7
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x48], eax
lea eax, [esp + 0x44]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x10]
mov ecx, dword [eax]
movsx eax, bl
push eax
call fcn.100091f2
mov eax, 0x7f
cmp eax, dword [esp + 0x48]
mov eax, 0
sbb eax, dword [esp + 0x4c]
mov eax, 0xdd81aaa6
mov ecx, 0xe65ce799
cmovb eax, ecx
mov edi, dword [esp + 0x48]
mov esi, dword [esp + 0x4c]
jmp 0x10012dc3
mov eax, dword [esp + 0x48]
or eax, dword [esp + 0x4c]
mov eax, 0xfac77a1a
mov ecx, 0x706191e7
cmove eax, ecx
jmp 0x10012dc3
mov bl, byte [esp + 8]
mov eax, ebx
xor al, 0xac
and bl, 0x80
or bl, al
xor bl, 0x2c
mov eax, 0xc8b8fd9e
jmp 0x10012dc3
mov eax, dword [esp + 0x10]
mov ecx, dword [eax]
mov eax, dword [esp + 0x48]
mov edx, dword [esp + 0x4c]
movsx eax, al
push eax
call fcn.100091f2
mov eax, 0x706191e7
jmp 0x10012dc3
mov esi, dword [esp + 0x44]
mov edi, dword [esp + 0x58]
lea ebx, [esp + 0x48]
mov ecx, ebx
call fcn.10007bca
mov ecx, esi
push edi
push eax
call fcn.10008e94
mov ecx, ebx
call fcn.100087f0
lea ecx, [esp + 0x60]
call fcn.100087f0
mov eax, 0xcf46468e
jmp 0x1001257e
cmp eax, 0xeee0735c
jne 0x1001257e
mov ecx, dword [esp + 0x78]
xor ecx, ebp
call fcn.100879aa
mov eax, dword [ebp + 8]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret