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

Disassembly:
sub esp, 0xa0
push ebx
push ebp
push esi
push edi
push dword [esp + 0xbc]
push dword [esp + 0xbc]
push dword [esp + 0xbc]
push edx
push ecx
call fcn.0030aa7d
mov dword [esp + 0xb8], 0x15d52b
xor ebx, ebx
mov dword [esp + 0xbc], ebx
add esp, 0x14
mov dword [esp + 0xac], ebx
xor edx, edx
mov dword [esp + 0x40], 0xc67f7e
mov esi, 0xef75db7
xor dword [esp + 0x40], 0xf9841643
mov ebp, ebx
xor dword [esp + 0x40], 0xffaaa63a
or dword [esp + 0x40], 0xed3459f6
xor dword [esp + 0x40], 0xeffcdff6
mov dword [esp + 0x5c], 0x249365
add dword [esp + 0x5c], 0x3f96
xor dword [esp + 0x5c], 0x5f8594cb
xor dword [esp + 0x5c], 0x5fa14631
mov dword [esp + 0x94], 0x2cb389
mov eax, dword [esp + 0x94]
push 0xc
pop ecx
div ecx
push 0x7a
mov dword [esp + 0x98], eax
xor edx, edx
xor dword [esp + 0x98], 0x3b9a1
mov dword [esp + 0x6c], 0xe8815e
mov eax, dword [esp + 0x6c]
pop ecx
div ecx
push 0x73
mov dword [esp + 0x6c], eax
xor edx, edx
imul eax, dword [esp + 0x6c], 0x5c
pop ecx
push 0x79
mov dword [esp + 0x6c], eax
xor dword [esp + 0x6c], 0xa081ef
mov dword [esp + 0x30], 0x333c6a
or dword [esp + 0x30], 0x4b90d66a
xor dword [esp + 0x30], 0x6a33d1a4
shr dword [esp + 0x30], 0xf
xor dword [esp + 0x30], 0xe1c33
mov dword [esp + 0x20], 0xd6ca46
shr dword [esp + 0x20], 5
mov eax, dword [esp + 0x20]
div ecx
xor edx, edx
mov dword [esp + 0x20], eax
or dword [esp + 0x20], 0x9cfe8c3f
xor dword [esp + 0x20], 0x9cfcd227
mov dword [esp + 0x64], 0x58b45a
shl dword [esp + 0x64], 0xd
shr dword [esp + 0x64], 1
xor dword [esp + 0x64], 0xb42a7b7
mov dword [esp + 0x1c], 0xefdf4e
imul eax, dword [esp + 0x1c], 0x35
pop ecx
mov dword [esp + 0x18], eax
add dword [esp + 0x18], 0x2455
or dword [esp + 0x18], 0xed26e6d9
xor dword [esp + 0x18], 0xfdad5268
mov dword [esp + 0x88], 0xcf9095
add dword [esp + 0x88], 0xffff1da8
xor dword [esp + 0x88], 0xce57a1
mov dword [esp + 0x8c], 0xf2f921
mov eax, dword [esp + 0x8c]
div ecx
mov dword [esp + 0x8c], eax
xor dword [esp + 0x8c], 0x6e8c0
mov dword [esp + 0x80], 0xe42ebf
mov eax, dword [esp + 0x80]
xor edx, edx
push 0x49
pop ecx
div ecx
push 7
mov dword [esp + 0x84], eax
xor edx, edx
xor dword [esp + 0x84], 0x1c098
mov dword [esp + 0x70], 0xe6da5e
add dword [esp + 0x70], 0xffffada0
xor dword [esp + 0x70], 0xec5072
mov dword [esp + 0x7c], 0xab3123
shl dword [esp + 0x7c], 0xe
xor dword [esp + 0x7c], 0xcc4b2e92
mov dword [esp + 0x3c], 0xa575af
or dword [esp + 0x3c], 0xe5e68960
xor dword [esp + 0x3c], 0xbc9bfc27
imul eax, dword [esp + 0x3c], 0x5b
pop ecx
push 0x46
mov dword [esp + 0x3c], eax
xor dword [esp + 0x3c], 0xcf11934d
mov dword [esp + 0x74], 0x950c85
xor dword [esp + 0x74], 0x89bc2ca5
xor dword [esp + 0x74], 0x8925e027
mov dword [esp + 0x4c], 0xd1d15a
or dword [esp + 0x4c], 0x303f09bf
shr dword [esp + 0x4c], 2
xor dword [esp + 0x4c], 0xc3c88e8
mov dword [esp + 0x68], 0x469878
or dword [esp + 0x68], 0xacc62374
add dword [esp + 0x68], 0x4721
xor dword [esp + 0x68], 0xacc9b5b9
mov dword [esp + 0x94], 0xe1a032
add dword [esp + 0x94], 0xe955
xor dword [esp + 0x94], 0xe7377a
mov dword [esp + 0x24], 0xa51711
shl dword [esp + 0x24], 7
shl dword [esp + 0x24], 9
add dword [esp + 0x24], 0xffff3b91
xor dword [esp + 0x24], 0x1719e4eb
mov dword [esp + 0x78], 0xd4a7e0
add dword [esp + 0x78], 0xc16c
xor dword [esp + 0x78], 0xd35ce8
mov dword [esp + 0x5c], 0x887cfa
shr dword [esp + 0x5c], 2
mov eax, dword [esp + 0x5c]
div ecx
xor edx, edx
mov dword [esp + 0x5c], eax
xor dword [esp + 0x5c], 0xadc3f
mov dword [esp + 0x54], 0x3bffe8
mov eax, dword [esp + 0x54]
pop ecx
div ecx
push 9
mov dword [esp + 0x54], eax
xor edx, edx
shr dword [esp + 0x54], 4
xor dword [esp + 0x54], 0xdf0cb
mov dword [esp + 0x34], 0xdf95a3
imul eax, dword [esp + 0x34], 0x7a
pop ecx
mov dword [esp + 0x30], eax
add dword [esp + 0x30], 0xffff0a1d
xor dword [esp + 0x30], 0xe11d907e
xor dword [esp + 0x30], 0x8b958951
mov dword [esp + 0x14], 0xc38664
mov eax, dword [esp + 0x14]
div ecx
mov dword [esp + 0x14], eax
or dword [esp + 0x14], 0x9f1f4da2
shl dword [esp + 0x14], 1
xor dword [esp + 0x14], 0x3e3b6f69
mov dword [esp + 0x10], 0x22247f
add dword [esp + 0x10], 0xffffd4ef
add dword [esp + 0x10], 0xffff7645
imul eax, dword [esp + 0x10], 0x51
mov dword [esp + 0x10], eax
xor dword [esp + 0x10], 0xa964c5b
mov dword [esp + 0x28], 0x9f2c24
xor edx, edx
mov eax, dword [esp + 0x28]
push 0x14
pop ecx
div ecx
push 0x7b
mov dword [esp + 0x2c], eax
xor edx, edx
add dword [esp + 0x2c], 0xffff0ac8
add dword [esp + 0x2c], 0xffff673a
xor dword [esp + 0x2c], 0xb8d16
mov dword [esp + 0x58], 0xc27ed7
mov eax, dword [esp + 0x58]
pop ecx
div ecx
push 0x44
mov dword [esp + 0x58], eax
xor edx, edx
shr dword [esp + 0x58], 0xe
xor dword [esp + 0x58], 0xc7f01
mov dword [esp + 0x50], 0xb1e109
or dword [esp + 0x50], 0xe140ea1f
shr dword [esp + 0x50], 7
xor dword [esp + 0x50], 0x1ce9a4c
mov dword [esp + 0x28], 0x2a934a
or dword [esp + 0x28], 0x6c0eadde
add dword [esp + 0x28], 0x8980
shr dword [esp + 0x28], 8
xor dword [esp + 0x28], 0x6d2378
mov dword [esp + 0x80], 0xc5b1f3
xor dword [esp + 0x80], 0xb5b42d6a
xor dword [esp + 0x80], 0xb57b234e
mov dword [esp + 0x88], 0xbe73ed
xor dword [esp + 0x88], 0x8c3030b7
xor dword [esp + 0x88], 0x8c8220bb
mov dword [esp + 0x40], 0xf04deb
mov eax, dword [esp + 0x40]
pop ecx
div ecx
mov dword [esp + 0x3c], eax
add dword [esp + 0x3c], 0xffff3e3f
imul eax, dword [esp + 0x3c], 0x75
mov dword [esp + 0x3c], eax
xor dword [esp + 0x3c], 0x14c500b
mov edi, dword [esp + 0x98]
mov eax, dword [esp + 0x44]
mov edx, 0x303fbbb
mov ecx, dword [esp + 0x34]
cmp esi, 0x7840373
jg 0x3047b2
je 0x30479a
cmp esi, 0x24b0807
je 0x304770
cmp esi, edx
je 0x30471a
mov eax, 0x3764040
cmp esi, eax
je 0x304694
cmp esi, 0x5229085
je 0x30464f
mov eax, 0x6aa9401
cmp esi, eax
jne 0x304823
push dword [esp + 0x4c]
mov ecx, dword [esp + 0xbc]
mov edx, ebp
push dword [esp + 0x60]
push dword [esp + 0x5c]
call fcn.0031bd4e
add esp, 0xc
mov esi, 0xe6c2ebf
jmp 0x3045da
push dword [esp + 0x90]
push dword [esp + 0x68]
mov edx, dword [esp + 0x9c]
push dword [esp + 0xbc]
mov ecx, dword [esp + 0x54]
push dword [edi]
call fcn.0030d0eb
mov ecx, eax
add esp, 0x10
mov eax, dword [esp + 0x44]
test ecx, ecx
mov esi, 0x7840373
mov dword [esp + 0x34], ecx
mov edx, 0x303fbbb
cmovne esi, edx
jmp 0x3045e7
push ecx
push dword [esp + 0x3c]
lea eax, [esp + 0xa0]
push eax
push dword [esp + 0x84]
lea eax, [esp + 0xb0]
push ebx
push ecx
push dword [esp + 0x84]
push ecx
push dword [esp + 0xa0]
push ecx
push ecx
push dword [esp + 0xe0]
push dword [esp + 0xbc]
push dword [esp + 0xbc]
mov edx, dword [esp + 0x50]
push eax
call fcn.00311fd4
add esp, 0x3c
test eax, eax
je 0x304648
mov eax, dword [esp + 0x70]
call fcn.0030feb9
and eax, 0x1f
mov esi, 0x5229085
imul edi, eax, 0x2c
imul eax, dword [esp + 0x98], 0x2c
add edi, ebx
add eax, ebx
cmp edi, eax
mov dword [esp + 0x44], eax
cmovae edi, ebx
jmp 0x3045de
lea eax, [esp + 0x9c]
push eax
push dword [esp + 0x34]
push dword [esp + 0x58]
push dword [esp + 0x64]
push dword [esp + 0x84]
push ecx
push ebp
push dword [esp + 0x3c]
mov edx, dword [esp + 0x60]
call fcn.0031afe6
push dword [esp + 0x48]
mov edx, dword [esp + 0x34]
test eax, eax
push dword [esp + 0x58]
mov ecx, dword [esp + 0x3c]
mov eax, 0x6aa9401
mov esi, 0x7840373
cmovne esi, eax
call fcn.0031b58e
add esp, 0x28
jmp 0x30481e
mov eax, dword [esp + 0x60]
mov eax, dword [esp + 0x1c]
push ecx
mov ecx, 0x2000
call fcn.0031f6a3
mov ebp, eax
mov esi, 0xdde9437
test ebp, ebp
mov eax, 0x3764040
pop ecx
cmovne esi, eax
jmp 0x3045da
add edi, 0x2c
cmp edi, eax
sbb esi, esi
and esi, 0xf6b661c6
add esi, 0xe6c2ebf
jmp 0x3045e7
cmp esi, 0x8edf7f5
je 0x3047f5
cmp esi, 0xdde9437
je 0x304834
cmp esi, 0xe6c2ebf
je 0x3047dc
cmp esi, 0xef75db7
jne 0x304823
mov esi, 0x8edf7f5
jmp 0x3045e7
mov edx, dword [esp + 0x7c]
mov ecx, dword [esp + 0x24]
push ebp
call fcn.0030768d
pop ecx
mov esi, 0xdde9437
jmp 0x3045da
mov eax, dword [esp + 0x2c]
mov eax, dword [esp + 0x68]
push ecx
mov ecx, 0x20000
call fcn.0031f6a3
mov ebx, eax
pop ecx
test ebx, ebx
je 0x304819
mov esi, 0x24b0807
jmp 0x3045da
mov esi, 0xb408503
mov edx, 0x303fbbb
cmp esi, 0xb408503
je 0x304846
mov eax, dword [esp + 0x44]
jmp 0x3045e3
mov edx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x84]
push ebx
call fcn.0030768d
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xa0
ret