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

Disassembly:
sub esp, 0x20
push ebx
mov ebx, dword [esp + 0x2c]
push ebp
push esi
mov esi, dword [esp + 0x30]
push edi
mov ebp, ecx
xor edi, edi
test esi, esi
mov dword [esp + 0x10], ebp
je 0x300be8b2
mov eax, dword [esi + 0x20]
test eax, eax
je 0x300be870
mov ecx, dword [ebp + 0x3e4]
cmp eax, dword [ecx + 0xd5c]
je 0x300be8c9
lea edi, [esi + 0x10]
mov eax, dword [edi]
test eax, eax
je 0x300be8b2
mov edx, dword [eax + 0x1c]
cmp edx, dword [ebx + 0xe8]
jge 0x300be889
lea edi, [eax + 0xc]
jmp 0x300be873
mov ecx, dword [eax + 0x1c]
cmp ecx, dword [ebx + 0xe8]
jne 0x300be8b2
mov edx, dword [eax + 0x18]
mov ecx, dword [edx + 0x68]
test ecx, ecx
je 0x300be8b2
mov eax, dword [ecx + 0x218]
test eax, eax
jne 0x300be8ad
call fcn.300e4110
cmp eax, 6
jge 0x300be8c9
mov eax, dword [ebx + 0xe0]
test eax, eax
jne 0x300be8d5
mov ecx, dword [ebp + 0x3e4]
push 1
call fcn.300f8ab0
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x20
ret 8
mov eax, dword [ebp + 0x3e4]
mov eax, dword [eax + 0x20]
push 0
push eax
push 0x90
call fcn.30208150
add esp, 0xc
test eax, eax
je 0x300be8c9
mov ecx, eax
call fcn.300d3660
mov ebp, eax
test ebp, ebp
je 0x300be8c9
push 0
mov ecx, ebp
call fcn.300dc2d0
mov edx, dword [ebp + 0x54]
and edx, 0xfffffdff
lea eax, [ebp + 8]
mov dword [ebp + 0x54], edx
cmp dword [eax], esi
jne 0x300be923
test esi, esi
jne 0x300be923
mov dword [eax], esi
jmp 0x300be92d
push esi
push eax
call fcn.3020a280
add esp, 8
mov eax, dword [ebp + 0xc]
test eax, eax
lea esi, [ebp + 0xc]
jne 0x300be93f
mov dword [esi], 0
jmp 0x300be94a
push 0
push esi
call fcn.3020a280
add esp, 8
mov eax, dword [esp + 0x34]
test eax, eax
je 0x300be99f
mov eax, dword [edi]
test eax, eax
je 0x300be982
mov ecx, dword [eax + 8]
mov edx, dword [ecx + 4]
mov ecx, dword [edx]
test ecx, ecx
je 0x300be982
cmp eax, ecx
jne 0x300be982
cmp dword [esi], 0
jne 0x300be975
mov dword [esi], 0
jmp 0x300be98a
push 0
push esi
call fcn.3020a280
add esp, 8
jmp 0x300be98a
push edi
mov ecx, esi
call fcn.300bcc70
push ebp
mov ecx, edi
call fcn.3001a0d0
mov ecx, dword [esp + 0x34]
or dword [ecx + 0x54], 0x1000
jmp 0x300be9a9
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0xe0]
call fcn.30086670
mov ecx, ebp
push eax
call fcn.300884a0
lea ecx, [ebp + 0x7c]
push ecx
call fcn.30077120
mov edx, dword [ebx + 0xe0]
mov dword [ebp + 0x18], edx
lea edi, [ebp + 0x30]
mov ecx, 7
mov esi, ebx
rep movsd dword es:[edi], dword [esi]
mov eax, dword [ebx + 0xe8]
xor ecx, ecx
mov dword [ebp + 0x1c], eax
mov cx, word [ebx + 0xec]
add esp, 4
push ecx
mov ecx, ebp
call fcn.300d9370
mov dword [ebp + 0x54], 0
test dword [ebx + 0xdc], 0x20000
mov edi, 0x400
je 0x300bea0c
mov dword [ebp + 0x54], edi
mov edx, dword [ebx + 0x118]
push edx
mov ecx, ebp
call fcn.300d0480
mov al, byte [ebx + 0xf0]
test al, al
mov eax, dword [ebp + 0x54]
je 0x300bea2c
or eax, 4
jmp 0x300bea2f
and eax, 0xfffffffb
mov dword [ebp + 0x54], eax
mov cl, byte [ebx + 0x10c]
test cl, cl
je 0x300bea43
or eax, 0x80
jmp 0x300bea48
and eax, 0xffffff7f
or eax, 0x10
mov dword [ebp + 0x54], eax
mov ecx, dword [ebx + 0xe0]
test byte [ecx + 0x7f], 1
je 0x300bea61
or eax, 0x200000
jmp 0x300bea66
and eax, 0xffdfffff
mov dword [ebp + 0x54], eax
mov edx, dword [ebx + 0xe0]
cmp dword [edx + 0x78], 0x61
jne 0x300bea7c
or eax, 0x400000
jmp 0x300bea81
and eax, 0xffbfffff
mov dword [ebp + 0x54], eax
mov eax, dword [ebp + 4]
xor esi, esi
push esi
mov ecx, ebp
mov dword [eax + 0x1c], esi
call fcn.300d8ae0
mov ecx, dword [ebp + 0x10]
cmp ecx, esi
lea eax, [ebp + 0x10]
jne 0x300beaa2
mov dword [eax], esi
jmp 0x300beaac
push esi
push eax
call fcn.3020a280
add esp, 8
push esi
mov ecx, ebp
call fcn.300d92e0
push esi
mov ecx, ebp
mov dword [ebp + 0x4c], esi
mov dword [ebp + 0x50], esi
call fcn.300d8b60
fld qword [0x30293678]
fstp qword [ebp + 0x58]
push esi
fld qword [0x30297a00]
mov ecx, ebp
fstp qword [ebp + 0x68]
mov dword [ebp + 0x60], esi
fld qword [0x30297a00]
mov dword [ebp + 0x64], esi
fstp qword [ebp + 0x70]
call fcn.300d8bf0
push esi
mov ecx, ebp
call fcn.300d9140
mov ecx, dword [ebp + 0x18]
cmp dword [ecx + 0x5c], esi
je 0x300beb11
lea edx, [esp + 0x20]
push edx
call fcn.300d0340
lea eax, [esp + 0x20]
push eax
mov ecx, ebp
call fcn.300d8f10
mov ecx, ebp
call fcn.300dc360
push 0xffffffffffffffff
mov ecx, ebp
call fcn.300d90c0
push esi
mov ecx, ebp
call fcn.300d8c70
xor ecx, ecx
mov cl, byte [ebx + 0x10d]
push ecx
mov ecx, ebp
call fcn.300d8e90
test dword [ebx + 0xdc], edi
mov edi, dword [esp + 0x10]
je 0x300bebce
mov byte [edi + 0x3f0], 1
mov edx, dword [ebp + 4]
cmp dword [edx + 0x24], esi
jne 0x300beb9e
push 0x3d8
call fcn.3007a1f0
mov esi, eax
add esp, 4
test esi, esi
je 0x300beb92
mov eax, dword [edi + 0x3e4]
push 0
push eax
mov ecx, ebp
call fcn.300d20d0
mov ecx, dword [edi + 0x3e8]
mov edx, dword [ecx + 0xb0]
push eax
push edx
mov ecx, esi
call fcn.30083ff0
jmp 0x300beb94
xor eax, eax
push eax
mov ecx, ebp
call fcn.300d8c70
xor esi, esi
mov al, byte [ebx + 0x114]
test al, al
je 0x300bebb9
mov eax, dword [ebp + 4]
mov eax, dword [eax + 0x24]
mov ecx, dword [eax + 0x378]
or ecx, 2
jmp 0x300bebc8
mov ecx, dword [ebp + 4]
mov eax, dword [ecx + 0x24]
mov ecx, dword [eax + 0x378]
and ecx, 0xfffffffd
mov dword [eax + 0x378], ecx
mov eax, dword [ebx + 0xdc]
test ah, 1
je 0x300bec73
cmp dword [ebx + 0x110], esi
je 0x300bec73
mov byte [edi + 0x3f0], 1
mov edx, dword [ebp + 4]
cmp dword [edx + 0x24], esi
jne 0x300bec3e
push 0x3d8
call fcn.3007a1f0
mov esi, eax
add esp, 4
test esi, esi
je 0x300bec32
mov eax, dword [edi + 0x3e4]
push 0
push eax
mov ecx, ebp
call fcn.300d20d0
mov ecx, dword [edi + 0x3e8]
mov edx, dword [ecx + 0xb0]
push eax
push edx
mov ecx, esi
call fcn.30083ff0
jmp 0x300bec34
xor eax, eax
push eax
mov ecx, ebp
call fcn.300d8c70
xor esi, esi
mov eax, dword [ebp + 4]
mov ecx, dword [eax + 0x24]
mov dword [ecx + 0x378], 0x10
mov eax, dword [ebp + 4]
mov edx, dword [ebx + 0x110]
mov ecx, dword [eax + 0x24]
push edx
add ecx, 0x390
call fcn.30083f40
mov ecx, dword [ebp + 4]
mov eax, dword [ecx + 0x24]
or dword [eax + 0x33c], 8
mov ecx, dword [esp + 0x34]
cmp ecx, esi
je 0x300bec80
call fcn.300d0470
mov edi, dword [esp + 0x38]
lea edx, [edi + 0x1c]
push edx
mov ecx, ebp
call fcn.300d91c0
mov esi, dword [esp + 0x34]
test esi, esi
mov eax, dword [ebp + 0x18]
mov ebx, dword [eax + 0x68]
mov dword [esp + 0x14], 0
je 0x300becf2
mov eax, dword [ebx + 0x280]
test eax, eax
je 0x300becf2
mov eax, dword [ebx + 0x218]
test eax, eax
jne 0x300becc0
mov ecx, ebx
call fcn.300e4110
cmp eax, 6
jl 0x300becf2
mov ecx, esi
test ecx, ecx
je 0x300becf2
mov eax, dword [ecx + 0x20]
test eax, eax
je 0x300becf2
mov eax, dword [eax + 0x2c]
test eax, eax
je 0x300becf2
mov edx, dword [eax + 0x280]
test edx, edx
je 0x300bece8
mov ecx, dword [ecx + 8]
jmp 0x300becc7
mov ecx, dword [ecx + 0x20]
mov edx, dword [ecx + 0x2c]
mov dword [esp + 0x14], edx
mov ecx, dword [edi + 0xf4]
add edi, 0xf4
mov eax, ecx
and eax, 7
cmp eax, 7
jne 0x300bed13
and ecx, 0xfffffff8
mov ecx, dword [ecx + 0xc]
mov eax, ecx
and eax, 7
cmp eax, 2
jne 0x300bedf4
and ecx, 0x1f
cmp ecx, eax
jne 0x300bedf4
mov eax, dword [ebp + 0x18]
test eax, eax
je 0x300bed3b
mov ecx, dword [eax + 0x78]
cmp ecx, 6
je 0x300bed45
cmp ecx, 0x61
je 0x300bed45
cmp dword [eax + 0x78], 2
je 0x300bed45
xor esi, esi
jmp 0x300bed4a
mov esi, 1
mov eax, dword [ebx + 0x218]
test eax, eax
jne 0x300bed5b
mov ecx, ebx
call fcn.300e4110
cmp eax, 6
jl 0x300bed72
test esi, esi
jne 0x300bed6d
mov eax, dword [ebp + 0x18]
cmp dword [eax + 0x78], 9
jne 0x300bed72
mov esi, 1
mov al, byte [ebx + 0x642]
test al, al
jne 0x300bed80
test esi, esi
je 0x300bedf4
xor eax, eax
push 0x3029af60
lea ecx, [esp + 0x24]
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], eax
call fcn.30074eb0
mov esi, dword [esp + 0x10]
mov edx, dword [esi + 0x37c]
inc edx
mov eax, edx
push 0xa
push eax
lea ecx, [esp + 0x28]
mov dword [esi + 0x37c], edx
call fcn.30074b90
mov ecx, dword [esp + 0x20]
push ecx
mov ecx, dword [ebx + 0xdc]
lea edx, [esp + 0x20]
push edx
call fcn.30101cc0
push eax
lea ecx, [ebp + 0x14]
call fcn.3005df90
mov edx, dword [ebp + 0x54]
mov eax, dword [esp + 0x20]
or edx, 0x80000
push eax
mov dword [ebp + 0x54], edx
call fcn.30208320
add esp, 4
jmp 0x300bee1f
mov ecx, edi
call fcn.300948d0
test al, al
jne 0x300bee1b
mov ecx, dword [edi]
push ecx
mov ecx, dword [ebx + 0xdc]
lea edx, [esp + 0x20]
push edx
call fcn.30018860
push eax
lea ecx, [ebp + 0x14]
call fcn.3005df90
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x34]
test eax, eax
je 0x300bee35
add eax, 0x20
lea ecx, [ebp + 0x20]
push eax
call fcn.300bcc70
jmp 0x300bee52
mov ecx, dword [ebp + 0x20]
test ecx, ecx
lea eax, [ebp + 0x20]
jne 0x300bee47
mov dword [eax], 0
jmp 0x300bee52
push 0
push eax
call fcn.3020a280
add esp, 8
mov eax, dword [esp + 0x38]
test byte [eax + 0xdc], 0x40
je 0x300bee68
movzx eax, word [eax + 0xee]
jmp 0x300bee6a
xor eax, eax
push eax
mov ecx, ebp
call fcn.300d8e10
mov ecx, dword [ebp + 0x24]
test ecx, ecx
lea eax, [ebp + 0x24]
jne 0x300bee84
mov dword [eax], 0
jmp 0x300bee8f
push 0
push eax
call fcn.3020a280
add esp, 8
mov ecx, dword [ebp + 0x54]
and ecx, 0xffffefff
push 0
mov dword [ebp + 0x54], ecx
push 1
mov ecx, ebp
mov dword [ebp + 0x28], 0
call fcn.300d5290
mov ecx, dword [ebp + 0x18]
mov eax, dword [ecx + 0x78]
cmp eax, 0x62
ja case.0x300beec3.1
movzx eax, byte [eax + 0x300bf7d8]
jmp dword [eax*4 + 0x300bf7b8]
mov ecx, dword [ecx + 0x68]
mov al, byte [ecx + 0x642]
test al, al
je case.0x300beec3.1
push ebp
mov ecx, esi
call fcn.300be710
pop edi
pop esi
mov eax, ebp
pop ebp
pop ebx
add esp, 0x20
ret 8
push 0xffff
mov ecx, ebp
call fcn.300d8d90
push 0x30
call fcn.3007a1f0
mov edx, eax
add esp, 4
xor eax, eax
test edx, edx
je 0x300bef18
mov ecx, 0xc
mov edi, edx
rep stosd dword es:[edi], eax
mov eax, edx
push eax
mov ecx, ebp
call fcn.300d89a0
mov edx, dword [ebp + 4]
mov ecx, dword [edx + 8]
call fcn.300b9060
push ebp
call fcn.3011ef70
mov eax, dword [esi + 0x3e4]
mov eax, dword [eax + 0x20]
push 0
push eax
push 0xe0
call fcn.30208150
add esp, 0x10
test eax, eax
je case.0x300beec3.1
mov edi, dword [esp + 0x10]
mov ecx, dword [edi + 0x3e4]
push ecx
mov ecx, eax
call fcn.300ef190
mov esi, eax
test esi, esi
je case.0x300beec3.1
mov ecx, esi
call fcn.300ec4a0
push esi
lea ecx, [ebp + 0x20]
call fcn.3001a0d0
push ebx
mov ecx, esi
call fcn.300ec390
mov ecx, ebp
call fcn.300d20d0
push eax
mov ecx, esi
call fcn.300ec420
mov ecx, dword [esp + 0x14]
push ecx
lea ecx, [esi + 0x30]
call fcn.3001a0d0
mov edx, dword [ebp + 0x1c]
push ebp
mov ecx, esi
mov dword [esi + 0x48], edx
call fcn.300bccd0
xor ebx, ebx
mov ecx, ebp
mov dword [esi + 0x34], ebx
mov dword [esi + 4], ebx
mov dword [esi + 0x44], ebx
mov word [esi + 0x2a], 2
call fcn.300d6ac0
mov eax, dword [esi + 0x2c]
mov ecx, dword [eax + 0xc0]
mov edx, dword [ecx + 0x34]
mov ecx, dword [esi + 0xc0]
push edx
call fcn.300ec010
cmp dword [edi + 0x120], ebx
jne case.0x300beec3.1
push ebp
mov ecx, edi
call fcn.300be710
pop edi
pop esi
mov eax, ebp
pop ebp
pop ebx
add esp, 0x20
ret 8
movzx edi, word [esi + 0x150]
mov eax, dword [ebp + 0x1c]
cmp eax, edi
mov edx, 1
jne 0x300bf044
mov edi, dword [ebp + 8]
cmp edi, dword [esi + 0x148]
jne 0x300bf044
cmp ecx, dword [esi + 0x14c]
jne 0x300bf044
mov edi, dword [ebp + 4]
mov di, word [edi + 0x5e]
cmp di, word [esi + 0x152]
jne 0x300bf044
mov edx, dword [esi + 0x144]
mov dword [esi + 0x140], ebp
jmp 0x300bf07e
movzx edi, word [esi + 0x164]
cmp eax, edi
jne 0x300bf07e
mov eax, dword [ebp + 8]
cmp eax, dword [esi + 0x15c]
jne 0x300bf07e
cmp ecx, dword [esi + 0x160]
jne 0x300bf07e
mov ecx, dword [ebp + 4]
mov ax, word [ecx + 0x5e]
cmp ax, word [esi + 0x166]
jne 0x300bf07e
mov edx, dword [esi + 0x158]
mov dword [esi + 0x154], ebp
mov ecx, dword [ebp + 0x18]
mov eax, dword [ecx + 0x68]
mov cl, byte [eax + 0x642]
test cl, cl
jne 0x300bf099
push 0
push edx
push ebp
mov ecx, esi
call fcn.300c0990
mov eax, dword [ebx + 0x218]
test eax, eax
jne 0x300bf0aa
mov ecx, ebx
call fcn.300e4110
cmp eax, 6
jl case.0x300beec3.1
mov ecx, dword [esi + 0x3e4]
mov eax, dword [ecx + 0x20]
push 0
push eax
push 0xe0
call fcn.30208150
add esp, 0xc
test eax, eax
je case.0x300beec3.1
mov edi, dword [esp + 0x10]
mov ecx, dword [edi + 0x3e4]
push ecx
mov ecx, eax
call fcn.300ef190
mov esi, eax
test esi, esi
je case.0x300beec3.1
mov ecx, esi
call fcn.300ec4a0
push esi
lea ecx, [ebp + 0x20]
call fcn.3001a0d0
push ebx
mov ecx, esi
call fcn.300ec390
mov ecx, ebp
call fcn.300d20d0
push eax
mov ecx, esi
call fcn.300ec420
mov edx, dword [esp + 0x14]
push edx
lea ecx, [esi + 0x30]
call fcn.3001a0d0
mov eax, dword [ebp + 0x1c]
push ebp
mov ecx, esi
mov dword [esi + 0x48], eax
call fcn.300bccd0
xor ebx, ebx
mov ecx, ebp
mov dword [esi + 0x34], ebx
mov dword [esi + 4], ebx
mov dword [esi + 0x44], ebx
mov word [esi + 0x2a], 2
call fcn.300d6ac0
mov ecx, dword [esi + 0x2c]
mov edx, dword [ecx + 0xc0]
mov eax, dword [edx + 0x34]
mov ecx, dword [esi + 0xc0]
push eax
call fcn.300ec010
cmp dword [edi + 0x120], ebx
jne case.0x300beec3.1
push ebp
mov ecx, edi
call fcn.300be710
cmp dword [edi + 0x120], ebx
jne case.0x300beec3.1
mov eax, dword [edi + 0x3e4]
cmp eax, ebx
je case.0x300beec3.1
lea ecx, [eax + 0x28]
call fcn.3017e1e0
test eax, eax
je case.0x300beec3.1
mov ecx, dword [edi + 0x3e4]
push ebp
add ecx, 0x28
call fcn.3009dec0
pop edi
pop esi
mov eax, ebp
pop ebp
pop ebx
add esp, 0x20
ret 8
mov ecx, ebp
call fcn.300d9c20
mov edx, dword [esi + 0x120]
xor edi, edi
test edx, edx
je 0x300bf1f4
mov eax, ebp
mov ecx, dword [eax + 8]
cmp edx, ecx
je 0x300bf1dd
mov eax, ecx
test eax, eax
jne 0x300bf1d0
xor ecx, ecx
test eax, eax
setne cl
mov edi, ecx
test edi, edi
je 0x300bf1f4
mov dword [esi + 0x124], 1
mov eax, dword [ebx + 0x218]
test eax, eax
jne 0x300bf205
mov ecx, ebx
call fcn.300e4110
cmp eax, 6
jl 0x300bf331
mov edx, dword [esi + 0x3e4]
mov eax, dword [edx + 0x20]
push 0
push eax
push 0xe0
call fcn.30208150
add esp, 0xc
test eax, eax
je case.0x300beec3.1
mov ecx, dword [esp + 0x10]
mov ecx, dword [ecx + 0x3e4]
push ecx
mov ecx, eax
call fcn.300ef190
mov esi, eax
test esi, esi
je case.0x300beec3.1
mov ecx, esi
call fcn.300ec4a0
push esi
lea ecx, [ebp + 0x20]
call fcn.3001a0d0
push ebx
mov ecx, esi
call fcn.300ec390
mov ecx, ebp
call fcn.300d20d0
push eax
mov ecx, esi
call fcn.300ec420
mov edx, dword [esp + 0x14]
push edx
lea ecx, [esi + 0x30]
call fcn.3001a0d0
mov eax, dword [ebp + 0x1c]
push ebp
mov ecx, esi
mov dword [esi + 0x48], eax
call fcn.300bccd0
xor ebx, ebx
mov ecx, ebp
mov dword [esi + 0x34], ebx
mov dword [esi + 0x44], ebx
mov dword [esi + 4], ebx
mov word [esi + 0x2a], 2
call fcn.300d6ac0
mov ecx, dword [esi + 0x2c]
mov edx, dword [ecx + 0xc0]
mov eax, dword [edx + 0x34]
mov ecx, dword [esi + 0xc0]
push eax
call fcn.300ec010
cmp edi, ebx
jne 0x300bf2d0
mov ecx, dword [ebp + 4]
mov ecx, dword [ecx + 0x18]
test ecx, ecx
je 0x300bf2d0
call fcn.3006ba70
mov esi, dword [esp + 0x10]
mov eax, dword [esi + 0x120]
test eax, eax
jne case.0x300beec3.1
push ebp
mov ecx, esi
call fcn.300be710
mov eax, dword [esi + 0x120]
test eax, eax
jne case.0x300beec3.1
mov eax, dword [esi + 0x3e4]
test eax, eax
je case.0x300beec3.1
lea ecx, [eax + 0x28]
call fcn.3017e1e0
test eax, eax
je case.0x300beec3.1
mov ecx, dword [esi + 0x3e4]
push ebp
add ecx, 0x28
call fcn.3009dec0
pop edi
pop esi
mov eax, ebp
pop ebp
pop ebx
add esp, 0x20
ret 8
test edi, edi
jne case.0x300beec3.1
mov edx, dword [ebp + 4]
mov ecx, dword [edx + 0x18]
test ecx, ecx
je case.0x300beec3.1
call fcn.3006ba70
pop edi
pop esi
mov eax, ebp
pop ebp
pop ebx
add esp, 0x20
ret 8
mov eax, dword [esp + 0x38]
mov ecx, dword [eax + 0xdc]
xor edi, edi
test ecx, 0x10000
mov dword [esp + 0x34], ebx
mov dword [esp + 0x18], edi
mov dword [esp + 0x1c], edi
je 0x300bf42f
mov ecx, dword [ebx + 0x38]
cmp ecx, dword [ebx + 0x1d0]
jl case.0x300beec3.1
mov edx, dword [esi + 0x3e4]
mov eax, dword [edx + 0x20]
push edi
push eax
push 0x658
call fcn.30208150
add esp, 0xc
test eax, eax
je 0x300bf3bd
mov ecx, dword [esp + 0x10]
mov ecx, dword [ecx + 0x3e4]
push ecx
mov ecx, eax
call fcn.300ef470
mov esi, eax
jmp 0x300bf3bf
xor esi, esi
mov ecx, dword [ebx + 4]
mov edx, dword [ebx + 0x38]
mov eax, dword [ebx + 0x44]
mov edi, dword [ebx + 0x34]
mov dword [esi + 4], ecx
push esi
mov ecx, esi
mov dword [esp + 0x1c], edx
mov dword [esp + 0x20], eax
call fcn.300ec390
mov edx, dword [ebx + 0x1f0]
mov dword [esi + 0x1f0], edx
mov eax, dword [ebx + 0xc0]
mov ecx, dword [eax + 0x34]
push ecx
mov ecx, dword [esi + 0xc0]
call fcn.300ec010
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 0x3e4]
push eax
mov ecx, esi
mov dword [esp + 0x38], esi
call fcn.300ecae0
mov dword [esi + 0x1e4], 1
mov ecx, dword [ebx + 0x1d4]
mov dword [esi + 0x1d4], ecx
mov ecx, esi
jmp 0x300bf433
mov esi, ebx
mov ecx, ebx
call fcn.300babc0
test esi, esi
je case.0x300beec3.1
mov ecx, esi
call fcn.300ec4a0
push esi
lea ecx, [ebp + 0x20]
call fcn.3001a0d0
mov edx, dword [esp + 0x34]
push edx
mov ecx, esi
call fcn.300ec390
mov eax, dword [esp + 0x14]
push eax
lea ecx, [esi + 0x30]
call fcn.3001a0d0
mov ecx, dword [ebp + 0x1c]
mov dword [esi + 0x48], ecx
push ebp
mov ecx, esi
call fcn.300bccd0
mov ecx, ebp
call fcn.300d20d0
push eax
mov ecx, esi
call fcn.300ec420
mov edx, dword [ebx + 0x1d0]
mov eax, dword [ebx + 4]
push edx
push edi
push eax
lea ecx, [esi + 4]
call fcn.300dfc60
mov ecx, dword [ebx + 0x3c]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
mov dword [esi + 0x34], edi
mov edi, dword [esp + 0x38]
mov dword [esi + 0x3c], ecx
mov dword [esi + 0x38], edx
mov dword [esi + 0x44], eax
mov eax, dword [edi + 0xf8]
test eax, eax
je 0x300bf74b
mov dword [esi + 0x64], esi
mov edx, dword [edi + 0x11c]
mov eax, dword [edi + 0x104]
push edx
mov edx, dword [edi + 0x108]
push eax
mov eax, dword [edi + 0xfc]
push edx
mov edx, dword [edi + 0xf8]
push eax
lea ecx, [esi + 0x5c]
push edx
call fcn.300367f0
push 0
push 0
push 0
push 0
push 0x200
lea ecx, [esi + 0x5c]
call fcn.300368b0
mov eax, dword [edi + 0xe0]
test byte [eax + 0x7f], 1
je 0x300bf531
mov eax, dword [ebx + 0x218]
test eax, eax
jne 0x300bf523
mov ecx, ebx
call fcn.300e4110
cmp eax, 6
jl 0x300bf531
and byte [esi + 0x28], 0xf7
jmp 0x300bf74b
push 0
push 0
push 0
push 0
push 1
lea ecx, [esi + 0x5c]
call fcn.300368b0
or byte [esi + 0x28], 8
jmp 0x300bf74b
test byte [ecx + 8], 0x1e
je 0x300bf5a2
push 0x3d8
call fcn.3007a1f0
mov edi, eax
add esp, 4
test edi, edi
je 0x300bf591
mov ecx, dword [ebp + 0x18]
mov edx, dword [ecx + 0xc]
mov eax, dword [esi + 0x3e4]
push edx
push eax
mov ecx, ebp
call fcn.300d20d0
mov ecx, dword [esi + 0x3e8]
mov edx, dword [ecx + 0xb0]
push eax
push edx
mov ecx, edi
call fcn.30083ff0
jmp 0x300bf593
xor eax, eax
push eax
mov ecx, ebp
call fcn.300d8c70
mov byte [esi + 0x3f0], 1
mov eax, dword [esi + 0x3e4]
mov eax, dword [eax + 0x20]
push 0
push eax
push 0xe0
call fcn.30208150
add esp, 0xc
test eax, eax
je case.0x300beec3.1
mov ecx, dword [esp + 0x10]
mov ecx, dword [ecx + 0x3e4]
push ecx
mov ecx, eax
call fcn.300ef190
mov esi, eax
test esi, esi
je case.0x300beec3.1
mov ecx, esi
call fcn.300ec4a0
push esi
lea ecx, [ebp + 0x20]
call fcn.3001a0d0
push ebx
mov ecx, esi
call fcn.300ec390
mov ecx, ebp
call fcn.300d20d0
push eax
mov ecx, esi
call fcn.300ec420
mov edx, dword [esp + 0x14]
push edx
lea ecx, [esi + 0x30]
call fcn.3001a0d0
mov eax, dword [ebp + 0x1c]
push ebp
mov ecx, esi
mov dword [esi + 0x48], eax
call fcn.300bccd0
mov eax, dword [ebp + 0x18]
mov ecx, dword [eax + 0x74]
mov edx, dword [eax + 0x70]
push ecx
push 0
push edx
lea ecx, [esi + 4]
call fcn.300dfc60
mov eax, dword [ebp + 0x18]
mov ecx, dword [eax + 4]
mov dword [esi + 0x38], ecx
mov ecx, dword [esi + 0x2c]
mov dword [esi + 0x34], 0
mov edx, dword [ebp + 0x18]
mov eax, dword [edx]
mov dword [esi + 0x44], eax
mov edx, dword [ecx + 0xc0]
mov eax, dword [edx + 0x34]
mov ecx, dword [esi + 0xc0]
push eax
call fcn.300ec010
mov edi, dword [esp + 0x38]
mov eax, dword [edi + 0xf8]
test eax, eax
je 0x300bf6f8
mov dword [esi + 0x64], esi
mov edx, dword [edi + 0x11c]
mov eax, dword [edi + 0x104]
push edx
mov edx, dword [edi + 0x108]
push eax
mov eax, dword [edi + 0xfc]
push edx
mov edx, dword [edi + 0xf8]
push eax
lea ecx, [esi + 0x5c]
push edx
call fcn.300367f0
push 0
push 0
push 0
push 0
push 0x200
lea ecx, [esi + 0x5c]
call fcn.300368b0
mov eax, dword [esi + 0x38]
test eax, eax
jne 0x300bf6e2
test ebx, ebx
je 0x300bf6dc
mov eax, dword [ebx + 0x218]
test eax, eax
jne 0x300bf6d7
mov ecx, ebx
call fcn.300e4110
cmp eax, 6
jl 0x300bf6e2
and byte [esi + 0x28], 0xf7
jmp 0x300bf6f8
push 0
push 0
push 0
push 0
push 1
lea ecx, [esi + 0x5c]
call fcn.300368b0
or byte [esi + 0x28], 8
mov eax, dword [edi + 0x100]
test eax, eax
je 0x300bf74b
mov ecx, dword [esp + 0x10]
mov ecx, dword [ecx + 0x3e4]
test ecx, ecx
je 0x300bf74b
push 1
push eax
call fcn.30018760
test eax, eax
je 0x300bf74b
mov edx, dword [edi + 0x100]
push edx
lea ecx, [esi + 0xac]
call fcn.300d6cf0
mov eax, dword [ebx + 0x218]
test eax, eax
jne 0x300bf73f
mov ecx, ebx
call fcn.300e4110
cmp eax, 6
jg 0x300bf74b
mov ecx, esi
call fcn.300ef360
mov edi, dword [esp + 0x10]
mov eax, dword [edi + 0x120]
test eax, eax
jne 0x300bf790
mov ecx, edi
push ebp
call fcn.300be710
mov eax, dword [edi + 0x120]
test eax, eax
jne 0x300bf790
mov eax, dword [edi + 0x3e4]
test eax, eax
je 0x300bf790
lea ecx, [eax + 0x28]
call fcn.3017e1e0
test eax, eax
je 0x300bf790
mov ecx, dword [edi + 0x3e4]
add ecx, 0x28
push ebp
call fcn.3009dec0
test byte [esi + 0x28], 0x20
jne 0x300bf7a8
mov ecx, ebp
call fcn.300d6ac0
push 0
mov ecx, esi
push 0
call fcn.300f1130
and byte [esi + 0x28], 0xdf
pop edi
pop esi
mov eax, ebp
pop ebp
pop ebx
add esp, 0x20
ret 8