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

Disassembly:
sub esp, 0x88
mov eax, dword [esp + 0x8c]
mov ecx, dword [eax]
mov eax, dword [ecx]
push ebx
push ebp
push esi
xor esi, esi
push edi
mov dword [esp + 0x1c], esi
mov dword [esp + 0x44], eax
mov dword [esp + 0x20], esi
mov dword [esp + 0x24], esi
cmp word [esp + 0xac], si
je 0x49bdf4
test byte [eax + 0x40], 0x80
je 0x49bdf4
xor al, al
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x88
ret
mov edx, dword [esp + 0xa0]
movzx eax, word [edx]
mov dword [esp + 0x74], eax
cmp ax, 0x3f
ja 0x49bde7
movzx ecx, ax
mov eax, 1
xor edx, edx
mov byte [esp + 0x15], 1
mov dword [esp + 0x38], ecx
call fcn.005ad010
add eax, 0xffffffff
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0xa8]
adc edx, 0xffffffff
and eax, 0x800
mov dword [esp + 0x64], edx
mov dword [esp + 0x50], esi
mov dword [esp + 0x54], esi
mov dword [esp + 0x48], esi
mov dword [esp + 0x4c], esi
mov dword [esp + 0x40], 0x182
mov dword [esp + 0x70], eax
je 0x49be60
mov dword [esp + 0x40], 0x183
mov dword [esp + 0x3c], esi
jmp 0x49be70
mov eax, dword [esp + 0x24]
cmp eax, dword [esp + 0x64]
ja 0x49c49c
jb 0x49be8e
mov ecx, dword [esp + 0x20]
cmp ecx, dword [esp + 0x60]
jae 0x49c49c
movzx eax, word [esp + 0xac]
mov ecx, dword [esp + 0x3c]
cmp ecx, eax
jg 0x49c49c
test ecx, ecx
jle 0x49beb8
mov edx, dword [esp + 0x1c]
mov esi, dword [edx + 8]
mov edx, dword [edx + 0xc]
or dword [esp + 0x48], esi
or dword [esp + 0x4c], edx
cmp ecx, eax
jge 0x49bedd
cmp word [esp + 0x70], 0
mov eax, dword [esp + 0xa4]
mov edx, dword [eax + 0x18]
mov eax, dword [edx + ecx*4]
mov dword [esp + 0x1c], eax
jne 0x49c485
mov ecx, eax
jmp 0x49bee8
mov ecx, dword [esp + 0xb0]
mov dword [esp + 0x1c], ecx
test dword [ecx + 0x24], 0x400
jne 0x49c496
movzx eax, byte [ecx + 0x10]
mov ebp, dword [esp + 0x9c]
xor edx, edx
lea eax, [eax + eax*4]
mov word [ecx + 0x1e], dx
mov edx, dword [ebp + 4]
shl eax, 4
cmp dword [esp + 0x38], 0
mov eax, dword [eax + edx + 0x38]
mov dword [esp + 0x34], eax
mov dword [esp + 0x18], 0
jle 0x49c078
mov ecx, dword [esp + 0xa0]
add ecx, 8
mov dword [esp + 0x30], ecx
jmp 0x49bf40
mov ecx, dword [esp + 0x18]
mov eax, 1
xor edx, edx
call fcn.005ad010
mov ecx, edx
mov dword [esp + 0x68], eax
and eax, dword [esp + 0x20]
mov dword [esp + 0x6c], ecx
and ecx, dword [esp + 0x24]
or eax, ecx
jne 0x49c05c
mov edx, dword [esp + 0x30]
mov eax, dword [edx]
call fcn.00464150
mov edi, eax
cmp byte [edi], 0x98
jne 0x49c05c
mov eax, dword [esp + 0x34]
cmp dword [edi + 0x1c], eax
jne 0x49c05c
movzx ecx, word [esp + 0x40]
mov eax, dword [esp + 0x4c]
mov edx, dword [esp + 0x48]
push 0
push ecx
movsx ecx, word [edi + 0x20]
not edx
not eax
push eax
push edx
mov edx, dword [esp + 0x44]
push edx
lea edx, [ebp + 0x50]
call fcn.004983a0
mov esi, eax
add esp, 0x14
test esi, esi
je 0x49c05c
movzx ebx, word [esi + 0xc]
cmp bx, 1
jne 0x49bffb
mov ecx, dword [esp + 0x1c]
movzx edx, word [ecx + 0x28]
xor eax, eax
test edx, edx
jle 0x49bff0
mov ecx, dword [ecx + 0x30]
cmp esi, dword [ecx]
je 0x49bff0
mov ebp, dword [esp + 0x1c]
movzx ebp, word [ebp + 0x28]
inc eax
add ecx, 4
cmp eax, ebp
jl 0x49bfdc
cmp eax, edx
mov ebp, dword [esp + 0x9c]
jge 0x49c05c
test bl, 0x82
je 0x49c04c
cmp word [edi + 0x20], 0
jl 0x49c04c
mov edx, dword [ebp]
mov eax, dword [esp + 0x30]
mov ecx, dword [eax]
push edx
call fcn.00464180
add esp, 4
test eax, eax
jne 0x49c024
mov ecx, dword [esp + 0x44]
mov eax, dword [ecx + 8]
mov edx, dword [ebp]
mov ecx, dword [esi]
mov edi, dword [eax]
push edx
call fcn.00464180
add esp, 4
test eax, eax
jne 0x49c03f
mov eax, dword [esp + 0x44]
mov eax, dword [eax + 8]
mov eax, dword [eax]
mov ecx, edi
call fcn.00436b40
test eax, eax
jne 0x49c05c
mov ecx, dword [esp + 0x68]
mov edx, dword [esp + 0x6c]
or dword [esp + 0x20], ecx
or dword [esp + 0x24], edx
mov eax, dword [esp + 0x18]
add dword [esp + 0x30], 0x18
inc eax
cmp eax, dword [esp + 0x38]
mov dword [esp + 0x18], eax
jl 0x49bf40
mov ecx, dword [esp + 0x1c]
mov eax, dword [ecx + 0x24]
test eax, 0x1000
jne 0x49c388
test eax, 0x100
je 0x49c09e
xor eax, eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x5c], eax
mov eax, 1
jmp 0x49c0cc
mov ecx, dword [ecx + 0x20]
mov dword [esp + 0x18], ecx
test ecx, ecx
je 0x49bde7
test byte [ecx + 0x38], 4
jne 0x49bde7
movzx eax, word [ecx + 0x32]
cmp byte [ecx + 0x36], 0
mov dword [esp + 0x5c], eax
movzx eax, word [ecx + 0x34]
setne byte [esp + 0x15]
movzx eax, ax
xor ebp, ebp
mov byte [esp + 0x2e], 0
mov byte [esp + 0x2f], 0
mov byte [esp + 0x2d], 0
mov dword [esp + 0x78], eax
test eax, eax
jle 0x49c388
mov ebx, dword [esp + 0x1c]
mov dword [esp + 0x30], ebp
movzx edi, word [ebx + 0x18]
cmp ebp, edi
mov byte [esp + 0x16], 1
jge 0x49c15f
movzx ecx, word [ebx + 0x2a]
cmp ebp, ecx
jl 0x49c15f
mov edx, dword [ebx + 0x30]
mov eax, dword [edx + ebp*4]
movzx ecx, word [eax + 0xc]
mov esi, ecx
and esi, dword [esp + 0x40]
test si, si
je 0x49c134
test ecx, 0x100
je 0x49c373
mov byte [esp + 0x15], 0
jmp 0x49c373
test cl, 1
je 0x49c15f
mov esi, dword [eax]
lea eax, [ebp + 1]
cmp eax, edi
jge 0x49c15f
lea ecx, [edx + ebp*4 + 4]
mov edx, dword [ecx]
cmp dword [edx], esi
je 0x49c15a
movzx edx, word [ebx + 0x18]
inc eax
add ecx, 4
cmp eax, edx
jl 0x49c146
jmp 0x49c15f
mov byte [esp + 0x16], 0
mov eax, dword [esp + 0x18]
test eax, eax
je 0x49c185
mov ecx, dword [eax + 4]
movsx ebx, word [ecx + ebp*2]
mov edx, dword [eax + 0x1c]
mov cl, byte [edx + ebp]
mov edx, dword [eax + 0xc]
mov byte [esp + 0x17], cl
movsx ecx, word [edx + 0x28]
cmp ebx, ecx
jne 0x49c18d
jmp 0x49c18a
mov byte [esp + 0x17], 0
or ebx, 0xffffffff
cmp byte [esp + 0x15], 0
je 0x49c1b3
test ebx, ebx
jl 0x49c1b3
cmp ebp, edi
jl 0x49c1b3
mov edx, dword [eax + 0xc]
mov ecx, dword [edx + 4]
mov eax, ebx
shl eax, 4
cmp byte [ecx + eax + 0xc], 0
jne 0x49c1b3
mov byte [esp + 0x15], 0
xor esi, esi
cmp byte [esp + 0x16], 0
je 0x49c2b9
mov edi, dword [esp + 0xa0]
add edi, 8
lea ebx, [ebx]
cmp esi, dword [esp + 0x38]
jge 0x49c2b9
mov eax, 1
xor edx, edx
mov ecx, esi
call fcn.005ad010
and eax, dword [esp + 0x20]
and edx, dword [esp + 0x24]
or eax, edx
jne 0x49c2aa
mov eax, dword [edi]
test eax, eax
je 0x49c222
mov edi, edi
mov ecx, dword [eax + 4]
test ecx, 0x1000
je 0x49c222
test ecx, 0x40000
je 0x49c21b
mov edx, dword [eax + 0x14]
mov eax, dword [edx + 8]
jmp 0x49c21e
mov eax, dword [eax + 0xc]
test eax, eax
jne 0x49c200
test byte [esp + 0xa8], 0xc0
jne 0x49c231
mov byte [esp + 0x16], 0
cmp ebx, 0xffffffff
jl 0x49c24c
cmp byte [eax], 0x98
jne 0x49c2aa
mov ecx, dword [esp + 0x34]
cmp dword [eax + 0x1c], ecx
jne 0x49c2aa
movsx edx, word [eax + 0x20]
cmp edx, ebx
jmp 0x49c26e
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x18]
push ecx
mov ecx, dword [edx + 0x28]
mov edx, dword [esp + 0x34]
mov ecx, dword [ecx + edx + 8]
push ecx
push eax
push 0
call fcn.0046a790
add esp, 0x10
test eax, eax
jne 0x49c2aa
test ebx, ebx
jl 0x49c2e0
mov edx, dword [esp + 0x9c]
mov eax, dword [edx]
mov ecx, dword [edi]
push eax
call fcn.00464180
mov ecx, eax
add esp, 4
test ecx, ecx
jne 0x49c295
mov ecx, dword [esp + 0x44]
mov ecx, dword [ecx + 8]
mov edx, dword [esp + 0x18]
mov eax, dword [edx + 0x20]
mov eax, dword [eax + ebp*4]
mov ecx, dword [ecx]
call fcn.00436b40
test eax, eax
je 0x49c2e0
inc esi
add edi, 0x18
cmp byte [esp + 0x16], 0
jne 0x49c1d0
test ebp, ebp
je 0x49c2c6
movzx edx, word [esp + 0x5c]
cmp ebp, edx
jge 0x49c2cb
mov byte [esp + 0x15], 0
cmp byte [esp + 0x2d], 0
je 0x49c388
mov byte [esp + 0x15], 1
jmp 0x49c393
test byte [esp + 0xa8], 0x40
mov edx, dword [esp + 0x1c]
lea ecx, [ebp + 1]
mov word [edx + 0x1e], cx
jne 0x49c34f
cmp byte [esp + 0x2e], 0
je 0x49c316
mov al, byte [esp + 0x17]
xor al, byte [esp + 0x2f]
mov edx, dword [esp + 0xa0]
lea ecx, [esi + esi*2]
cmp al, byte [edx + ecx*8 + 0x14]
jne 0x49c2b9
jmp 0x49c34f
mov ecx, dword [esp + 0xa0]
lea eax, [esi + esi*2]
mov al, byte [ecx + eax*8 + 0x14]
xor al, byte [esp + 0x17]
mov byte [esp + 0x2f], al
je 0x49c34a
mov ecx, dword [esp + 0x3c]
mov eax, 1
xor edx, edx
call fcn.005ad010
mov ecx, dword [esp + 0xb4]
or dword [ecx], eax
or dword [ecx + 4], edx
mov byte [esp + 0x2e], 1
cmp ebx, 0xffffffff
jne 0x49c359
mov byte [esp + 0x2d], 1
mov eax, 1
xor edx, edx
mov ecx, esi
call fcn.005ad010
or dword [esp + 0x20], eax
or dword [esp + 0x24], edx
mov ebx, dword [esp + 0x1c]
add dword [esp + 0x30], 0x18
inc ebp
cmp ebp, dword [esp + 0x78]
jl 0x49c0f4
jmp 0x49c2cb
cmp byte [esp + 0x15], 0
je 0x49c485
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax + 8]
or dword [esp + 0x50], ecx
mov edx, dword [eax + 0xc]
or dword [esp + 0x54], edx
xor ecx, ecx
cmp dword [esp + 0x38], ecx
mov dword [esp + 0x18], ecx
jle 0x49c485
mov eax, dword [esp + 0xa0]
add eax, 8
mov dword [esp + 0x34], eax
mov eax, 1
xor edx, edx
call fcn.005ad010
mov ecx, edx
mov ebx, eax
and eax, dword [esp + 0x20]
mov dword [esp + 0x6c], ecx
and ecx, dword [esp + 0x24]
or eax, ecx
jne 0x49c46d
mov ecx, dword [esp + 0x34]
mov esi, dword [ecx]
mov edx, dword [esp + 0x9c]
add edx, 0x1e8
push esi
push edx
call fcn.00497bf0
mov ebp, edx
add esp, 8
mov edi, eax
or eax, ebp
jne 0x49c44d
mov byte [esp + 0x90], 1
mov dword [esp + 0x80], 0x466030
mov dword [esp + 0x84], 0x466140
mov dword [esp + 0x94], eax
test esi, esi
je 0x49c44d
lea ecx, [esp + 0x7c]
push esi
push ecx
call fcn.00462140
add esp, 8
cmp byte [esp + 0x90], 0
je 0x49c46d
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x54]
not eax
not ecx
and eax, edi
and ecx, ebp
or eax, ecx
jne 0x49c46d
mov edx, dword [esp + 0x6c]
or dword [esp + 0x20], ebx
or dword [esp + 0x24], edx
mov ecx, dword [esp + 0x18]
add dword [esp + 0x34], 0x18
inc ecx
cmp ecx, dword [esp + 0x38]
mov dword [esp + 0x18], ecx
jl 0x49c3c3
inc dword [esp + 0x3c]
cmp byte [esp + 0x15], 0
jne 0x49be70
jmp 0x49c49c
cmp byte [ecx + 0x1d], 0
jne 0x49c4b0
mov eax, dword [esp + 0x60]
cmp dword [esp + 0x20], eax
jne 0x49c4bf
mov ecx, dword [esp + 0x64]
cmp dword [esp + 0x24], ecx
jne 0x49c4bf
mov al, byte [esp + 0x74]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x88
ret
cmp byte [esp + 0x15], 0
jne 0x49c51e
mov ebx, dword [esp + 0x38]
dec ebx
test ebx, ebx
jle 0x49bde7
mov ebp, dword [esp + 0x24]
mov edi, dword [esp + 0x20]
mov eax, 1
xor edx, edx
mov ecx, ebx
call fcn.005ad010
add eax, 0xffffffff
adc edx, 0xffffffff
mov ecx, eax
mov esi, edx
and ecx, edi
and esi, ebp
cmp ecx, eax
jne 0x49c4ff
cmp esi, edx
je 0x49c511
dec ebx
test ebx, ebx
jg 0x49c4db
xor al, al
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x88
ret
mov al, bl
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x88
ret
pop edi
pop esi
pop ebp
or al, 0xff
pop ebx
add esp, 0x88
ret