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

Disassembly:
sub esp, 0x4c8
mov dword [esp + 0xa8], 0x20a8
xor eax, eax
shr dword [esp + 0xa8], 0xd
xor edx, edx
xor dword [esp + 0xa8], 0x28
mov dword [esp + 0x10], 0xa911
add dword [esp + 0x10], 0xffff4995
or dword [esp + 0x10], 0xb493a3da
push ebx
push ebp
push esi
mov dword [esp + 0xbc], eax
mov eax, dword [esp + 0x1c]
push edi
push 0x32
pop esi
div esi
push 0x2d
mov dword [esp + 0x24], eax
xor edx, edx
xor dword [esp + 0x24], 0x851eb815
mov edi, 0x2fbcad90
mov dword [esp + 0xa8], 0x70f4
xor dword [esp + 0xa8], 0xf4327e74
xor dword [esp + 0xa8], 0xf4320e82
mov dword [esp + 0x90], 0x46f8
or dword [esp + 0x90], 0x308c1b84
imul eax, dword [esp + 0x90], 0x26
pop ecx
mov dword [esp + 0x8c], eax
xor dword [esp + 0x8c], 0x34d66333
mov dword [esp + 0x70], 0xe219
add dword [esp + 0x70], 0x4f9c
add dword [esp + 0x70], 0xffffabfa
xor dword [esp + 0x70], 0xb341
mov dword [esp + 0x14], 0x255b
imul eax, dword [esp + 0x14], 0x56
mov dword [esp + 0x14], eax
or dword [esp + 0x14], 0x85079ff0
shl dword [esp + 0x14], 0xa
xor dword [esp + 0x14], 0x3e7fe260
mov dword [esp + 0x98], 0x79de
xor dword [esp + 0x98], 0xa7b45c99
xor dword [esp + 0x98], 0xa7b4286c
mov dword [esp + 0x90], 0xbfdd
add dword [esp + 0x90], 0xffffbae9
xor dword [esp + 0x90], 0x9c4
mov dword [esp + 0x68], 0x5206
imul eax, dword [esp + 0x68], 0x28
mov dword [esp + 0x68], eax
add dword [esp + 0x68], 0xffff89f1
xor dword [esp + 0x68], 0xc24fb
mov dword [esp + 0x24], 0xd7f3
imul eax, dword [esp + 0x24], 0x4f
mov dword [esp + 0x24], eax
add dword [esp + 0x24], 0xeaa
xor dword [esp + 0x24], 0x9544e85d
xor dword [esp + 0x24], 0x9506544e
mov dword [esp + 0x54], 0x14a5
add dword [esp + 0x54], 0xfffffddc
add dword [esp + 0x54], 0x98d6
xor dword [esp + 0x54], 0xe951
mov dword [esp + 0x44], 0x8118
xor dword [esp + 0x44], 0x97bee162
or dword [esp + 0x44], 0xaf27b7f4
add dword [esp + 0x44], 0x3d19
xor dword [esp + 0x44], 0xbfc03e20
mov dword [esp + 0xb4], 0x4d4e
imul eax, dword [esp + 0xb4], 0x4c
mov dword [esp + 0xb4], eax
xor dword [esp + 0xb4], 0x16b3c8
mov dword [esp + 0x4c], 0x229a
shl dword [esp + 0x4c], 0xd
imul eax, dword [esp + 0x4c], 0x6f
mov dword [esp + 0x4c], eax
xor dword [esp + 0x4c], 0xe018de86
mov dword [esp + 0x88], 0x6509
shl dword [esp + 0x88], 5
mov eax, dword [esp + 0x88]
div ecx
mov dword [esp + 0x88], eax
xor dword [esp + 0x88], 0x7c2f
xor edx, edx
mov dword [esp + 0xa8], 0xa797
xor dword [esp + 0xa8], 0x642a940f
xor dword [esp + 0xa8], 0x642a5cd7
mov dword [esp + 0x94], 0x166e
or dword [esp + 0x94], 0x87055c24
xor dword [esp + 0x94], 0x87054cdd
mov dword [esp + 0xb0], 0x75a0
shr dword [esp + 0xb0], 0xc
xor dword [esp + 0xb0], 0x49b4
mov dword [esp + 0x2c], 0x4990
add dword [esp + 0x2c], 0x2a9e
shl dword [esp + 0x2c], 0xd
or dword [esp + 0x2c], 0x5b6721b2
xor dword [esp + 0x2c], 0x5fe7ab7b
mov dword [esp + 0x10], 0x8ada
shl dword [esp + 0x10], 8
shr dword [esp + 0x10], 8
add dword [esp + 0x10], 0xffff17e6
xor dword [esp + 0x10], 0xffffa0cb
mov dword [esp + 0x9c], 0x57de
imul eax, dword [esp + 0x9c], 0xf
push 0x4c
pop ecx
push 0x69
mov dword [esp + 0xa0], eax
xor dword [esp + 0xa0], 0x518ee
mov dword [esp + 0x34], 0x8e48
imul eax, dword [esp + 0x34], 0x25
mov dword [esp + 0x34], eax
add dword [esp + 0x34], 0x3fc
add dword [esp + 0x34], 0xa0ab
xor dword [esp + 0x34], 0x1505ed
mov dword [esp + 0xb0], 0x595b
mov eax, dword [esp + 0xb0]
div esi
xor edx, edx
mov dword [esp + 0xb0], eax
xor dword [esp + 0xb0], 0x63a6
mov dword [esp + 0x78], 0xe2e2
or dword [esp + 0x78], 0x743bfea2
shr dword [esp + 0x78], 4
xor dword [esp + 0x78], 0x743ebf6
mov dword [esp + 0x2c], 0x402e
shr dword [esp + 0x2c], 2
add dword [esp + 0x2c], 0xe441
xor dword [esp + 0x2c], 0x4a06666d
xor dword [esp + 0x2c], 0x4a06b005
mov dword [esp + 0x70], 0xb035
add dword [esp + 0x70], 0x9223
add dword [esp + 0x70], 0xffff16a4
xor dword [esp + 0x70], 0x21a5
mov dword [esp + 0x68], 0x2d6c
shr dword [esp + 0x68], 5
shr dword [esp + 0x68], 6
xor dword [esp + 0x68], 0x3884
mov dword [esp + 0x60], 0xa959
xor dword [esp + 0x60], 0x1c19365d
xor dword [esp + 0x60], 0x8fc57656
xor dword [esp + 0x60], 0x93dcc5c7
mov dword [esp + 0x1c], 0x15ae
add dword [esp + 0x1c], 0xa76e
mov eax, dword [esp + 0x1c]
div ecx
xor edx, edx
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x1c]
pop esi
div esi
mov dword [esp + 0x18], eax
xor dword [esp + 0x18], 0x76cd
mov dword [esp + 0x40], 0xac84
add dword [esp + 0x40], 0x2da4
add dword [esp + 0x40], 0x6221
imul eax, dword [esp + 0x40], 0x25
mov dword [esp + 0x40], eax
xor dword [esp + 0x40], 0x2daef3
mov dword [esp + 0x38], 0xc8b6
shr dword [esp + 0x38], 1
mov eax, dword [esp + 0x38]
xor edx, edx
push 0x75
pop ecx
div ecx
xor edx, edx
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x38]
push 0x5c
pop ebp
div ebp
xor edx, edx
mov dword [esp + 0x38], eax
xor dword [esp + 0x38], 0x2d4a
mov dword [esp + 0x7c], 0x10ce
add dword [esp + 0x7c], 0xe1dc
add dword [esp + 0x7c], 0xb2f5
xor dword [esp + 0x7c], 0x1e4ff
mov dword [esp + 0x80], 0xf329
imul eax, dword [esp + 0x80], 0x6a
push 0x41
pop ecx
push 0x35
mov dword [esp + 0x84], eax
shl dword [esp + 0x84], 3
xor dword [esp + 0x84], 0x3251a35
mov dword [esp + 0x5c], 0xd8ee
mov eax, dword [esp + 0x5c]
div ecx
xor edx, edx
mov dword [esp + 0x5c], eax
imul eax, dword [esp + 0x5c], 0x15
pop ecx
mov dword [esp + 0x58], eax
xor dword [esp + 0x58], 0x75d8
mov dword [esp + 0xa0], 0x75d4
imul eax, dword [esp + 0xa0], 0x73
mov dword [esp + 0xa0], eax
xor dword [esp + 0xa0], 0x348358
mov dword [esp + 0x78], 0x5feb
mov eax, dword [esp + 0x78]
div ecx
xor edx, edx
mov dword [esp + 0x78], eax
add dword [esp + 0x78], 0xc402
xor dword [esp + 0x78], 0xcb55
mov dword [esp + 0xbc], 0x8ec7
add dword [esp + 0xbc], 0xffff8e5c
xor dword [esp + 0xbc], 0x7c30
mov dword [esp + 0x60], 0x88b4
shl dword [esp + 0x60], 1
add dword [esp + 0x60], 0x1f85
xor dword [esp + 0x60], 0x14da8
mov dword [esp + 0x34], 0x4b31
shr dword [esp + 0x34], 0xf
shl dword [esp + 0x34], 0xc
or dword [esp + 0x34], 0xc5425eb
xor dword [esp + 0x34], 0xc543cf8
mov dword [esp + 0x3c], 0x8255
imul eax, dword [esp + 0x3c], 0x23
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x3c]
div esi
mov dword [esp + 0x3c], eax
imul eax, dword [esp + 0x3c], 0x4e
mov dword [esp + 0x3c], eax
xor dword [esp + 0x3c], 0xd02a9
mov dword [esp + 0x50], 0xe049
shl dword [esp + 0x50], 3
xor dword [esp + 0x50], 0x4adc674d
xor dword [esp + 0x50], 0x4adb0dec
mov dword [esp + 0x48], 0xc8f1
imul eax, dword [esp + 0x48], 0x23
mov dword [esp + 0x48], eax
or dword [esp + 0x48], 0x72be7968
add dword [esp + 0x48], 0xffff1669
xor dword [esp + 0x48], 0x72bed88f
mov dword [esp + 0x84], 0xf3c
shr dword [esp + 0x84], 2
shl dword [esp + 0x84], 0xd
xor dword [esp + 0x84], 0x79b423
mov dword [esp + 0x1c], 0xfc72
or dword [esp + 0x1c], 0xeb49956
imul eax, dword [esp + 0x1c], 0x30
mov ebx, dword [esp + 0xc0]
mov dword [esp + 0x1c], eax
xor dword [esp + 0x1c], 0x27efb581
xor dword [esp + 0x1c], 0xe60033a0
mov eax, 0x2eb22a1c
cmp edi, 0xc8cfdc4
je 0x29a655
cmp edi, 0xdb273cb
je 0x29a5ca
cmp edi, 0x253986e4
je 0x29a53d
cmp edi, 0x2d7445c5
je 0x29a683
cmp edi, eax
je 0x29a4c3
cmp edi, 0x2fbcad90
jne 0x29a675
lea eax, [esp + 0x2d0]
push eax
push dword [esp + 0x94]
push dword [esp + 0xa0]
push ecx
push ecx
push dword [esp + 0x28]
push dword [esp + 0xd0]
push dword [esp + 0x8c]
mov ecx, dword [esp + 0xac]
call fcn.0029b63b
add esp, 0x20
mov edi, 0x253986e4
jmp 0x29a43b
push dword [esp + 0xa0]
lea ecx, [esp + 0xcc]
push dword [esp + 0x5c]
mov edx, dword [esp + 0x88]
call fcn.002866f2
pop ecx
pop ecx
lea ecx, [esp + 0xc8]
push ecx
push dword [esp + 0x40]
lea eax, [eax*2 + 2]
push ebx
push eax
push dword [esp + 0x2c]
push dword [esp + 0xd8]
push ecx
push dword [esp + 0x50]
push dword [esp + 0x80]
mov edx, dword [esp + 0xe0]
mov ecx, dword [esp + 0x9c]
call fcn.0028e8c0
xor ecx, ecx
add esp, 0x24
test eax, eax
mov edi, 0x2d7445c5
sete cl
mov dword [esp + 0xc0], ecx
jmp 0x29a43b
push dword [esp + 0x24]
mov ecx, dword [esp + 0x6c]
mov edx, 0x29d380
call fcn.0028bd6c
mov esi, eax
lea eax, [esp + 0x2d4]
push eax
push dword [esp + 0xb0]
mov eax, dword [0x29da00]
push esi
add eax, 0x230
push eax
lea eax, [esp + 0xdc]
push eax
push 0x104
push dword [esp + 0xa4]
push dword [esp + 0x6c]
mov eax, dword [0x29da00]
add eax, 0x14
push eax
push dword [esp + 0xdc]
mov edx, dword [esp + 0x70]
mov ecx, dword [esp + 0x80]
call fcn.0029b4cc
push dword [esp + 0x58]
mov ecx, esi
push dword [esp + 0xe0]
mov edx, dword [esp + 0xc8]
call fcn.00289116
add esp, 0x34
mov edi, 0xc8cfdc4
jmp 0x29a43b
push dword [esp + 0x9c]
mov ecx, dword [esp + 0x14]
mov edx, 0x29d3d0
call fcn.0028bd6c
pop ecx
push dword [esp + 0x18]
mov esi, eax
lea eax, [esp + 0xc8]
push ecx
push dword [esp + 0x64]
push ecx
push eax
push dword [esp + 0x78]
push dword [esp + 0x84]
push ecx
push dword [esp + 0xc4]
push ecx
push dword [esp + 0x48]
push dword [esp + 0x54]
push dword [esp + 0xa4]
push esi
push dword [esp + 0xe4]
mov edx, dword [esp + 0x6c]
call fcn.00299456
push dword [esp + 0xb8]
test eax, eax
mov edi, 0x100af2fa
push dword [esp + 0x78]
mov edx, dword [esp + 0x84]
mov eax, 0x2eb22a1c
mov ecx, esi
cmove edi, eax
call fcn.00289116
add esp, 0x44
jmp 0x29a670
mov ebx, dword [0x29da00]
add ebx, 0x14
jmp 0x29a663
add ebx, 2
cmp word [ebx], bp
jne 0x29a660
add ebx, 2
mov edi, 0xdb273cb
mov eax, 0x2eb22a1c
cmp edi, 0x100af2fa
jne 0x29a440
jmp 0x29a6a0
push dword [esp + 0x84]
push dword [esp + 0x4c]
mov edx, dword [esp + 0x58]
mov ecx, dword [esp + 0xcc]
call fcn.00288ea6
pop ecx
pop ecx
mov eax, dword [esp + 0xc0]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x4c8
ret