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

Disassembly:
sub esp, 0x158
push ebx
push ebp
mov ebp, dword [esp + 0x164]
mov eax, dword [ebp + 0x34]
push esi
lea ecx, [ebp + 0x34]
push edi
call dword [eax + 4]
mov ecx, dword [esp + 0x17c]
mov edx, dword [esp + 0x174]
mov ebx, dword [esp + 0x170]
mov eax, dword [esp + 0x178]
push ecx
push edx
push ebx
push ebp
call fcn.0020a750
mov eax, dword [ebx]
push 0xf0000
mov ecx, ebx
call dword [eax + 0x10]
test eax, eax
je 0x20f043
mov edx, dword [ebp]
push ebx
mov ecx, ebp
call dword [edx + 0x9c]
test al, al
jne 0x20f295
xor esi, esi
mov edx, 0xffffff38
mov edi, 0xfffffeff
lea eax, [ebp + 0xc8]
sub edx, ebp
mov dword [esp + 0x14], esi
mov dword [esp + 0x1c], edi
mov dword [esp + 0x10], eax
mov dword [esp + 0x44], edx
jmp 0x20f071
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x44]
mov ecx, dword [eax - 0x10]
cmp ecx, 0xdeadbeef
mov dword [esp + 0x18], ecx
jne 0x20f0b4
mov ecx, dword [ebp + 0x38]
mov ecx, dword [ecx + 8]
lea ecx, [ecx + ebp + 0x38]
mov dword [esp + 0x1c], ecx
mov ecx, dword [ecx]
mov dword [esp + 0x18], ecx
lea ecx, [edx + eax]
mov eax, dword [esp + 0x18]
mov edx, 0xf
shl edx, cl
mov ecx, dword [esp + 0x1c]
not edx
push edx
call dword [eax + 0x8c]
jmp 0x20f276
lea eax, [edi + 0x100]
and al, 3
or al, 3
mov ebx, esi
shl ebx, 8
or ebx, 3
mov dword [esp + 0x30], eax
mov eax, edi
and al, 3
or al, 3
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x10]
mov eax, dword [eax]
shl eax, 8
or al, 3
push eax
lea eax, [esp + 0x6c]
call fcn.00134250
mov ecx, dword [esp + 0x10]
lea eax, [edi + 0x501]
xor al, al
cmp dword [ecx + 0x20], 0x4000000
mov dword [esp + 0x38], eax
jne 0x20f22f
mov edx, dword [esp + 0x18]
cmp dword [edx*4 + 0x400d00], 0
jbe 0x20f22f
push 0
push 0
push 0x160
push 1
push 0
push 0
push 0
mov eax, 5
push 0xe4
mov dword [esp + 0x60], eax
push eax
xor cl, cl
xor edx, edx
lea eax, [esp + 0xec]
call fcn.00134340
push 0x55
sub esp, 0x20
mov esi, eax
mov edi, esp
mov ecx, 8
rep movsd dword es:[edi], dword [esi]
call fcn.00134540
push 0
push 0
push 0x160
push 1
push 0
push 0
push 0
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x5c]
push 0xe4
push eax
xor cl, cl
xor edx, edx
lea eax, [esp + 0x6c]
call fcn.00134340
push 0
sub esp, 0x20
mov esi, eax
mov edi, esp
mov ecx, 8
rep movsd dword es:[edi], dword [esi]
call fcn.00134540
mov esi, dword [esp + 0x3c]
sub esp, 0x20
mov edi, esp
sub esp, 0x20
mov ecx, 8
rep movsd dword es:[edi], dword [esi]
mov edi, esp
mov esi, eax
sub esp, 0x20
mov ecx, 8
rep movsd dword es:[edi], dword [esi]
mov edi, esp
mov ecx, 8
lea esi, [esp + 0xc8]
sub esp, 0x10
rep movsd dword es:[edi], dword [esi]
mov ecx, 0x403
mov eax, esp
push ecx
call fcn.00134640
mov ecx, dword [ebp + 0x38]
mov edx, dword [ecx + 8]
push 0
push 4
lea eax, [edx + ebp + 0x38]
push eax
call fcn.00214240
mov ecx, dword [ebp + 0x38]
mov edx, dword [ecx + 8]
lea eax, [edx + ebp + 0x38]
mov eax, dword [eax + 4]
cmp dword [eax + 8], 0
je 0x20f21f
mov eax, dword [eax + 0xc]
push 0
push 0
push 0xbf800000
push 0x40000000
add eax, 0x50
call fcn.002165b0
mov eax, dword [esp + 0x38]
mov esi, dword [esp + 0x14]
mov dword [esp + 0x68], 0x403
mov edx, dword [esp + 0x18]
push esi
push esi
push eax
mov eax, dword [esp + 0x40]
sub esp, 0x20
mov edi, esp
push eax
mov eax, dword [esp + 0x1a0]
mov ecx, 8
lea esi, [esp + 0x98]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0x60]
push ecx
push ebx
push edx
push eax
mov eax, dword [esp + 0x54]
push ebp
call fcn.0020ceb0
mov edi, dword [esp + 0x1c]
mov esi, dword [esp + 0x14]
mov ebx, dword [esp + 0x170]
add dword [esp + 0x10], 4
add esi, 1
add edi, 0x100
cmp esi, 4
mov dword [esp + 0x14], esi
mov dword [esp + 0x1c], edi
jb 0x20f069
mov ecx, dword [ebp + 0x38]
mov edx, dword [ecx + 8]
mov eax, dword [edx + ebp + 0x38]
lea ecx, [edx + ebp + 0x38]
call dword [eax + 0x7c]
test al, al
je 0x20f2e4
mov ecx, dword [ebp + 0x38]
mov edx, dword [ecx + 8]
mov esi, dword [edx + ebp + 0x3c]
lea eax, [edx + ebp]
lea ecx, [eax + 0x38]
mov eax, dword [ecx]
push 1
call dword [eax + 0x78]
mov ecx, dword [ebp + 0x38]
mov edx, dword [ecx + 8]
mov ecx, dword [edx + ebp + 0x3c]
mov eax, dword [ecx]
push esi
call dword [eax + 0x10]
mov ecx, dword [ebp + 0x38]
mov edx, dword [ecx + 8]
mov eax, dword [edx + ebp + 0x38]
lea ecx, [edx + ebp + 0x38]
push 0
call dword [eax + 0x78]
mov ecx, dword [ebp + 0x38]
mov edx, dword [ecx + 8]
mov eax, dword [edx + ebp + 0x38]
lea ecx, [edx + ebp + 0x38]
call dword [eax + 0x88]
mov ecx, dword [ebp + 0x38]
mov edx, dword [ecx + 8]
mov eax, dword [edx + ebp + 0x38]
lea ecx, [edx + ebp + 0x38]
push 0xf
call dword [eax + 0x84]
mov eax, dword [esp + 0x30]
and al, 3
or al, 3
mov edx, dword [esp + 0x174]
push 0xf500000
mov dword [esp + 0x54], 0
and eax, 0xff
mov ecx, eax
mov eax, dword [esp + 0x50]
and eax, 0xe7000000
or eax, 0x7000000
and eax, 0x1fffffff
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x58]
and eax, 0xfe1f000f
or al, 0xf
mov dword [esp + 0x4c], ecx
mov ecx, dword [esp + 0x17c]
and eax, 0xffe1ffff
or eax, 0x10000
and eax, 0xff1f000f
or al, 0xf
mov dword [esp + 0x58], eax
lea eax, [ecx + edx*4]
mov edx, dword [ebx]
mov ecx, ebx
mov dword [esp + 0x14], eax
call dword [edx + 0x10]
mov esi, eax
mov eax, dword [ebx]
push 0xf500000
mov ecx, ebx
mov dword [esp + 0x34], esi
call dword [eax + 0x10]
mov edx, dword [ebp + 0x38]
test eax, eax
mov eax, dword [edx + 8]
setne cl
mov ebx, esi
neg ebx
sbb ebx, ebx
and ebx, 0xfffffff7
add ebx, 9
cmp byte [eax + ebp + 0x19e], 0
mov byte [esp + 0x38], cl
je 0x20f470
push 0xaa
sub esp, 0x20
mov ecx, 0x202
mov eax, esp
push ecx
call fcn.00134250
call fcn.00134540
sub esp, 0x20
mov edi, esp
push 4
sub esp, 0x10
mov esi, eax
mov eax, esp
mov ecx, 8
rep movsd dword es:[edi], dword [esi]
mov byte [eax], 0xa
and dword [eax], 0xff
mov dword [eax + 4], 0x7000000
mov dword [eax + 8], 0
xor ecx, ecx
cmp byte [eax], 3
mov byte [eax + 0xc], 0xf
setne cl
mov byte [eax + 0xd], 0
mov edx, dword [eax + 0xc]
and edx, 0xfe00ffff
mov dword [eax], 0x402
and ecx, 0x1f
shl ecx, 0x10
or ecx, edx
mov dword [eax + 0xc], ecx
mov byte [eax + 0xc], 0xf
and byte [eax + 0xe], 0x9f
mov byte [eax + 0xd], 0
and byte [eax + 0xe], 0x7f
call fcn.00134720
mov edx, dword [eax]
sub esp, 0x10
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov edx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [ecx + 8], edx
mov dword [ecx + 0xc], eax
mov ecx, dword [ebp + 0x38]
mov edx, dword [ecx + 8]
push 1
push 1
lea eax, [edx + ebp + 0x38]
push eax
call fcn.00214490
mov edi, dword [esp + 0x178]
mov esi, dword [esp + 0x10]
cmp edi, esi
jae 0x20f83a
mov edx, dword [edi]
mov eax, edx
and eax, 0xffff
add edi, 4
cmp eax, 0xffff
mov dword [esp + 0x40], edx
mov dword [esp + 0x3c], eax
mov byte [esp + 0x18], 0
je 0x20f83a
test eax, eax
je 0x20f832
cmp eax, 0xfffe
jne 0x20f4d0
shr edx, 0x10
and edx, 0x7fff
lea ecx, [edi + edx*4]
mov dword [esp + 0x178], ecx
mov edi, ecx
jmp 0x20f832
mov ecx, dword [eax*4 + 0x405d80]
cmp ecx, 1
jne 0x20f7f2
mov ecx, dword [ebp + 0xac]
cmp ecx, 0x103
ja 0x20f4f8
cmp eax, 0x41
mov ebx, 1
je 0x20f4ff
mov ebx, dword [eax*4 + 0x400e88]
call fcn.00139870
mov dword [esp + 0x34], eax
add eax, ebx
lea ecx, [edi + eax*4]
cmp ecx, esi
jae 0x20f520
test eax, eax
je 0x20f520
test byte [ecx + 3], 0x40
je 0x20f520
mov byte [esp + 0x18], 1
mov esi, dword [edi]
mov eax, esi
shr eax, 0x14
and eax, 0x700
and edx, 0x1800
add edi, 4
or eax, edx
mov dword [esp + 0x178], edi
mov edi, 0xf
shr eax, 8
cmp eax, 3
mov dword [esp + 0x88], 0
mov dword [esp + 0x8c], 1
mov dword [esp + 0x90], 2
mov dword [esp + 0x94], 3
mov dword [esp + 0x98], edi
mov dword [esp + 0x9c], edi
mov dword [esp + 0xa0], edi
mov dword [esp + 0xa4], edi
mov dword [esp + 0xa8], edi
mov dword [esp + 0xac], edi
mov dword [esp + 0xb0], edi
mov dword [esp + 0xb4], edi
mov dword [esp + 0xb8], edi
mov dword [esp + 0xbc], 7
mov dword [esp + 0xc0], 6
mov dword [esp + 0xc4], 5
jne 0x20f60e
mov eax, esi
and eax, 0x7ff
shl eax, 8
or al, 3
push eax
lea eax, [esp + 0xcc]
call fcn.00134640
mov ecx, dword [esp + 0xc8]
mov edx, dword [esp + 0xcc]
mov ebx, dword [esp + 0xd0]
mov eax, dword [esp + 0xd4]
jmp 0x20f63c
mov ecx, esi
and ecx, 0x7ff
add ecx, 4
shl ecx, 8
mov eax, ecx
and al, 3
or al, 3
push eax
lea eax, [esp + 0x6c]
call fcn.00134640
mov ecx, dword [esp + 0x68]
mov edx, dword [esp + 0x6c]
mov ebx, dword [esp + 0x70]
mov eax, dword [esp + 0x74]
mov dword [esp + 0x2c], eax
mov eax, esi
and eax, 0xf00000
cmp eax, 0x100000
jne 0x20f676
sub esp, 0x10
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [esp + 0x3c]
mov dword [eax + 4], edx
mov dword [eax + 8], ebx
mov dword [eax + 0xc], ecx
call fcn.001f71e0
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov ebx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [esp + 0x2c], eax
mov eax, esi
shr eax, 0x18
and eax, edi
sub esp, 0x10
mov edi, esp
mov dword [edi], ecx
mov ecx, dword [esp + 0x3c]
mov dword [edi + 4], edx
mov edx, dword [esp + eax*4 + 0x98]
mov dword [edi + 8], ebx
mov dword [edi + 0xc], ecx
call fcn.00207280
mov ecx, dword [eax]
shr esi, 0x10
and esi, 0xf
push esi
sub esp, 0x10
mov edx, esp
mov dword [edx], ecx
mov ecx, dword [eax + 4]
mov dword [edx + 4], ecx
mov ecx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [edx + 8], ecx
mov dword [edx + 0xc], eax
call fcn.00134720
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov dword [esp + 0x20], ecx
mov ecx, dword [eax + 8]
mov eax, dword [eax + 0xc]
test ah, 4
mov dword [esp + 0x24], edx
mov dword [esp + 0x28], ecx
mov dword [esp + 0x2c], eax
jne 0x20f6f2
cmp dword [esp + 0x30], 0
jne 0x20f6f2
mov ebx, 9
jmp 0x20f6f4
xor ebx, ebx
lea esi, [esp + 0x108]
mov edi, 3
mov ecx, esi
call fcn.001f6f80
add esi, 0x20
sub edi, 1
jne 0x20f700
mov eax, dword [esp + 0x34]
test eax, eax
jbe 0x20f776
lea edx, [esp + 0x108]
mov dword [esp + 0x14], edx
mov dword [esp + 0x1c], eax
jmp 0x20f730
mov eax, dword [esp + 0x178]
mov eax, dword [eax]
mov edx, dword [ebp]
push eax
mov eax, dword [esp + 0x174]
push eax
lea ecx, [esp + 0xf0]
push ecx
mov ecx, ebp
call dword [edx + 0x98]
mov edi, dword [esp + 0x14]
add dword [esp + 0x178], 4
add dword [esp + 0x14], 0x20
sub dword [esp + 0x1c], 1
mov ecx, 8
mov esi, eax
rep movsd dword es:[edi], dword [esi]
jne 0x20f730
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x18]
push edx
mov edx, dword [esp + 0x4c]
push eax
mov eax, dword [esp + 0x54]
mov edi, dword [esp + 0x180]
push ebx
sub esp, 0x10
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [esp + 0x6c]
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x70]
mov dword [ecx + 8], edx
mov edx, dword [esp + 0x58]
mov dword [ecx + 0xc], eax
mov eax, dword [esp + 0x5c]
lea ecx, [esp + 0x3c]
push ecx
mov ecx, dword [esp + 0x190]
push edx
push eax
push ecx
push ebp
lea eax, [esp + 0x138]
call fcn.0020e3d0
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x28]
mov esi, dword [esp + 0x10]
mov dword [esp + 0x48], edx
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x4c], eax
mov dword [esp + 0x50], ecx
mov dword [esp + 0x54], edx
jmp 0x20f832
cmp ecx, 2
jne 0x20f82b
mov ecx, dword [ebp + 0xac]
cmp ecx, 0x103
ja 0x20f80f
cmp eax, 0x41
mov edx, 1
je 0x20f816
mov edx, dword [eax*4 + 0x400e88]
call fcn.00139870
add eax, edx
lea eax, [edi + eax*4]
mov dword [esp + 0x178], eax
mov edi, eax
jmp 0x20f832
test ecx, ecx
jne 0x20f832
add edi, 0x14
cmp edi, esi
jb 0x20f483
mov ecx, dword [ebp + 0x38]
mov edx, dword [ecx + 8]
cmp byte [edx + ebp + 0x19e], 0
je 0x20f982
push 0xaa
sub esp, 0x20
mov ecx, 0x402
mov eax, esp
push ecx
call fcn.00134250
call fcn.00134540
mov esi, eax
sub esp, 0x20
mov edi, esp
mov byte [esp + 0x4c], 0xf
mov byte [esp + 0x4d], 0
mov eax, dword [esp + 0x4c]
and eax, 0xfe1fffff
mov ecx, 8
rep movsd dword es:[edi], dword [esi]
xor ecx, ecx
mov byte [esp + 0x40], 0xa
and dword [esp + 0x40], 0xff
cmp byte [esp + 0x40], 3
setne cl
sub esp, 0x10
shl ecx, 0x10
xor ecx, eax
and ecx, 0x1f0000
xor eax, ecx
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x9c]
and byte [esp + 0x5e], 0x9f
and eax, 0xe7000000
or eax, 0x7000000
mov ecx, eax
mov eax, dword [esp + 0xa4]
and eax, 0xfe1f000f
or al, 0xf
mov byte [esp + 0x5c], 0xf
mov byte [esp + 0x5d], 0
mov edi, dword [esp + 0x5c]
and edi, 0xff7fffff
mov dword [esp + 0x5c], edi
mov dl, byte [esp + 0x5c]
and eax, 0xffe1ffff
or eax, 0x10000
mov dword [esp + 0xa4], eax
mov esi, edi
mov eax, esi
shl eax, 9
sar eax, 9
and eax, 0x600000
and edx, 4
or eax, edx
mov edx, dword [esp + 0xa4]
shr esi, 0x17
and esi, 1
and edi, 0xff00
shl esi, 0x17
or eax, esi
or eax, edi
mov edi, esp
and edx, 0xff1f0000
or eax, edx
and ecx, 0x1fffffff
mov esi, 0x102
mov dword [edi], esi
xor edx, edx
mov dword [edi + 4], ecx
mov dword [edi + 8], edx
mov dword [0x529718], edx
mov dword [0x529710], esi
mov dword [0x529714], ecx
mov dword [0x52971c], eax
mov dword [edi + 0xc], eax
mov eax, dword [ebp + 0x38]
mov ecx, dword [eax + 8]
push 1
push 1
lea edx, [ecx + ebp + 0x38]
push edx
call fcn.00214490
sub esp, 0x20
mov ecx, 0x403
mov eax, esp
push ecx
call fcn.00134250
sub esp, 0x10
mov eax, esp
mov byte [eax], 0xa
and dword [eax], 0xff
mov dword [eax + 4], 0x7000000
mov dword [eax + 8], 0
xor ecx, ecx
cmp byte [eax], 3
mov byte [eax + 0xc], 0xf
setne cl
mov byte [eax + 0xd], 0
mov edx, dword [eax + 0xc]
and edx, 0xfe00ffff
mov dword [eax], 3
push ebx
push 1
and ecx, 0x1f
shl ecx, 0x10
or ecx, edx
mov dword [eax + 0xc], ecx
mov byte [eax + 0xc], 0xf
and byte [eax + 0xe], 0x9f
mov byte [eax + 0xd], 0
and byte [eax + 0xe], 0x7f
mov eax, dword [ebp + 0x38]
mov ecx, dword [eax + 8]
lea edx, [ecx + ebp + 0x38]
push edx
call fcn.00214490
mov eax, dword [ebp + 0x38]
mov ecx, dword [eax + 8]
mov edx, dword [ecx + ebp + 0x38]
lea ecx, [ecx + ebp + 0x38]
call dword [edx + 0x40]
mov eax, dword [ebp + 0x38]
mov ecx, dword [eax + 8]
lea eax, [ecx + ebp]
lea edx, [eax + 0x38]
mov eax, dword [eax + 0x3c]
push 1
lea esi, [ebp + 0x48]
push edx
call fcn.002158e0
mov eax, dword [ebp + 0x44]
mov edx, dword [ebp + 0x38]
mov ecx, dword [ebp + 0x40]
push eax
mov eax, dword [edx + 8]
push ecx
lea eax, [eax + ebp + 0x38]
call fcn.00213980
mov ecx, eax
or ecx, edx
je 0x20fa49
mov dword [ebp + 0x40], eax
mov dword [ebp + 0x44], edx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x158
ret 0x14