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

Disassembly:
sub esp, 0x68
push ebx
mov ebx, dword [esp + 0x80]
test ebx, ebx
push esi
mov esi, ecx
jne 0x3010f44c
pop esi
xor eax, eax
pop ebx
add esp, 0x68
ret 0x40
push edi
mov edi, dword [esp + 0x78]
test edi, edi
je 0x3010f485
mov eax, dword [esi + 0x1c]
mov ecx, dword [eax + 0x850]
test ecx, ecx
je 0x3010f495
mov edx, dword [esi]
push 0
push ebx
push edi
lea eax, [esp + 0x44]
push eax
mov ecx, esi
call dword [edx + 0xdc]
cmp dword [esp + 0x6c], 2
lea ecx, [esp + 0x38]
jne 0x3010f490
call fcn.300047f0
pop edi
pop esi
xor eax, eax
pop ebx
add esp, 0x68
ret 0x40
call fcn.300047f0
push ebp
mov ebp, dword [esp + 0x80]
push ebx
push ebp
push edi
mov ecx, esi
call fcn.30105e10
test eax, eax
jne 0x3010f647
mov eax, dword [esp + 0x90]
test eax, eax
mov dword [esp + 0x7c], 2
je 0x3010f4d1
push eax
lea ecx, [esp + 0x80]
call fcn.300ba270
jmp 0x3010f51e
push esi
push 0
push ebp
call fcn.300f6c50
add esp, 0xc
test eax, eax
mov dword [esp + 0x10], eax
jl 0x3010f4fe
fild dword [esp + 0x10]
push esi
sub esp, 8
lea ecx, [esp + 0x88]
fstp qword [esp]
call fcn.300ba1e0
jmp 0x3010f51e
test byte [esp + 0x94], 0x40
je 0x3010f51e
mov ecx, esi
call fcn.300f88b0
push eax
push ebp
push esi
lea ecx, [esp + 0x88]
call fcn.300ba040
mov al, byte [esp + 0xb8]
test al, al
mov byte [esp + 0x8c], 1
jne 0x3010f77b
push str.FSCommand:
push edi
call fcn.30074f60
add esp, 8
test eax, eax
jne 0x3010f582
mov eax, dword [esi + 0x1c]
mov ecx, dword [eax + 0xc]
push edi
call fcn.300f7a80
test al, al
jne 0x3010f582
lea ecx, [esp + 0x7c]
call fcn.300046a0
cmp eax, 2
jne 0x3010f5a5
test byte [esp + 0x94], 0x20
jne 0x3010f5a5
mov ecx, ebx
call fcn.3001f7d0
lea ecx, [esp + 0x8c]
push ecx
push 1
jmp 0x3010f593
mov ecx, ebx
call fcn.3001f7d0
lea ecx, [esp + 0x8c]
push ecx
push 2
mov edx, dword [eax]
mov eax, dword [esi + 0xf80]
push edx
push edi
mov ecx, esi
push eax
call fcn.30005840
mov al, byte [esp + 0x8c]
test al, al
jne 0x3010f77b
push 0x3029c440
push edi
call fcn.30074f60
add esp, 8
test eax, eax
je 0x3010f653
mov al, byte [esi + 0x838]
test al, al
je 0x3010f647
lea ebx, [esi + 0x28]
mov ecx, ebx
call fcn.3017e1e0
test eax, eax
push 0x74
push 3
je 0x3010f614
push ebx
call fcn.30098cf0
mov ecx, dword [esi + 0xbf0]
mov edx, dword [ecx*4 + 0x3029b954]
push edi
push edx
push 0x77
push 3
push ebx
call fcn.30098cf0
add esp, 0x20
pop ebp
pop edi
pop esi
xor eax, eax
pop ebx
add esp, 0x68
ret 0x40
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x3c]
push eax
call fcn.300f8ac0
mov ecx, dword [esi + 0xbf0]
mov eax, dword [ecx*4 + 0x3029b954]
mov edx, dword [esi]
add esp, 0xc
push edi
push eax
push 0x77
push 3
mov ecx, esi
call dword [edx + 0x3c]
push eax
call fcn.300f8ac0
add esp, 0x14
pop ebp
pop edi
pop esi
xor eax, eax
pop ebx
add esp, 0x68
ret 0x40
mov eax, dword [esi + 0x1c]
mov ecx, dword [eax + 0xc]
push edi
call fcn.300f7a80
test al, al
mov al, byte [esi + 0x838]
je 0x3010f6f0
test al, al
je 0x3010f647
lea ebx, [esi + 0x28]
mov ecx, ebx
call fcn.3017e1e0
test eax, eax
push 0x74
push 3
je 0x3010f6b1
push ebx
call fcn.30098cf0
mov eax, dword [esi + 0xbf0]
mov ecx, dword [eax*4 + 0x3029b954]
push edi
push ecx
push 0x78
push 3
push ebx
call fcn.30098cf0
add esp, 0x20
pop ebp
pop edi
pop esi
xor eax, eax
pop ebx
add esp, 0x68
ret 0x40
mov edx, dword [esi]
mov ecx, esi
call dword [edx + 0x3c]
push eax
call fcn.300f8ac0
mov eax, dword [esi + 0xbf0]
mov eax, dword [eax*4 + 0x3029b954]
mov edx, dword [esi]
add esp, 0xc
push edi
push eax
push 0x78
push 3
mov ecx, esi
call dword [edx + 0x3c]
push eax
call fcn.300f8ac0
add esp, 0x14
pop ebp
pop edi
pop esi
xor eax, eax
pop ebx
add esp, 0x68
ret 0x40
test al, al
je 0x3010f76f
lea ebx, [esi + 0x28]
mov ecx, ebx
call fcn.3017e1e0
test eax, eax
push 0x74
push 3
je 0x3010f738
push ebx
call fcn.30098cf0
mov eax, dword [esi + 0xbf0]
mov ecx, dword [eax*4 + 0x3029b954]
push edi
push ecx
push ebp
push 0xac
push 3
push ebx
call fcn.30098cf0
add esp, 0x24
pop ebp
pop edi
pop esi
xor eax, eax
pop ebx
add esp, 0x68
ret 0x40
mov edx, dword [esi]
mov ecx, esi
call dword [edx + 0x3c]
push eax
call fcn.300f8ac0
mov eax, dword [esi + 0xbf0]
mov eax, dword [eax*4 + 0x3029b954]
mov edx, dword [esi]
add esp, 0xc
push edi
push eax
push ebp
push 0xac
push 3
mov ecx, esi
call dword [edx + 0x3c]
push eax
call fcn.300f8ac0
add esp, 0x18
pop ebp
pop edi
pop esi
xor eax, eax
pop ebx
add esp, 0x68
ret 0x40
push str.FSCommand:
push edi
call fcn.30074f60
add esp, 8
test eax, eax
je 0x3010f845
push 0
push ebx
mov ecx, esi
call fcn.300fcbb0
test al, al
je 0x3010f7cb
mov eax, dword [esp + 0xb0]
mov edx, dword [esi]
push eax
push ebp
push edi
mov ecx, esi
call dword [edx + 0x3c]
mov ecx, eax
call fcn.30005f20
test al, al
je 0x3010f845
pop ebp
pop edi
pop esi
xor eax, eax
pop ebx
add esp, 0x68
ret 0x40
mov al, byte [esi + 0x838]
test al, al
je 0x3010f845
lea ebp, [esi + 0x28]
mov ecx, ebp
call fcn.3017e1e0
test eax, eax
push 0x74
push 3
je 0x3010f80b
push ebp
call fcn.30098cf0
mov eax, dword [esi + 0xbf0]
mov ecx, dword [eax*4 + 0x3029b954]
push edi
push ecx
push 0x77
push 3
push ebp
call fcn.30098cf0
add esp, 0x20
jmp 0x3010f83e
mov edx, dword [esi]
mov ecx, esi
call dword [edx + 0x3c]
push eax
call fcn.300f8ac0
mov eax, dword [esi + 0xbf0]
mov eax, dword [eax*4 + 0x3029b954]
mov edx, dword [esi]
add esp, 0xc
push edi
push eax
push 0x77
push 3
mov ecx, esi
call dword [edx + 0x3c]
push eax
call fcn.300f8ac0
add esp, 0x14
mov ebp, dword [esp + 0x80]
push str.FSCommand:
push edi
call fcn.30074f60
add esp, 8
test eax, eax
jne 0x3010f647
push str.FlashApp:
push edi
call fcn.30074f60
add esp, 8
test eax, eax
mov dword [esp + 0xb8], eax
je 0x3010f90c
lea ecx, [esp + 0x2c]
call fcn.30073450
mov ecx, dword [esi + 0xd6c]
mov eax, dword [ecx]
lea edx, [esp + 0x2c]
push edx
call dword [eax + 0x50]
test al, al
je 0x3010f8f7
mov eax, dword [esp + 0xb8]
push eax
lea ecx, [esp + 0x30]
call fcn.30073a50
mov edi, dword [esi]
push ebx
lea ecx, [esp + 0x30]
call fcn.300733e0
push eax
lea ecx, [esp + 0x44]
push ecx
mov ecx, esi
call dword [edi + 0xd8]
mov eax, dword [esp + 0xb0]
mov ecx, dword [esp + 0x98]
mov edx, dword [esi]
push eax
mov eax, dword [esp + 0x8c]
push ebx
push ecx
mov ecx, dword [esp + 0x90]
push eax
mov eax, dword [esp + 0x4c]
push ecx
push ebp
push eax
mov ecx, esi
call dword [edx + 0x4c]
lea ecx, [esp + 0x3c]
call fcn.300047f0
lea ecx, [esp + 0x2c]
call fcn.300731a0
pop ebp
pop edi
pop esi
xor eax, eax
pop ebx
add esp, 0x68
ret 0x40
mov edx, dword [esi]
mov ecx, esi
call dword [edx + 0x94]
test eax, eax
je 0x3010f9d3
mov ecx, dword [esi + 0x7a4]
test ecx, ecx
je 0x3010f9d3
call fcn.30054dd0
test eax, eax
je 0x3010f9d3
mov ecx, dword [0x303f9cd4]
push 0x50
call fcn.300033c0
test eax, eax
je 0x3010f956
push esi
mov ecx, eax
call fcn.300fd300
mov ebp, eax
jmp 0x3010f958
xor ebp, ebp
push edi
call fcn.30075310
mov dword [ebp + 0x20], eax
mov eax, dword [esp + 0x84]
push eax
call fcn.30075310
mov ecx, dword [esp + 0x98]
add esp, 8
push ecx
lea ecx, [ebp + 0x38]
mov dword [ebp + 0x24], eax
call fcn.30193c20
mov edx, dword [esp + 0x84]
push edx
call fcn.30075310
movzx ecx, word [esp + 0x98]
mov edx, dword [esp + 0x9c]
mov dword [ebp + 0x28], eax
mov eax, dword [esp + 0x8c]
push edx
mov dword [ebp + 0x2c], eax
mov dword [ebp + 0x34], ecx
call fcn.30075310
add esp, 8
push ebp
mov ecx, esi
mov dword [ebp + 0x30], eax
mov dword [ebp + 0x44], ebx
call fcn.30105af0
pop ebp
pop edi
pop esi
xor eax, eax
pop ebx
add esp, 0x68
ret 0x40
mov eax, dword [esi + 0x1c]
mov ecx, dword [eax + 0xc]
push edi
call fcn.300f7a80
test al, al
je 0x3010fa43
push 0
push ebx
mov ecx, esi
call fcn.300fcbb0
test al, al
jne 0x3010fa43
mov al, byte [esi + 0x838]
test al, al
je 0x3010f647
lea ebx, [esi + 0x28]
mov ecx, ebx
call fcn.3017e1e0
test eax, eax
push 0x74
push 3
je 0x3010f6b1
push ebx
call fcn.30098cf0
mov eax, dword [esi + 0xbf0]
mov ecx, dword [eax*4 + 0x3029b954]
push edi
push ecx
push 0x78
push 3
push ebx
call fcn.30098cf0
add esp, 0x20
pop ebp
pop edi
pop esi
xor eax, eax
pop ebx
add esp, 0x68
ret 0x40
lea ecx, [esp + 0x7c]
call fcn.300046a0
cmp eax, 2
jne 0x3010fb1e
mov eax, dword [esi + 0x1c]
mov ecx, dword [eax + 0xc]
push ebp
call fcn.300f7be0
test al, al
je 0x3010fb1e
push 1
push ebx
mov ecx, esi
call fcn.300fcbb0
test al, al
jne 0x3010fb1e
mov al, byte [esi + 0x838]
test al, al
je 0x3010f76f
lea ebp, [esi + 0x28]
mov ecx, ebp
call fcn.3017e1e0
test eax, eax
push 0x74
push 3
je 0x3010fad4
push ebp
call fcn.30098cf0
mov eax, dword [esi + 0xbf0]
mov ecx, dword [eax*4 + 0x3029b954]
mov edx, dword [esp + 0x8c]
push edi
push ecx
push edx
push 0xac
push 3
push ebp
call fcn.30098cf0
add esp, 0x24
pop ebp
pop edi
pop esi
xor eax, eax
pop ebx
add esp, 0x68
ret 0x40
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x3c]
push eax
call fcn.300f8ac0
mov ecx, dword [esi + 0xbf0]
mov eax, dword [ecx*4 + 0x3029b954]
mov edx, dword [esp + 0x8c]
add esp, 0xc
push edi
push eax
mov eax, dword [esi]
push edx
push 0xac
push 3
mov ecx, esi
call dword [eax + 0x3c]
push eax
call fcn.300f8ac0
add esp, 0x18
pop ebp
pop edi
pop esi
xor eax, eax
pop ebx
add esp, 0x68
ret 0x40
test ebp, ebp
mov eax, ebp
jne 0x3010fb29
mov eax, 0x30293680
push eax
lea ecx, [esp + 0x18]
call fcn.30075610
test ebp, ebp
je 0x3010fba7
cmp byte [ebp], 0
je 0x3010fba7
lea ecx, [esp + 0x7c]
call fcn.300046a0
cmp eax, 2
jne 0x3010fba7
test byte [esp + 0x94], 0x20
jne 0x3010fba7
mov ecx, ebx
call fcn.300c3430
cmp eax, 1
jne 0x3010fba7
mov eax, dword [esi + 0x1c]
mov ecx, dword [eax + 0xc]
push ebp
call fcn.300f7be0
test al, al
jne 0x3010fba7
push str._blank
push ebp
call fcn.300757e0
add esp, 8
test al, al
jne 0x3010fba7
mov ecx, dword [esp + 0x14]
push ecx
lea edx, [esp + 0x30]
push edx
mov ecx, esi
call fcn.300f8400
push eax
lea ecx, [esp + 0x18]
call fcn.30075630
lea ecx, [esp + 0x2c]
call fcn.30025af0
push edi
lea ecx, [esp + 0x24]
call fcn.30075610
mov ecx, ebx
call fcn.300c3430
cmp eax, 1
jne 0x3010fbcb
lea eax, [esp + 0x20]
push eax
push edi
call fcn.3011b5b0
add esp, 8
lea ecx, [esp + 0x7c]
call fcn.300046a0
cmp eax, 2
jne 0x3010fc93
test byte [esp + 0x94], 0x20
jne 0x3010fc93
mov eax, dword [esp + 0x20]
mov edx, dword [esi]
push ebx
push eax
lea ecx, [esp + 0x44]
push ecx
mov ecx, esi
call dword [edx + 0xd8]
mov eax, dword [esp + 0x3c]
cmp byte [eax], 0
mov ebp, eax
je 0x3010fc3c
mov eax, dword [esi + 0xbf4]
test eax, eax
je 0x3010fc63
mov ecx, ebx
call fcn.300c2270
test eax, eax
jne 0x3010fc63
mov ecx, ebx
call fcn.3001f7d0
mov edx, dword [eax]
mov eax, dword [esi + 0x1c]
mov ecx, dword [eax + 0xc]
push 0xad
push edx
push edi
push esi
call fcn.300fac70
lea ecx, [esp + 0x3c]
call fcn.300047f0
lea ecx, [esp + 0x20]
call fcn.30025af0
lea ecx, [esp + 0x14]
call fcn.30025af0
pop ebp
pop edi
pop esi
xor eax, eax
pop ebx
add esp, 0x68
ret 0x40
mov eax, dword [esp + 0xb0]
mov ecx, dword [esp + 0x98]
mov edx, dword [esi]
push eax
mov eax, dword [esp + 0x8c]
push ebx
push ecx
mov ecx, dword [esp + 0x90]
push eax
mov eax, dword [esp + 0x24]
push ecx
push eax
push ebp
mov ecx, esi
call dword [edx + 0x4c]
jmp 0x3010fc3c
mov ecx, dword [esp + 0xb4]
mov edx, dword [esp + 0xac]
mov eax, dword [esp + 0xa8]
push ecx
mov ecx, dword [esp + 0xa8]
push edx
mov edx, dword [esp + 0xa8]
push eax
mov eax, dword [esp + 0xa8]
push ecx
mov ecx, dword [esp + 0xa8]
push edx
mov edx, dword [esp + 0xa8]
push eax
mov eax, dword [esp + 0xa0]
push ecx
mov ecx, dword [esp + 0xa0]
push edx
push eax
mov eax, dword [esi]
push ecx
lea edx, [esp + 0xa4]
push edx
push edi
mov ecx, esi
call dword [eax + 0x3c]
mov ecx, eax
call fcn.3010f110
lea ecx, [esp + 0x20]
mov esi, eax
call fcn.30025af0
lea ecx, [esp + 0x14]
call fcn.30025af0
pop ebp
pop edi
mov eax, esi
pop esi
pop ebx
add esp, 0x68
ret 0x40