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

Disassembly:
push ebp
mov ebp, esp
push ebx
push esi
push edi
mov edi, dword [ebp + 0x10]
xor esi, esi
mov dword [edi], esi
cmp dword [0x1b388], esi
je 0x15b41
mov dword [0x1b388], esi
mov eax, dword [ebp + 0xc]
cmp eax, 0x61004d00
jne 0x15e70
movzx eax, byte [edi + 0x11]
cmp eax, dword [0x1b48c]
jae 0x1660d
lea esi, [eax + eax*4]
push 0x100
shl esi, 9
push edi
add esi, 0x22f40
call fcn.00010f20
mov al, byte [esi + 0x20]
mov byte [edi + 0x11], al
mov al, byte [esi + 0x21]
mov byte [edi + 0x10], al
mov al, byte [esi + 0x28]
mov byte [edi + 0x20], al
mov al, byte [esi + 0x29]
mov byte [edi + 0x21], al
mov al, byte [esi + 0x2a]
mov byte [edi + 0x22], al
mov al, byte [esi + 0x2b]
mov byte [edi + 0x23], al
mov ax, word [esi + 0x6e]
mov word [edi + 0x24], ax
mov eax, dword [esi + 0x74]
mov dword [edi + 0x30], eax
mov eax, dword [esi + 0x70]
mov dword [edi + 0x34], eax
mov eax, dword [esi + 0x78]
mov dword [edi + 0x38], eax
mov eax, dword [esi + 0x7c]
mov dword [edi + 0x3c], eax
mov al, byte [esi + 0x22]
mov byte [edi + 0x13], al
mov al, byte [esi + 0x23]
mov byte [edi + 0x12], al
mov al, byte [esi + 0x25]
mov byte [edi + 0x14], al
mov al, byte [esi + 0x24]
mov byte [edi + 0x15], al
mov al, byte [esi + 0x66]
mov byte [edi + 0x2e], al
mov al, byte [esi + 0x67]
mov byte [edi + 0x2f], al
mov eax, dword [esi + 0x60]
mov dword [edi + 0x28], eax
mov al, byte [esi + 0x64]
mov byte [edi + 0x2c], al
mov al, byte [esi + 0x65]
mov byte [edi + 0x2d], al
mov ax, word [esi + 0x6c]
mov word [edi + 0x26], ax
mov ax, word [esi + 0xfa]
mov word [edi + 0xca], ax
mov al, byte [esi + 0x6b]
mov byte [edi + 0x17], al
mov eax, dword [esi + 0x10]
mov dword [edi + 4], eax
mov al, byte [esi + 0x27]
mov byte [edi + 0x16], al
mov eax, dword [esi + 0x80]
mov dword [edi + 0x60], eax
mov eax, dword [esi + 0x84]
mov dword [edi + 0x64], eax
mov eax, dword [esi + 0x88]
mov dword [edi + 0x68], eax
mov eax, dword [esi + 0x8c]
mov dword [edi + 0x6c], eax
mov eax, dword [esi + 0x94]
mov dword [edi + 0x74], eax
mov eax, dword [esi + 0xa0]
mov dword [edi + 0x5c], eax
mov eax, dword [esi + 0x90]
mov dword [edi + 0x70], eax
mov eax, dword [esi + 0x98]
mov dword [edi + 0x78], eax
mov eax, dword [esi + 0x9c]
mov dword [edi + 0x7c], eax
mov al, byte [esi + 0x2c]
mov byte [edi + 0x18], al
mov al, byte [esi + 0x2d]
mov byte [edi + 0x19], al
mov al, byte [esi + 0xf0]
mov byte [edi + 0xc0], al
mov al, byte [esi + 0xf1]
mov byte [edi + 0xc1], al
mov al, byte [esi + 0xf2]
mov byte [edi + 0xc2], al
mov al, byte [esi + 0xf3]
mov byte [edi + 0xc3], al
mov al, byte [esi + 0xf4]
mov byte [edi + 0xc4], al
mov al, byte [esi + 0xf5]
mov byte [edi + 0xc5], al
mov al, byte [esi + 0xf6]
mov byte [edi + 0xc6], al
mov al, byte [esi + 0xf7]
mov byte [edi + 0xc7], al
mov ax, word [esi + 0xf8]
mov word [edi + 0xc8], ax
mov eax, dword [esi + 0x14]
mov dword [edi + 8], eax
mov eax, dword [esi + 0x1c]
mov dword [edi + 0xc], eax
mov eax, dword [esi + 0x9f0]
mov dword [edi + 0x1c], eax
mov eax, dword [esi + 0x150]
mov dword [edi + 0xa0], eax
mov eax, dword [esi + 0x130]
mov dword [edi + 0x80], eax
mov eax, dword [esi + 0x134]
mov dword [edi + 0x84], eax
mov eax, dword [esi + 0x138]
mov dword [edi + 0x88], eax
mov eax, dword [esi + 0x13c]
mov dword [edi + 0x8c], eax
mov eax, dword [esi + 0x140]
mov dword [edi + 0x90], eax
mov eax, dword [esi + 0x144]
mov dword [edi + 0x94], eax
mov eax, dword [esi + 0x148]
mov dword [edi + 0x98], eax
mov eax, dword [esi + 0x14c]
mov dword [edi + 0x9c], eax
mov eax, dword [esi + 0x154]
mov dword [edi + 0xa4], eax
mov eax, dword [esi + 0x16c]
mov dword [edi + 0xb8], eax
mov al, byte [esi + 0x9f8]
mov byte [edi + 0xb4], al
mov al, byte [esi + 0x9f9]
mov byte [edi + 0xb5], al
mov al, byte [esi + 0x9fa]
mov byte [edi + 0xb6], al
mov eax, dword [esi + 0x194]
mov dword [edi + 0xb0], eax
mov eax, dword [esi + 0x164]
mov dword [edi + 0xac], eax
mov eax, dword [esi + 0x168]
mov dword [edi + 0xbc], eax
mov ax, word [esi + 0x162]
mov word [edi + 0xa8], ax
mov ax, word [esi + 0x160]
mov word [edi + 0xaa], ax
mov eax, dword [esi + 0xfc]
mov dword [edi + 0xcc], eax
mov eax, dword [esi + 0xa8]
mov dword [edi + 0x40], eax
mov eax, dword [esi + 0xac]
mov dword [edi + 0x44], eax
mov eax, dword [esi + 0xb0]
mov dword [edi + 0x48], eax
mov eax, dword [esi + 0xb4]
mov dword [edi + 0x4c], eax
mov eax, dword [esi + 0xb8]
mov dword [edi + 0x50], eax
mov eax, dword [esi + 0xbc]
mov dword [edi + 0x54], eax
mov eax, dword [esi + 0x190]
mov dword [edi + 0x58], eax
mov al, byte [esi + 0x180]
mov byte [edi + 0xe0], al
mov al, byte [esi + 0x181]
mov byte [edi + 0xe1], al
mov al, byte [esi + 0x182]
mov byte [edi + 0xe2], al
mov al, byte [esi + 0x183]
mov byte [edi + 0xe3], al
mov dword [edi + 0xe4], esi
push 0x10
add edi, 0xd0
push edi
push esi
jmp 0x165ec
cmp eax, 0x21004d02
jne 0x15ec1
mov edx, dword [0x1b3d8]
mov eax, 0x22f40
cmp edx, eax
mov edi, eax
jbe 0x15e98
push edi
call fcn.00011958
add edi, 0xa00
cmp edi, edx
jb 0x15e88
mov dword [0x1b4b8], esi
mov dword [0x1b4bc], esi
mov dword [0x1b4c0], esi
mov dword [0x1b4c4], esi
mov dword [0x1b514], esi
mov dword [0x1b510], esi
jmp 0x16726
cmp eax, 0x61004d01
jne 0x15eee
movzx eax, byte [edi + 0x11]
cmp eax, dword [0x1b48c]
jae 0x1660d
lea eax, [eax + eax*4]
shl eax, 9
add eax, 0x22f40
push eax
call fcn.00011958
jmp 0x16728
cmp eax, 0x60104d0b
jne 0x15f80
movzx eax, byte [edi + 4]
cmp eax, dword [0x1b48c]
jae 0x1660d
mov dl, byte [edi + 5]
lea ecx, [eax + eax*4]
shl ecx, 9
add ecx, 0x22f40
cmp dl, byte [ecx + 0x28]
jae 0x1660d
mov bl, byte [edi + 6]
cmp bl, byte [ecx + 0x29]
jae 0x1660d
mov al, byte [edi + 7]
cmp al, byte [ecx + 0x2a]
jae 0x1660d
movzx edx, dl
movzx ebx, bl
movzx eax, al
shl edx, 4
add edx, ebx
lea eax, [eax + edx*8]
shl eax, 4
add eax, dword [ecx + 0x38]
test byte [eax + 4], 3
je 0x1660d
mov cl, byte [eax + 5]
mov byte [edi + 9], cl
mov cl, byte [eax + 6]
mov byte [edi + 0xa], cl
mov cl, byte [eax + 4]
mov byte [edi + 8], cl
cmp dword [eax + 8], esi
je 0x16726
or cl, 8
mov byte [edi + 8], cl
jmp 0x16726
cmp eax, 0x60404d03
jne 0x15fbd
movzx eax, byte [edi + 0x11]
cmp eax, dword [0x1b48c]
jae 0x1660d
push dword [edi + 0x20]
lea esi, [eax + eax*4]
shl esi, 9
add esi, 0x22f40
call fcn.000142d2
test eax, eax
mov dword [edi], eax
jne 0x16726
mov byte [esi + 0x27], 1
xor esi, esi
jmp 0x15ff2
cmp eax, 0x60404d05
jne 0x16010
push dword [edi + 0x20]
call fcn.000142d2
cmp eax, esi
mov dword [edi], eax
jne 0x16726
mov ecx, dword [0x1b3d8]
mov eax, 0x22f40
cmp ecx, eax
jbe 0x15ff2
mov byte [eax + 0x27], 1
add eax, 0xa00
cmp eax, ecx
jb 0x15fe5
call fcn.00010354
test byte [edi + 0x20], 1
je 0x1613d
mov dword [0x1f5a0], 1
jmp 0x1613d
cmp eax, 0x60404d04
jne 0x16039
movzx eax, byte [edi + 0x11]
cmp eax, dword [0x1b48c]
jae 0x1660d
lea eax, [eax + eax*4]
shl eax, 9
and byte [eax + 0x22f67], 0
jmp 0x1613d
cmp eax, 0x60404d06
jne 0x16067
mov ecx, dword [0x1b3d8]
mov eax, 0x22f40
cmp ecx, eax
jbe 0x1605c
and byte [eax + 0x27], 0
add eax, 0xa00
cmp eax, ecx
jb 0x1604f
mov dword [0x1f5a0], esi
jmp 0x1613d
cmp eax, 0x60404d09
jne 0x16110
cmp dword [0x1b5a4], esi
jne 0x16085
mov dword [edi], 0x9d
jmp 0x16726
mov eax, dword [0x1b4e0]
mov dword [edi + 0x24], eax
mov eax, dword [edi + 4]
cmp eax, dword [0x1b4e0]
je 0x160a8
push edi
call fcn.000111b2
cmp eax, esi
mov dword [edi], eax
je 0x1613d
mov eax, dword [0x1b4e0]
cmp dword [edi + 4], eax
jb 0x16675
mov esi, 0x22f38
push esi
call fcn.00010328
movzx eax, word [edi + 0x12]
mov ecx, dword [0x1b4b0]
add eax, ecx
cmp dword [0x1f59c], eax
jbe 0x160da
mov dword [0x1f59c], eax
inc dword [0x1b4e4]
push 1
push 0x1f598
call fcn.00010a9e
dec dword [0x1b4e4]
push esi
mov ebx, eax
call fcn.00010304
test ebx, ebx
je 0x16109
mov dword [edi], 0x84
jmp 0x16726
mov eax, 0x60404d08
xor esi, esi
cmp eax, 0x60404d08
jne 0x1611f
push edi
call fcn.000111b2
jmp 0x1613b
cmp eax, 0x60404d07
jne 0x1612e
push edi
call fcn.0001424e
jmp 0x1613b
cmp eax, 0x60404d0a
jne 0x1615e
push edi
call fcn.00014282
mov dword [edi], eax
mov dword [edi + 0x14], esi
call fcn.0001099e
mov dword [edi + 0x18], eax
call fcn.00010374
mov word [edi + 0x1c], ax
mov eax, dword [0x1b4e0]
mov dword [edi + 0x24], eax
jmp 0x16726
cmp eax, 0x61004d1e
jne 0x16260
movzx eax, byte [edi + 4]
cmp eax, dword [0x1b48c]
jae 0x1660d
lea esi, [eax + eax*4]
push 0x100
shl esi, 9
push edi
add esi, 0x22f40
call fcn.00010f20
mov al, byte [esi + 0x9f8]
mov byte [edi + 5], al
mov al, byte [esi + 0x9f9]
mov byte [edi + 6], al
mov al, byte [esi + 0x9fa]
mov byte [edi + 7], al
mov eax, dword [esi + 0x16c]
mov dword [edi + 8], eax
mov eax, dword [esi + 0x70]
mov dword [edi + 0xc], eax
mov eax, dword [esi + 0x130]
mov dword [edi + 0x10], eax
mov eax, dword [esi + 0x134]
mov dword [edi + 0x14], eax
mov eax, dword [esi + 0x138]
mov dword [edi + 0x18], eax
mov eax, dword [esi + 0x13c]
mov dword [edi + 0x1c], eax
mov eax, dword [esi + 0x140]
mov dword [edi + 0x20], eax
mov eax, dword [esi + 0x144]
mov dword [edi + 0x24], eax
mov eax, dword [esi + 0x148]
mov dword [edi + 0x28], eax
mov eax, dword [esi + 0x14c]
mov dword [edi + 0x2c], eax
mov eax, dword [esi + 0x150]
mov dword [edi + 0x30], eax
mov eax, dword [esi + 0x154]
mov dword [edi + 0x34], eax
movzx eax, word [esi + 0x162]
mov dword [edi + 0x38], eax
mov eax, dword [esi + 0x164]
mov dword [edi + 0x3c], eax
mov eax, dword [esi + 0x170]
mov dword [edi + 0x40], eax
mov eax, dword [esi + 0x174]
shr eax, 1
mov dword [edi + 0x44], eax
mov eax, dword [esi + 0x178]
mov dword [edi + 0x48], eax
mov eax, dword [esi + 0x17c]
and dword [edi + 0x50], 0
shr eax, 1
mov dword [edi + 0x4c], eax
call fcn.0001099e
mov dword [edi + 0x54], eax
jmp 0x16726
cmp eax, 0x61004d1f
jne 0x16372
push 0x100
push edi
call fcn.00010f20
mov dword [edi + 0x50], esi
call fcn.0001099e
mov dword [edi + 0x54], eax
mov al, byte [0x1b48c]
mov byte [edi + 4], al
cmp dword [0x1b3d8], 0x22f40
jbe 0x16726
mov eax, 0x23939
mov cl, byte [eax - 1]
add byte [edi + 5], cl
mov cl, byte [eax]
add byte [edi + 6], cl
mov cl, byte [eax + 1]
add byte [edi + 7], cl
mov ecx, dword [eax - 0x88d]
add dword [edi + 8], ecx
mov ecx, dword [eax - 0x989]
add dword [edi + 0xc], ecx
mov ecx, dword [eax - 0x8c9]
add dword [edi + 0x10], ecx
mov ecx, dword [eax - 0x8c5]
add dword [edi + 0x14], ecx
mov ecx, dword [eax - 0x8c1]
add dword [edi + 0x18], ecx
mov ecx, dword [eax - 0x8bd]
add dword [edi + 0x1c], ecx
mov ecx, dword [eax - 0x8b9]
add dword [edi + 0x20], ecx
mov ecx, dword [eax - 0x8b5]
add dword [edi + 0x24], ecx
mov ecx, dword [eax - 0x8b1]
add dword [edi + 0x28], ecx
mov ecx, dword [eax - 0x8ad]
add dword [edi + 0x2c], ecx
mov ecx, dword [eax - 0x8a9]
add dword [edi + 0x30], ecx
mov ecx, dword [eax - 0x8a5]
add dword [edi + 0x34], ecx
movzx ecx, word [eax - 0x897]
add dword [edi + 0x38], ecx
mov ecx, dword [eax - 0x895]
add dword [edi + 0x3c], ecx
mov ecx, dword [eax - 0x889]
add dword [edi + 0x40], ecx
mov ecx, dword [eax - 0x885]
shr ecx, 1
add dword [edi + 0x44], ecx
mov ecx, dword [eax - 0x881]
add dword [edi + 0x48], ecx
mov ecx, dword [eax - 0x87d]
shr ecx, 1
add dword [edi + 0x4c], ecx
add eax, 0xa00
lea ecx, [eax - 0x9f9]
cmp ecx, dword [0x1b3d8]
jb 0x1629e
jmp 0x16726
cmp eax, 0x20104d0a
je 0x1671d
cmp eax, 0x20104410
je 0x1671d
cmp eax, 0x21004d0c
jne 0x163bc
mov eax, dword [0x39b88]
mov dword [0x1b520], eax
mov eax, dword [0x37b48]
mov dword [0x1b518], eax
mov eax, dword [0x37b4c]
push 0x40
pop ecx
mov esi, 0x1b488
mov dword [0x1b51c], eax
rep movsd dword es:[edi], dword [esi]
jmp 0x16726
cmp eax, 0x41004d0b
jne 0x163e3
cmp dword [edi + 0xa0], 0x9d
jne 0x1660d
mov al, byte [edi + 0x9d]
mov byte [0x1b525], al
jmp 0x16726
cmp eax, 0x60304d0d
jne 0x16411
movzx eax, byte [edi + 0xc]
cmp eax, dword [0x1b48c]
jae 0x1660d
lea eax, [eax + eax*4]
shl eax, 9
add eax, 0x22f40
push edi
push eax
call fcn.000124da
jmp 0x16719
cmp eax, 0x60704d14
jne 0x1643f
movzx eax, byte [edi + 0xc]
cmp eax, dword [0x1b48c]
jae 0x1660d
lea eax, [eax + eax*4]
shl eax, 9
add eax, 0x22f40
push edi
push eax
call fcn.0001297e
jmp 0x16719
cmp eax, 0x20204d1b
mov ebx, 0x20204d1c
jne 0x16452
call fcn.00010354
mov eax, ebx
cmp eax, ebx
je 0x16506
cmp eax, 0x20404d1d
jne 0x164be
cmp dword [0x1f5b0], esi
jne 0x1660d
push 0x40
push edi
call fcn.00010f20
mov dword [edi + 4], fcn.00015b26
mov dword [edi + 8], 0x12f52
mov dword [edi + 0x1c], 0x13214
mov dword [edi + 0xc], 0x125f8
mov eax, dword [0x1b464]
mov dword [edi + 0x10], eax
mov eax, dword [ebp + 8]
lea ecx, [eax + eax*4]
shl ecx, 9
add ecx, 0x22f40
mov dword [edi + 0x14], 0x4d674666
mov dword [edi + 0x18], 0x4d674665
mov dword [edi + 0x34], ecx
mov byte [edi + 0x38], al
jmp 0x164f0
cmp eax, 0x60204d25
jne 0x164ff
movzx eax, byte [edi + 0x11]
dec eax
je 0x164e0
dec eax
jne 0x16726
mov eax, dword [edi + 0x18]
mov dword [0x1f5ac], eax
jmp 0x16726
mov eax, dword [edi + 0xc]
cmp eax, esi
je 0x164f0
mov ecx, dword [edi + 0x14]
mov dword [eax + 0x9e0], ecx
mov dword [0x1f5ac], 1
jmp 0x16726
cmp eax, 0x20204401
jne 0x16539
mov dword [edi + 4], esi
call fcn.0001099e
mov dword [edi + 8], eax
call fcn.00010374
mov dword [edi + 0xc], eax
lea eax, [edi + 0x10]
mov dword [eax], esi
mov dword [edi + 0x14], esi
cmp dword [0x1b470], 5
jne 0x16726
push eax
call fcn.000103d0
jmp 0x16726
cmp eax, 0x21404404
jne 0x1654d
push 0x140
push edi
push 0x39ba0
jmp 0x1658f
cmp eax, 0x61404402
jne 0x16561
push 1
push edi
call fcn.00015186
jmp 0x16719
cmp eax, 0x61404403
jne 0x1656b
push esi
jmp 0x16556
cmp eax, 0x6010440f
jne 0x1657d
push edi
call fcn.00018934
jmp 0x16719
cmp eax, 0x2090440e
jne 0x16599
push 0x90
push edi
push 0x22e80
call fcn.00010ee4
jmp 0x16728
cmp eax, 0x6090440c
je 0x16712
cmp eax, 0x6090440d
je 0x16712
cmp eax, 0x61f84d20
jne 0x165f6
movzx eax, byte [edi + 4]
cmp eax, dword [0x1b48c]
jae 0x1660d
lea eax, [eax + eax*4]
shl eax, 9
add eax, 0x22f40
push eax
call fcn.00012228
cmp eax, esi
jne 0x165e2
mov dword [edi], 0x95
jmp 0x16726
push 0x1f0
add edi, 8
push edi
push eax
call fcn.00010ee4
jmp 0x16726
cmp eax, 0x61f04d21
jne 0x1669f
movzx eax, byte [edi + 4]
cmp eax, dword [0x1b48c]
jb 0x16618
mov dword [edi], 0x8f
jmp 0x16726
lea esi, [eax + eax*4]
shl esi, 9
add esi, 0x22f40
lea eax, [esi + 0xe4]
push eax
mov dword [ebp + 0x10], eax
call fcn.00010328
cmp word [edi + 6], 0x200
jae 0x1666d
mov dx, word [edi + 6]
movzx eax, dx
mov eax, dword [esi + eax*4 + 0x1b0]
test eax, eax
je 0x16661
movzx ebx, byte [edi + 5]
sub ebx, dword [eax + 0x44]
mov ecx, dword [0x1b4b0]
add ebx, dword [eax + 0x40]
cmp ebx, ecx
jbe 0x16680
inc edx
cmp dx, 0x200
mov word [edi + 6], dx
jb 0x1663b
push dword [ebp + 0x10]
call fcn.00010304
mov dword [edi], 0x82
jmp 0x16726
mov dword [edi + 8], ecx
push 0x1e0
add edi, 0x10
push edi
push eax
call fcn.00010ee4
push dword [ebp + 0x10]
call fcn.00010304
jmp 0x16726
cmp eax, 0x61504411
je 0x16709
cmp eax, 0x61504413
je 0x16709
cmp eax, 0x61504412
je 0x16709
cmp eax, 0x60a04414
je 0x16700
cmp eax, 0x60a04416
je 0x16700
cmp eax, 0x60a04415
je 0x16700
cmp eax, 0x61f04d22
jne 0x166da
push 1
push edi
call fcn.000144a6
jmp 0x16719
cmp eax, 0x60304d23
jne 0x166e9
push edi
call fcn.0001339e
jmp 0x16719
cmp eax, 0x60304d24
jne 0x166f8
push edi
call fcn.00014d76
jmp 0x16719
mov dword [edi], 0x94
jmp 0x16726
push eax
push edi
call fcn.00013b9a
jmp 0x16719
push eax
push edi
call fcn.00013918
jmp 0x16719
push eax
push edi
call fcn.00019982
mov dword [edi], eax
jmp 0x16726
mov esi, 0x1b3c8
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
xor eax, eax
pop edi
pop esi
pop ebx
pop ebp
ret 0xc