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

Disassembly:
push ebp
lea ebp, [esp - 0x78]
sub esp, 0x1c4
cmp dword [0x301e3340], 5
mov eax, dword [section..cdata]
mov dword [ebp + 0x74], eax
jl 0x3007f59d
mov eax, dword [0x301e4920]
mov ecx, dword [eax + 0x140]
mov dword [ebp - 0x118], ecx
mov ecx, dword [eax + 0x144]
mov dword [ebp - 0x114], ecx
mov ecx, dword [eax + 0x148]
mov dword [ebp - 0x110], ecx
mov eax, dword [eax + 0x14c]
push ebx
push esi
push edi
mov dword [ebp - 0x10c], eax
lea eax, [ebp - 0x118]
push eax
push 0x10
push 0x1002
call fcn.3004131e
xor ebx, ebx
push ebx
push ebx
push ebx
push 0xd
call fcn.300467c7
push ebx
push ebx
push 0x1033
call fcn.3004131e
call fcn.30046274
cmp dword [0x301e3340], 5
jl 0x300444f3
mov eax, dword [0x301e4920]
mov cx, word [eax + 0x258]
mov word [ebp - 0xf8], cx
mov ax, word [eax + 0x25c]
mov word [ebp - 0xf6], ax
lea eax, [ebp - 0xf8]
push eax
push 4
push 0xa0
call fcn.3004131e
cmp dword [0x301e3340], 6
jl 0x3004452c
mov eax, dword [0x301e4920]
mov ecx, dword [eax + 0x15f4]
mov dword [ebp - 0xfc], ecx
mov eax, dword [eax + 0x15f8]
mov dword [ebp - 0xf8], eax
lea eax, [ebp - 0xfc]
push eax
push 8
push 0x1064
call fcn.3004131e
mov edx, dword [0x301e4920]
add edx, 0x160
push edx
call fcn.30045b24
test eax, eax
je 0x3007f5e3
call fcn.30043f5c
cmp dword [0x301e3340], 2
mov esi, dword [0x301e4920]
je 0x3007f692
mov edi, dword [esi + 0x444]
cmp edi, ebx
jne 0x3007f61f
cmp dword [0x301e3340], 5
jl 0x3007f707
push 4
lea eax, [ebp - 0xf0]
push eax
xor edi, edi
push edi
call fcn.30056452
mov ax, word [esi + 0x268]
shr eax, 0xa
xor al, byte [ebp - 0xf0]
and eax, 1
xor word [ebp - 0xf0], ax
mov eax, dword [0x301e491c]
mov ax, word [eax + 0xf0]
shr ax, 2
add eax, eax
xor al, byte [ebp - 0xf0]
and eax, 2
xor word [ebp - 0xf0], ax
mov ax, word [esi + 0x26a]
not ax
shl eax, 2
xor al, byte [ebp - 0xf0]
and eax, 4
xor word [ebp - 0xf0], ax
mov ax, word [esi + 0x268]
shr ax, 0xb
shl eax, 3
not eax
xor al, byte [ebp - 0xf0]
and eax, 8
xor word [ebp - 0xf0], ax
cmp dword [0x301e3340], 6
jl 0x3004462c
mov ax, word [esi + 0x268]
mov ecx, dword [ebp - 0xf0]
shr ax, 0xf
and ecx, 0xffffffef
shl eax, 4
or eax, ecx
mov word [ebp - 0xf0], ax
mov ax, word [esi + 0x268]
shr eax, 0xc
and al, 3
mov byte [ebp - 0xee], al
lea eax, [ebp - 0xf0]
push eax
push 4
push 0x1044
call fcn.3004131e
cmp dword [0x301e3340], 6
jl 0x30044674
push 2
push dword [0x301e4698]
call fcn.30045ff9
push 3
push dword [0x301e4698]
call fcn.30045ff9
mov eax, dword [0x301e4920]
push dword [eax + 0x448]
push 0x1046
call fcn.30045846
mov esi, dword [0x301e4920]
cmp dword [esi + 0x448], edi
mov dword [ebp - 0xf4], edi
jle 0x30044855
mov dword [ebp - 0xf8], edi
mov dword [ebp - 0x104], 0x15e8
mov eax, dword [ebp - 0xf8]
lea ebx, [eax + esi + 0x44c]
mov ax, word [ebp - 0xf4]
mov word [ebp - 0x12c], ax
push dword [esi + 0x158]
mov eax, dword [ebx + 0x18]
sub eax, dword [esi + 0x150]
mov esi, dword [sym.imp.KERNEL32.dll_MulDiv]
mov edi, 0xfa0
push edi
push eax
call esi
mov dword [ebp - 0x12a], eax
mov eax, dword [0x301e4920]
push dword [eax + 0x15c]
mov ecx, dword [ebx + 0x1c]
sub ecx, dword [eax + 0x154]
push edi
push ecx
call esi
mov dword [ebp - 0x126], eax
mov eax, dword [0x301e4920]
push dword [eax + 0x158]
push edi
push dword [ebx + 0x20]
call esi
mov dword [ebp - 0x122], eax
mov eax, dword [0x301e4920]
push dword [eax + 0x15c]
push edi
push dword [ebx + 0x24]
call esi
mov dword [ebp - 0x11e], eax
lea eax, [ebp - 0x12c]
push eax
push 0x12
push 0x1041
call fcn.3004131e
xor esi, esi
push esi
push esi
push 0x1033
call fcn.3004131e
push esi
push dword [ebp - 0xf4]
push esi
push esi
call fcn.300467c7
cmp dword [0x301e3340], 6
push 5
lea esi, [ebx + 4]
pop ecx
lea edi, [ebp - 0x14c]
rep movsd dword es:[edi], dword [esi]
jl 0x3007f6a9
xor esi, esi
lea eax, [ebp - 0x14c]
push eax
call fcn.300443df
push esi
push ebx
call fcn.30046576
mov eax, dword [0x301e4920]
mov cl, byte [eax + 0x268]
mov edi, 0xff
mov dword [ebp - 0x100], esi
test di, cx
jbe 0x3004480b
mov dword [ebp - 0x108], 0x40c
mov ecx, dword [ebp - 0x108]
mov edx, dword [ecx + eax]
cmp dword [edx + 0x24], ebx
jne 0x300447ee
test byte [edx + 1], 0x20
jne 0x300447ee
push esi
push dword [ebp - 0xf4]
push esi
push 5
call fcn.30044de7
push edx
call fcn.30044ea4
mov eax, dword [0x301e4920]
mov cl, byte [eax + 0x268]
inc dword [ebp - 0x100]
add dword [ebp - 0x108], 4
and ecx, edi
cmp dword [ebp - 0x100], ecx
jl 0x300447c0
mov ecx, dword [ebp - 0x104]
push dword [eax + ecx]
push esi
call fcn.30044992
push esi
push esi
push 0x1034
call fcn.3004131e
inc dword [ebp - 0xf4]
mov esi, dword [0x301e4920]
mov eax, dword [ebp - 0xf4]
add dword [ebp - 0x104], 4
add dword [ebp - 0xf8], 0x8c8
cmp eax, dword [esi + 0x448]
jl 0x300446b1
cmp dword [0x301e4520], 2
jne 0x3004486b
test byte [esi + 0x37c], 0x40
jne 0x3007f76d
call fcn.3002bbe0
test eax, eax
jne 0x3007f77e
mov eax, dword [0x301e4920]
mov cl, byte [eax + 0x268]
and dword [ebp - 0x100], 0
test cx, 0xff
jbe 0x300448d5
mov dword [ebp - 0xf8], 0x40c
mov ecx, dword [ebp - 0xf8]
mov edi, dword [ecx + eax]
mov esi, dword [edi + 0x208]
xor ebx, ebx
test esi, esi
jne 0x3007f7a5
mov cl, byte [eax + 0x268]
inc dword [ebp - 0x100]
add dword [ebp - 0xf8], 4
and ecx, 0xff
cmp dword [ebp - 0x100], ecx
jl 0x3004489b
push dword [0x301e491c]
call fcn.30053e22
test eax, eax
jne 0x3007f7e7
mov eax, dword [0x301e4920]
and dword [ebp - 0x108], 0
mov ebx, dword [eax + 0x434]
test ebx, ebx
je 0x30044942
mov eax, dword [ebx + 4]
test eax, eax
je 0x30044920
mov ax, word [eax + 4]
and ah, 0x3f
cmp ax, 4
je 0x3007f805
cmp ax, 8
je 0x3007f805
and dword [ebp - 0xf8], 0
mov eax, dword [ebx + 8]
test eax, eax
mov dword [ebp - 0xf4], eax
jne 0x3007f814
inc dword [ebp - 0x108]
mov ebx, dword [ebx]
jmp 0x300448fa
mov eax, dword [0x301e4920]
mov esi, dword [eax + 0x440]
test esi, esi
jne 0x3007fa8d
mov eax, dword [0x301e4920]
push dword [eax + 0x15e4]
push 0xd
call fcn.30044992
xor esi, esi
push esi
push esi
push 0x1034
call fcn.3004131e
cmp dword [0x301e3340], 5
jl 0x3007fb00
mov ecx, dword [ebp + 0x74]
pop edi
pop esi
pop ebx
call fcn.30056b36
add ebp, 0x78
leave
ret
push 0x50
pop eax
mov dword [ebp - 0x118], eax
mov dword [ebp - 0x114], eax
mov eax, dword [0x301e4920]
push dword [eax + 0x158]
call fcn.3015b16c
movsx eax, ax
imul eax, eax, 0x14
mov dword [ebp - 0x110], eax
mov eax, dword [0x301e4920]
push dword [eax + 0x15c]
call fcn.3015a06f
movsx eax, ax
imul eax, eax, 0x14
jmp 0x3004447d
cmp dword [0x301e3340], 5
jg 0x3007f609
mov eax, dword [0x301e491c]
test byte [eax + 0xf1], 4
je 0x3007f609
lea eax, [ebp - 0x74]
push eax
call fcn.300117b9
lea eax, [ebp - 0x74]
push eax
jmp 0x3007f615
push ebx
push ebx
push 2
push 7
call fcn.30044de7
push edx
call fcn.30044ac7
jmp 0x30044546
mov ax, word [edi + 8]
mov ebx, eax
and ebx, 0x1f
cmp dword [0x301e3340], 4
jg 0x3007f657
cmp dword [edi + 0x10], 0xffffffff
jne 0x3007f657
test byte [edi + 7], 8
jne 0x3007f657
mov cl, al
and cl, 0x1f
cmp cl, 4
jne 0x3007f657
and al, 0xe0
mov word [edi + 8], ax
mov dword [0x301e3f5c], 1
push 0
push dword [edi + 0x10]
push dword [edi + 0xc]
push 0xe
call fcn.30044de7
push 0
push dword [edi + 0xc]
push edi
call fcn.300449ed
mov al, byte [edi + 8]
xor al, bl
and eax, 0x1f
xor word [edi + 8], ax
mov edi, dword [edi + 0x104]
test edi, edi
jne 0x3007f61f
mov esi, dword [0x301e4920]
jmp 0x3004456c
cmp dword [esi + 0x444], ebx
je 0x3007f707
mov dword [0x301e3f5c], 1
jmp 0x3004456c
mov eax, dword [0x301e4698]
mov cx, word [eax + 4]
and ch, 0x3f
cmp cx, 3
jne 0x30044786
xor esi, esi
cmp dword [eax + 0x4d8], esi
jle 0x30044788
mov ecx, dword [eax + 0x4d4]
cmp ecx, esi
mov edx, dword [eax + 0x5e4]
jle 0x3007f6ec
mov eax, dword [eax + 0x4d0]
mov eax, dword [eax + ecx*4 - 4]
mov eax, dword [eax + 0x3c]
jmp 0x3007f6ee
xor eax, eax
add eax, 0x64
push eax
add edx, 0x64
push edx
lea eax, [ebp - 0x14c]
push eax
call fcn.3015a0b8
jmp 0x30044788
mov al, byte [esi + 0x268]
xor ebx, ebx
mov dword [ebp - 0xf8], ebx
test ax, 0xff
jbe 0x30044855
mov edi, 0x40c
mov eax, dword [edi + esi]
test byte [eax + 1], 0x20
jne 0x3007f74a
xor ecx, ecx
inc ecx
cmp dword [ebp - 0xf8], ecx
jg 0x3007f762
inc dword [ebp - 0xf8]
push eax
call fcn.30044ea4
mov esi, dword [0x301e4920]
mov al, byte [esi + 0x268]
inc ebx
add edi, 4
and eax, 0xff
cmp ebx, eax
jl 0x3007f724
jmp 0x30044855
mov dword [0x301e3f5c], ecx
jmp 0x30044855
add esi, 0x26c
push esi
call fcn.3018671d
jmp 0x3004486b
xor eax, eax
push eax
push eax
push eax
push 2
call fcn.30044de7
mov eax, dword [0x301e4920]
add eax, 0x1654
push eax
push dword [0x301e4698]
call fcn.30045b45
jmp 0x30044878
cmp byte [esi + 0x13d], 0xff
jne 0x3007f7c3
push 0
push ebx
push 3
push 2
call fcn.30044de7
push esi
push edi
call fcn.30045b45
jmp 0x3007f7d2
cmp dword [0x301e3340], 2
je 0x3007f7d2
push esi
call fcn.30186264
mov esi, dword [esi + 0x110]
inc ebx
test esi, esi
jne 0x3007f7a5
mov eax, dword [0x301e4920]
jmp 0x300448b4
cmp dword [0x301e3340], 5
jge 0x300448e8
push 0x301e3f5c
push 2
call fcn.30140e63
jmp 0x300448e8
mov dword [ebp - 0xf8], 1
jmp 0x30044927
and dword [ebp - 0x104], 0
cmp dword [0x301e3340], 4
mov esi, dword [ebp - 0xf4]
jg 0x3007f867
cmp dword [esi + 0x118], 0xffffffff
jne 0x3007f867
mov eax, dword [ebx + 4]
test eax, eax
je 0x3007f867
mov ax, word [eax + 4]
cmp ax, 4
je 0x3007f84a
cmp ax, 8
jne 0x3007f856
mov al, byte [esi + 0x11e]
and al, 0x1f
cmp al, 4
je 0x3007f867
mov dword [0x301e3f5c], 1
xor esi, esi
jmp 0x3007fa7a
mov al, byte [ebp - 0x108]
mov byte [esi + 0x115], al
mov edx, dword [0x301e3340]
cmp edx, 6
jge 0x3007f8ca
mov eax, dword [ebx + 4]
mov cx, word [eax + 4]
and ch, 0x3f
cmp cx, 3
jne 0x3007f8ca
cmp dword [eax + 0x4d8], 0
jle 0x3007f8ca
mov cl, byte [esi + 0x114]
and cl, 0x3c
cmp cl, 0x10
jne 0x3007f8ca
cmp dword [esi + 0x118], 0xffffffff
je 0x3007f8ca
mov cx, word [esi + 0x11e]
and cx, 0x1e0
cmp cx, 0x140
jne 0x3007f8ca
push esi
push eax
call fcn.30186c2c
jmp 0x3007f860
cmp edx, 5
mov esi, dword [ebp - 0xf4]
push 0x58
pop ecx
lea edi, [ebp - 0xec]
rep movsd dword es:[edi], dword [esi]
jne 0x3007f99b
mov esi, dword [ebx + 4]
cmp word [esi + 4], 1
jne 0x3007f99b
test byte [esi], 2
je 0x3007f99b
mov edi, dword [ebp + 0x2c]
push esi
call fcn.300293c9
cmp edi, 0xffffffff
jne 0x3007f91e
test eax, eax
je 0x3007f919
mov eax, dword [esi + 0x24]
mov edi, dword [eax + 0x894]
dec edi
jmp 0x3007f93a
mov edi, dword [esi + 0xc]
jmp 0x3007f916
test eax, eax
je 0x3007f92d
mov eax, dword [esi + 0x24]
mov eax, dword [eax + 0x894]
jmp 0x3007f930
mov eax, dword [esi + 0xc]
dec eax
push eax
push edi
call fcn.30055f82
mov edi, eax
lea eax, [ebp - 0x100]
push eax
lea eax, [ebp - 0xec]
push eax
mov eax, dword [0x301e4404]
add eax, eax
push eax
call fcn.3000ed8a
neg eax
push eax
mov eax, dword [0x301e4400]
add eax, eax
push eax
call fcn.3000ed8a
push eax
push esi
push ebx
call fcn.3015a210
push eax
push edi
push esi
call fcn.301666a1
mov al, byte [esi]
xor ecx, ecx
shr eax, 2
and eax, 1
cmp dword [ebp - 0x100], ecx
sete cl
xor eax, ecx
je 0x3007f99b
mov eax, dword [ebp - 0xe2]
neg eax
mov word [ebp - 0xe2], ax
mov eax, dword [ebp + 0x32]
mov ecx, eax
and ecx, 0x1f
cmp cx, 0x10
jne 0x3007f9f0
test byte [ebx + 0x1c], 7
jne 0x3007f9f0
xor esi, esi
cmp dword [ebp - 0xf8], esi
je 0x3007f9c6
and al, 0xe4
or al, 4
mov word [ebp + 0x32], ax
jmp 0x3007fa49
cmp dword [0x301e3340], 6
jl 0x3007fa49
push 0xc
lea eax, [ebp - 0x138]
push eax
push esi
mov dword [ebp - 0x104], 1
call fcn.30056452
lea eax, [ebp - 0x138]
jmp 0x3007fa32
xor esi, esi
cmp dword [ebp - 0xf8], esi
je 0x3007fa49
cmp cx, 4
jne 0x3007fa49
cmp dword [0x301e3340], 6
jl 0x3007fa49
test byte [ebx + 0x1c], 7
jne 0x3007fa49
or byte [ebp + 0x33], 0x10
push 0xc
lea eax, [ebp - 0x128]
push eax
push esi
mov dword [ebp - 0x104], 1
call fcn.30056452
lea eax, [ebp - 0x128]
push eax
push 0xc
push 0x86a
call fcn.3004131e
push esi
push esi
push esi
push 0x12
call fcn.30185e16
movzx eax, word [ebp + 0x28]
shr eax, 8
push eax
push dword [ebp + 0x2c]
push 5
push 2
call fcn.30044de7
lea eax, [ebp - 0xec]
push eax
push esi
call fcn.30045b45
cmp dword [ebp - 0x104], esi
je 0x3007fa7a
push esi
push 0x12
call fcn.30044992
mov eax, dword [ebp - 0xf4]
mov eax, dword [eax + 0x110]
cmp eax, esi
jmp 0x3004492c
xor edi, edi
inc edi
mov ax, word [esi + 0x11e]
mov ebx, eax
and ebx, 0x1f
cmp dword [0x301e3340], 4
jg 0x3007fac1
cmp dword [esi + 0x118], 0xffffffff
jne 0x3007fac1
and al, 0x1f
cmp al, 4
jne 0x3007fac1
mov dword [0x301e3f5c], edi
and byte [esi + 0x11e], 0xe0
movzx eax, byte [esi + 0x115]
push eax
push dword [esi + 0x118]
push edi
push 2
call fcn.30044de7
push esi
push 0
call fcn.30045b45
mov al, byte [esi + 0x11e]
xor al, bl
and eax, 0x1f
xor word [esi + 0x11e], ax
mov esi, dword [esi + 0x110]
test esi, esi
jne 0x3007fa90
jmp 0x30044955
mov dword [0x301e3f98], esi
mov dword [0x301e3f94], esi
jmp 0x30044982