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

Disassembly:
sub esp, 0x200
push ebx
push esi
mov esi, ecx
mov eax, dword [esi + 0x44]
push edi
mov edi, dword [eax + 0x18]
mov dword [esp + 0x10], eax
mov eax, dword [edi + 0x70]
xor ebx, ebx
cmp eax, ebx
mov dword [esp + 0xc4], edi
je 0x30167ac3
mov eax, dword [edi + 0x68]
push ebp
mov ebp, dword [edi + 8]
mov dword [esp + 0x20], ebx
mov dword [esp + 0x24], ebx
mov dword [esp + 0x28], SysStringLen
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x30], ebx
mov dword [esp + 0x34], ebx
mov dword [esp + 0x38], ebx
mov dword [esp + 0x3c], ebx
mov byte [esp + 0x40], bl
mov ecx, dword [edi + 0x74]
mov edx, dword [edi + 0x70]
push ecx
push ebx
push edx
lea ecx, [esp + 0x2c]
mov dword [esp + 0xc0], ebp
mov dword [esp + 0x28], eax
call fcn.300dfc60
cmp byte [edi + 0x7e], 0x22
jne 0x30167470
add dword [esp + 0x24], 2
cmp ebp, ebx
mov dword [esp + 0xcc], ebx
mov dword [esp + 0xd0], ebx
mov dword [esp + 0xd4], SysStringLen
mov dword [esp + 0xd8], ebx
mov dword [esp + 0xdc], ebx
mov dword [esp + 0xe0], ebx
mov dword [esp + 0xe4], ebx
mov dword [esp + 0xe8], ebx
mov byte [esp + 0xec], bl
je 0x301674c9
mov eax, dword [edi + 0xc]
push eax
push ebx
push ebp
lea ecx, [esp + 0xd8]
call fcn.300dfc60
mov ecx, dword [esi + 0x10]
mov edx, dword [ecx + 0x18]
mov edi, dword [edx + 0x10]
mov eax, dword [edi + 8]
push 4
lea ecx, [esp + 0x98]
mov dword [esp + 0x1c], edi
mov dword [esp + 0x9c], ebx
mov dword [esp + 0xa0], ebx
mov dword [esp + 0x98], ebx
mov dword [esp + 0xa4], eax
call fcn.30182f10
mov eax, dword [edi + 8]
push 4
lea ecx, [esp + 0xbc]
mov dword [esp + 0xc0], ebx
mov dword [esp + 0xc4], ebx
mov dword [esp + 0xbc], ebx
mov dword [esp + 0xc8], eax
call fcn.30182f10
mov eax, dword [edi + 8]
push 4
lea ecx, [esp + 0x88]
mov dword [esp + 0x8c], ebx
mov dword [esp + 0x90], ebx
mov dword [esp + 0x88], ebx
mov dword [esp + 0x94], eax
call fcn.30182f10
mov edi, dword [edi + 8]
push 4
lea ecx, [esp + 0xa8]
mov dword [esp + 0xac], ebx
mov dword [esp + 0xb0], ebx
mov dword [esp + 0xa8], ebx
mov dword [esp + 0xb4], edi
call fcn.30182f10
push 4
lea ecx, [esp + 0x78]
mov dword [esp + 0x7c], ebx
mov dword [esp + 0x80], ebx
mov dword [esp + 0x78], ebx
mov dword [esp + 0x84], ebx
call fcn.30191310
push 4
lea ecx, [esp + 0x48]
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x50], ebx
mov dword [esp + 0x48], ebx
mov dword [esp + 0x54], ebx
call fcn.30191310
push 4
lea ecx, [esp + 0x58]
mov dword [esp + 0x5c], ebx
mov dword [esp + 0x60], ebx
mov dword [esp + 0x58], ebx
mov dword [esp + 0x64], ebx
call fcn.30191310
push 4
lea ecx, [esp + 0x68]
mov dword [esp + 0x6c], ebx
mov dword [esp + 0x70], ebx
mov dword [esp + 0x68], ebx
mov dword [esp + 0x74], ebx
call fcn.30191310
lea esp, [esp]
mov eax, dword [esp + 0x24]
cmp eax, ebx
jl 0x30167618
mov ecx, dword [esp + 0x28]
cmp ecx, 0xffffffff
je 0x30167642
lea edx, [eax + 1]
cmp edx, ecx
jle 0x30167642
mov eax, dword [esi + 0x10]
mov ecx, dword [eax + 8]
mov edx, dword [ecx + 0x4c]
mov eax, dword [edx + 0x54]
cmp eax, ebx
jne 0x3016762f
push 0x15
call fcn.301c9d79
push ebx
push ebx
push ebx
push 0x453
mov ecx, eax
call fcn.301ca83b
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x20]
mov cl, byte [eax + ecx]
inc eax
cmp cl, bl
mov byte [esp + 0x13], cl
mov dword [esp + 0x24], eax
je 0x30167929
lea ecx, [esp + 0xf0]
call fcn.300453e0
mov eax, dword [esp + 0x24]
mov ebp, dword [esp + 0x20]
lea edi, [eax + ebp]
add eax, 2
mov dword [esp + 0x24], eax
mov dword [esp + 0x1cc], 0xe
xor edx, edx
mov dh, byte [edi + 1]
lea ecx, [eax + ebp]
mov ebp, dword [esp + 0x14]
add eax, 2
mov dl, byte [edi]
mov dword [esp + 0x24], eax
xor eax, eax
mov ah, byte [ecx + 1]
mov edi, edx
mov al, byte [ecx]
add eax, dword [ebp + 0x1c]
lea ecx, [esp + 0xf0]
push ecx
lea ecx, [esp + 0x24]
mov dword [esp + 0x1dc], eax
call fcn.300e1a80
mov edx, dword [esp + 0xc8]
cmp byte [edx + 0x7e], 0x22
jne 0x301676de
push 1
lea eax, [esp + 0x110]
push eax
lea ecx, [esp + 0x28]
call fcn.300e1bd0
jmp 0x3016770a
cmp dword [esp + 0xb4], ebx
je 0x301676fe
push ebx
lea ecx, [esp + 0x110]
push ecx
lea ecx, [esp + 0xd4]
call fcn.300e1bd0
jmp 0x3016770a
lea ecx, [esp + 0x10c]
call fcn.300ad070
test byte [esp + 0x13], 0x10
je 0x30167752
mov ecx, dword [esp + 0x1cc]
or ecx, 0x100
push 0xc
mov dword [esp + 0x1d0], ecx
call fcn.3007a1f0
add esp, 4
cmp eax, ebx
je 0x3016773d
mov dword [eax + 4], ebx
mov dword [eax], ebx
mov dword [eax + 8], ebx
jmp 0x3016773f
xor eax, eax
lea edx, [esp + 0x20]
push edx
mov ecx, eax
mov dword [esp + 0x204], eax
call fcn.30083dc0
test byte [esp + 0x13], 0x20
je 0x30167772
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x20]
mov dl, byte [eax + ecx]
inc eax
mov byte [esp + 0x1fd], dl
mov dword [esp + 0x24], eax
jmp 0x3016777a
mov byte [esp + 0x1fd], 1
push edi
mov edi, dword [esp + 0x20]
mov ecx, edi
call fcn.300e0cd0
cmp eax, ebx
mov dword [esp + 0x1d0], eax
je 0x301678ef
test byte [esp + 0x13], 1
je 0x301677ec
mov ecx, dword [edi + 0xdc]
lea eax, [esp + 0xf0]
push eax
push ebp
add ecx, 0x144
call fcn.300be840
cmp eax, ebx
mov ebp, dword [esp + 0x18]
je 0x301677f0
push ebx
push eax
mov ecx, ebp
call fcn.3018ab40
cmp eax, ebx
je 0x301677f0
push eax
lea ecx, [esp + 0x78]
push ecx
lea edx, [esp + 0x9c]
push edx
call fcn.30167320
add esp, 0xc
push ebx
push ebx
mov ecx, esi
call fcn.30166e80
jmp 0x301677f0
mov ebp, dword [esp + 0x18]
test byte [esp + 0x13], 2
je 0x30167845
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0xf0]
push eax
push ecx
mov ecx, dword [edi + 0xdc]
add ecx, 0x144
call fcn.300be840
cmp eax, ebx
je 0x30167845
push ebx
push eax
mov ecx, ebp
call fcn.3018ab40
cmp eax, ebx
je 0x30167845
push eax
lea edx, [esp + 0x48]
push edx
lea eax, [esp + 0xc0]
push eax
call fcn.30167320
add esp, 0xc
push ebx
push ebx
mov ecx, esi
call fcn.30166e80
test byte [esp + 0x13], 4
je 0x3016789a
mov edx, dword [esp + 0x14]
lea ecx, [esp + 0xf0]
push ecx
mov ecx, dword [edi + 0xdc]
push edx
add ecx, 0x144
call fcn.300be840
cmp eax, ebx
je 0x3016789a
push ebx
push eax
mov ecx, ebp
call fcn.3018ab40
cmp eax, ebx
je 0x3016789a
push eax
lea eax, [esp + 0x58]
push eax
lea ecx, [esp + 0x8c]
push ecx
call fcn.30167320
add esp, 0xc
push ebx
push ebx
mov ecx, esi
call fcn.30166e80
test byte [esp + 0x13], 8
je 0x301678ef
mov eax, dword [esp + 0x14]
mov ecx, dword [edi + 0xdc]
lea edx, [esp + 0xf0]
push edx
push eax
add ecx, 0x144
call fcn.300be840
cmp eax, ebx
je 0x301678ef
push ebx
push eax
mov ecx, ebp
call fcn.3018ab40
cmp eax, ebx
je 0x301678ef
push eax
lea ecx, [esp + 0x68]
push ecx
lea edx, [esp + 0xac]
push edx
call fcn.30167320
add esp, 0xc
push ebx
push ebx
mov ecx, esi
call fcn.30166e80
mov eax, dword [esp + 0x1cc]
test ah, 1
je 0x3016791d
mov ecx, dword [esp + 0x200]
cmp ecx, ebx
mov edi, ecx
je 0x30167916
call fcn.30083d50
push edi
call fcn.30208320
add esp, 4
mov dword [esp + 0x200], ebx
mov dword [esp + 0x1e4], ebx
jmp 0x30167600
lea eax, [esp + 0x94]
push eax
mov ecx, esi
call fcn.30166d40
lea ecx, [esi + 0x68]
mov edx, ecx
push eax
and edx, 0xfffff000
mov edi, dword [edx]
push ecx
push ecx
mov ecx, edi
call fcn.300184c0
push eax
mov ecx, edi
call fcn.3020a1b0
lea eax, [esp + 0xb8]
push eax
mov ecx, esi
call fcn.30166d40
lea ecx, [esi + 0x6c]
mov edx, ecx
push eax
and edx, 0xfffff000
mov edi, dword [edx]
push ecx
push ecx
mov ecx, edi
call fcn.300184c0
push eax
mov ecx, edi
call fcn.3020a1b0
lea eax, [esp + 0x84]
push eax
mov ecx, esi
call fcn.30166d40
lea ecx, [esi + 0x70]
mov edx, ecx
push eax
and edx, 0xfffff000
mov edi, dword [edx]
push ecx
push ecx
mov ecx, edi
call fcn.300184c0
push eax
mov ecx, edi
call fcn.3020a1b0
lea eax, [esp + 0xa4]
push eax
mov ecx, esi
call fcn.30166d40
lea ecx, [esi + 0x74]
mov edx, ecx
push eax
and edx, 0xfffff000
mov esi, dword [edx]
push ecx
push ecx
mov ecx, esi
call fcn.300184c0
push eax
mov ecx, esi
call fcn.3020a1b0
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
mov ecx, dword [ecx + 0xdc]
push ebx
push 1
push eax
add ecx, 0x144
call fcn.300c0990
mov ecx, dword [esp + 0x70]
cmp ecx, ebx
pop ebp
je 0x30167a13
mov edx, dword [esp + 0x60]
push edx
call fcn.302095c0
jmp 0x30167a20
mov eax, dword [esp + 0x60]
push eax
call fcn.30208320
add esp, 4
mov ecx, dword [esp + 0x5c]
cmp ecx, ebx
mov dword [esp + 0x60], ebx
je 0x30167a38
mov edx, dword [esp + 0x50]
push edx
call fcn.302095c0
jmp 0x30167a45
mov eax, dword [esp + 0x50]
push eax
call fcn.30208320
add esp, 4
mov ecx, dword [esp + 0x4c]
cmp ecx, ebx
mov dword [esp + 0x50], ebx
je 0x30167a5d
mov edx, dword [esp + 0x40]
push edx
call fcn.302095c0
jmp 0x30167a6a
mov eax, dword [esp + 0x40]
push eax
call fcn.30208320
add esp, 4
mov ecx, dword [esp + 0x7c]
cmp ecx, ebx
mov dword [esp + 0x40], ebx
je 0x30167a82
mov edx, dword [esp + 0x70]
push edx
call fcn.302095c0
jmp 0x30167a8f
mov eax, dword [esp + 0x70]
push eax
call fcn.30208320
add esp, 4
lea ecx, [esp + 0xa0]
mov dword [esp + 0x70], ebx
call fcn.3016ba70
lea ecx, [esp + 0x80]
call fcn.3016ba70
lea ecx, [esp + 0xb4]
call fcn.3016ba70
lea ecx, [esp + 0x90]
call fcn.3016ba70
pop edi
pop esi
pop ebx
add esp, 0x200
ret