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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x294
mov eax, dword [0x3001d1b0]
xor eax, esp
mov dword [esp + 0x290], eax
push ebx
push esi
push edi
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x44], eax
mov eax, dword [ebp + 0x10]
or dword [esp + 0x30], 0xffffffff
mov dword [esp + 0x60], eax
mov eax, dword [ebp + 0x14]
mov dword [esp + 0x14], eax
mov eax, dword [ebp + 0x18]
mov dword [esp + 0x64], eax
mov eax, dword [ebp + 0x1c]
mov dword [esp + 0x5c], eax
mov eax, dword [ebp + 0x2c]
mov dword [esp + 0x10], eax
mov eax, dword [ebp + 0x30]
mov dword [esp + 0x74], eax
mov eax, dword [ebp + 0x38]
mov dword [esp + 0x38], eax
mov eax, dword [ebp + 0x3c]
mov esi, dword [ebp + 0x48]
xor ebx, ebx
cmp esi, ebx
mov edi, dword [ebp + 0x40]
mov dword [esp + 0x68], eax
mov eax, dword [ebp + 0x44]
mov dword [esp + 0x6c], edi
mov dword [esp + 0x70], eax
mov dword [esp + 0x54], esi
mov dword [esp + 0x40], ebx
je 0x300466a3
movzx eax, word [esi + 4]
jmp 0x300466af
mov ecx, dword [esp + 0x14]
call fcn.3013dd76
movzx eax, ax
cmp esi, ebx
mov dword [esp + 0x50], eax
je 0x300466bc
mov eax, dword [esi + 8]
jmp 0x300466c5
mov ecx, dword [esp + 0x14]
call fcn.3013dceb
cmp eax, ebx
mov dword [esp + 0x20], eax
jne 0x300466e7
cmp esi, ebx
je 0x300466d6
mov eax, dword [esi + 0xc]
jmp 0x300466df
mov ecx, dword [esp + 0x14]
call fcn.3013dd11
cmp eax, ebx
mov dword [esp + 0x48], ebx
je 0x300466ef
mov dword [esp + 0x48], 1
cmp dword [esp + 0x10], ebx
jne 0x300466fd
lea eax, [esp + 0x30]
mov dword [esp + 0x10], eax
cmp edi, ebx
mov eax, dword [esp + 0x44]
mov eax, dword [eax]
mov dword [esp + 0xc], eax
mov dword [esp + 0x34], ebx
mov dword [esp + 0x58], ebx
mov dword [esp + 0x4c], ebx
je 0x3004672d
xor eax, eax
cmp dword [edi], 0xffffffff
mov dword [esp + 0x4c], 1
sete al
mov dword [edi], ebx
mov dword [esp + 0x58], eax
cmp esi, ebx
je 0x30046736
mov eax, dword [esi + 0x10]
jmp 0x30046742
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx]
call dword [eax + 0xf0]
cmp esi, ebx
mov dword [esp + 0x2c], eax
je 0x3004674f
mov eax, dword [esi + 0x14]
jmp 0x30046758
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx]
call dword [eax + 0x78]
mov dword [esp + 0x3c], eax
xor edi, edi
xor ebx, ebx
mov dword [esp + 0x18], edi
mov dword [esp + 0x1c], edi
mov dword [esp + 0x24], edi
cmp dword [esp + 0x48], 0
mov eax, dword [esp + 0xc]
movzx eax, word [eax]
je 0x30046783
push dword [esp + 0x14]
call fcn.300274a4
movzx esi, ax
cmp si, word [esp + 0x50]
je 0x30046916
cmp dword [esp + 0x20], 0
mov eax, dword [esp + 0xc]
movzx eax, word [eax]
je 0x300467b2
cmp ax, 0x80
jb 0x300467af
push dword [esp + 0x14]
push eax
call fcn.3002747c
movzx eax, ax
movzx eax, ax
movzx ecx, ax
sub ecx, 0x30
cmp ecx, 9
jbe 0x30046916
cmp ax, 0x100
jbe 0x300467d8
push eax
call fcn.30026634
test eax, eax
jne 0x30046916
xor eax, eax
cmp dword [esp + 0x4c], eax
je 0x300467f9
cmp dword [esp + 0x34], eax
jne 0x300467f9
mov ecx, dword [esp + 0xc]
cmp word [ecx], 0x20ac
jne 0x300467f9
mov dword [esp + 0x34], 1
cmp dword [esp + 0x20], eax
je 0x300468a7
cmp dword [esp + 0x2c], eax
je 0x30046832
cmp dword [esp + 0x18], 0
jne 0x30046832
push dword [esp + 0x14]
lea eax, [esp + 0x10]
push dword [esp + 0x40]
push eax
mov eax, dword [esp + 0x60]
call fcn.30046d8d
test eax, eax
mov dword [esp + 0x18], eax
jne 0x300468cf
movzx eax, si
sub eax, 0x20
je 0x300468fc
sub eax, 5
je 0x300468f6
sub eax, 3
je 0x300468d6
sub eax, 3
je 0x300468e9
dec eax
dec eax
je 0x300468e6
xor eax, eax
cmp dword [esp + 0x4c], 0
je 0x30046d6c
cmp dword [esp + 0x34], 0
je 0x30046d6c
mov edx, dword [esp + 0x6c]
mov ecx, dword [edx]
xor esi, esi
sub ecx, esi
je 0x30046d18
dec ecx
jne 0x30046d48
cmp eax, esi
jne 0x30046d4f
mov dword [edx], 2
mov dword [esp + 0x2c], esi
jmp 0x30046d39
cmp dword [esp + 0x2c], eax
je 0x30046832
push dword [esp + 0x14]
lea eax, [esp + 0x10]
push dword [esp + 0x40]
push eax
mov eax, dword [esp + 0x60]
call fcn.30046d8d
test eax, eax
je 0x30046832
inc dword [esp + 0x18]
sub dword [esp + 0xc], 2
jmp 0x3004690c
mov eax, dword [esp + 0x24]
inc dword [esp + 0x24]
test eax, eax
jg 0x30046861
xor ebx, ebx
inc ebx
mov eax, edi
inc edi
test eax, eax
jg 0x30046861
jmp 0x3004690c
inc dword [esp + 0x1c]
jmp 0x3004690c
cmp dword [ebp + 0x20], 0
je 0x3004690c
cmp si, 0x20
je 0x30046861
add dword [esp + 0xc], 2
jmp 0x3004676c
cmp dword [esp + 0x48], 0
mov eax, dword [esp + 0xc]
movzx eax, word [eax]
je 0x3004692d
push dword [esp + 0x14]
call fcn.300274a4
movzx eax, ax
cmp ax, word [esp + 0x50]
jne 0x3004697f
cmp dword [esp + 0x20], 0
mov eax, dword [esp + 0xc]
movzx eax, word [eax + 2]
je 0x30046959
cmp ax, 0x80
jb 0x30046956
push dword [esp + 0x14]
push eax
call fcn.3002747c
movzx eax, ax
movzx eax, ax
movzx ecx, ax
sub ecx, 0x30
cmp ecx, 9
jbe 0x3004697f
cmp ax, 0x100
jbe 0x30046861
push eax
call fcn.30026634
test eax, eax
je 0x30046861
mov edi, dword [esp + 0x74]
lea eax, [esp + 0x40]
push eax
push dword [esp + 0x64]
lea eax, [esp + 0x14]
push dword [esp + 0x78]
push dword [esp + 0x44]
push dword [ebp + 0x34]
push edi
push dword [esp + 0x28]
push dword [ebp + 0x28]
push dword [ebp + 0x20]
push dword [esp + 0x38]
push dword [esp + 0x44]
push 1
push ebx
push eax
call fcn.30047158
mov esi, eax
test esi, esi
je 0x30046861
mov ebx, dword [esp + 0x14]
mov eax, dword [esp + 0xc]
movzx eax, word [eax]
xor edx, edx
cmp dword [esp + 0x20], edx
je 0x300469e6
cmp ax, 0x80
jb 0x300469e3
push ebx
push eax
call fcn.3002747c
xor edx, edx
movzx eax, ax
movzx eax, ax
cmp ax, dx
je 0x30046a82
cmp dword [esp + 0x4c], edx
je 0x30046a11
cmp dword [esp + 0x34], edx
jne 0x30046a11
mov eax, dword [esp + 0xc]
cmp word [eax], 0x20ac
jne 0x30046a11
mov dword [esp + 0x34], 1
cmp dword [esp + 0x2c], edx
jne 0x30046a39
push ebx
push dword [esp + 0x40]
lea eax, [esp + 0x14]
push eax
mov eax, dword [esp + 0x60]
call fcn.30046d8d
test eax, eax
je 0x30046a39
inc dword [esp + 0x18]
sub dword [esp + 0xc], 2
jmp 0x30046a78
cmp dword [esp + 0x48], 0
mov eax, dword [esp + 0xc]
movzx eax, word [eax]
je 0x30046a4d
push ebx
call fcn.300274a4
movzx eax, ax
movzx eax, ax
cmp eax, 0x20
je 0x30046a78
cmp eax, 0x25
je 0x30046a74
cmp eax, 0x29
jne 0x30046a68
dec dword [esp + 0x24]
jns 0x30046a78
mov eax, dword [esp + 0x10]
or dword [eax], 0xffffffff
jmp 0x30046861
inc dword [esp + 0x1c]
add dword [esp + 0xc], 2
jmp 0x300469c5
cmp dword [esp + 0x24], edx
jg 0x30046861
cmp dword [esp + 0x20], edx
je 0x30046a9d
xor eax, eax
cmp dword [esp + 0x18], edx
setne al
jmp 0x30046aa1
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
add eax, ecx
add eax, dword [ebp + 8]
cmp eax, 1
jg 0x30046861
mov eax, dword [esp + 0x38]
cmp dword [eax], 0xa
jne 0x30046ae4
cmp ecx, edx
je 0x30046acc
mov eax, dword [ebx]
mov ecx, ebx
or esi, 0xffffffff
call dword [eax + 0x68]
jmp 0x30046adc
cmp dword [esp + 0x18], edx
je 0x30046ae2
mov eax, dword [ebx]
mov ecx, ebx
or esi, 0xffffffff
call dword [eax + 0x6c]
mov dword [esp + 0x40], eax
jmp 0x30046ae4
mov dword [eax], edx
mov eax, dword [esp + 0x10]
cmp dword [eax], 0xffffffff
jne 0x30046d10
cmp dword [ebp + 0x24], 0
jne 0x30046d10
mov ebx, dword [esp + 0x64]
test ebx, ebx
je 0x30046d10
cmp dword [esp + 0x20], 0
je 0x30046be7
cmp dword [esp + 0x18], 2
jne 0x30046b29
xor eax, eax
test esi, esi
setl al
lea eax, [eax + eax + 0x25]
jmp 0x30046cf3
cmp dword [esp + 0x18], 3
jne 0x30046be7
mov edi, dword [esp + 0x14]
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x12c]
test eax, eax
je 0x30046b58
test esi, esi
jge 0x30046b51
mov esi, 0x30025f48
jmp 0x30046b66
mov esi, 0x30025f0c
jmp 0x30046b66
test esi, esi
mov esi, 0x30025fc8
jl 0x30046b66
mov esi, 0x30025f8c
push 0
lea ecx, [esp + 0x7c]
call fcn.30030952
push esi
call fcn.300301b6
test eax, eax
mov esi, 0x30022492
jge 0x30046b94
push 0
push esi
push 0x30356465
push esi
call dword [sym.imp.MSO.dll_Ordinal_3295]
test eax, eax
jne 0x30046b94
int3
push dword [esp + 0x10]
mov eax, dword [ebx]
push dword [esp + 0x60]
lea ecx, [esp + 0x80]
push edi
push ecx
mov ecx, ebx
call dword [eax + 4]
test eax, eax
jge 0x30046bc4
push 0
push esi
push 0x30356466
push esi
call dword [sym.imp.MSO.dll_Ordinal_3295]
test eax, eax
jne 0x30046bc4
int3
test byte [esp + 0x84], 1
je 0x30046d10
mov ecx, dword [esp + 0x80]
push dword [esp + 0x78]
mov eax, dword [ecx]
call dword [eax + 8]
jmp 0x30046d10
mov ecx, dword [esp + 0x14]
push 0x1c
call fcn.3013dcf3
test eax, eax
je 0x30046c4b
cmp dword [edi], 0xd
jne 0x30046c4b
xor eax, eax
cmp dword [esp + 0x18], eax
je 0x30046c10
xor ecx, ecx
cmp esi, eax
setl cl
lea ecx, [ecx + ecx + 0x29]
jmp 0x30046c40
cmp dword [esp + 0x1c], eax
je 0x30046c22
xor ecx, ecx
cmp esi, eax
setl cl
add ecx, 0x2c
jmp 0x30046c40
mov ecx, dword [esp + 0x38]
cmp dword [ecx], eax
je 0x30046c36
xor ecx, ecx
cmp esi, eax
setl cl
add ecx, 0x26
jmp 0x30046c40
xor ecx, ecx
cmp esi, eax
setl cl
add ecx, 0x24
mov eax, dword [esp + 0x10]
mov dword [eax], ecx
jmp 0x30046d10
mov eax, dword [edi]
xor ecx, ecx
cmp eax, ecx
je 0x30046cbc
cmp eax, 1
je 0x30046cbc
mov ecx, dword [esp + 0x14]
push 0x34
call fcn.3013dcf3
test eax, eax
jne 0x30046d10
push 0x10
push dword [edi]
lea eax, [esp + 0x29c]
push 3
push eax
call dword [sym.imp.MSO.dll_Ordinal_1955]
push dword [esp + 0x60]
and word [esp + eax*2 + 0x298], 0
push dword [esp + 0x14]
mov eax, dword [esp + 0x40]
push dword [esp + 0x64]
mov ecx, dword [esp + 0x20]
push ebx
push dword [edi]
push dword [eax]
lea eax, [esp + 0x2ac]
push dword [esp + 0x34]
push dword [esp + 0x5c]
push dword [esp + 0x38]
push eax
call fcn.30049baa
jmp 0x30046d10
cmp dword [esp + 0x18], ecx
je 0x30046ccf
xor eax, eax
cmp esi, ecx
setl al
lea eax, [eax + eax + 0xa]
jmp 0x30046cf3
cmp dword [esp + 0x1c], ecx
je 0x30046ce1
xor eax, eax
cmp esi, ecx
setl al
add eax, 0xd
jmp 0x30046cf3
mov eax, dword [esp + 0x38]
cmp dword [eax], ecx
je 0x30046cfb
xor eax, eax
cmp esi, ecx
setl al
add eax, 3
mov ecx, dword [esp + 0x10]
mov dword [ecx], eax
jmp 0x30046d10
cmp esi, ecx
jge 0x30046d10
mov eax, dword [esp + 0x10]
or dword [eax], 0xffffffff
mov eax, dword [esp + 0x68]
mov dword [eax], 1
xor eax, eax
inc eax
jmp 0x30046863
cmp eax, esi
jne 0x30046d6c
xor eax, eax
inc eax
lea ecx, [esp + 0x28]
mov dword [edx], eax
mov word [esp + 0x28], 0x20ac
mov word [esp + 0x2a], si
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x44]
mov eax, dword [eax]
mov dword [esp + 0xc], eax
jmp 0x3004675c
dec ecx
jne 0x30046d6c
cmp eax, esi
je 0x30046d6a
mov edi, dword [esp + 0x10]
mov ecx, dword [edi]
cmp ecx, 0xc
je 0x30046d5f
cmp ecx, 0xa
jne 0x30046d6a
cmp dword [esp + 0x58], esi
jne 0x30046d6c
or dword [edi], 0xffffffff
jmp 0x30046d6c
mov dword [edx], esi
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0xc]
pop edi
mov dword [ecx], edx
mov ecx, dword [esp + 0x298]
pop esi
pop ebx
xor ecx, esp
call fcn.3020156b
mov esp, ebp
pop ebp
ret 0x44