Function at 0x49a880
Capabilities:
Inspect section memory permissions
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x78
mov eax, dword [0x7c2580]
xor eax, esp
mov dword [esp + 0x74], eax
mov ecx, dword [esp + 0x88]
mov eax, dword [esp + 0x80]
push ebx
mov dword [esp + 0x44], ecx
mov ecx, dword [esp + 0x88]
mov dword [esp + 0x38], eax
push esi
mov esi, dword [esp + 0x84]
mov dword [esp + 0x28], esi
cmp ecx, 0x300
jg 0x49a8fa
je 0x49a8e8
cmp ecx, 0x100
je 0x49a8f3
cmp ecx, 0x200
je 0x49a8f3
pop esi
mov eax, 0xffffffe2
pop ebx
mov ecx, dword [esp + 0x74]
xor ecx, esp
call fcn.006d66cb
add esp, 0x78
ret
mov dword [esp + 0x8c], 0x100
mov ebx, 5
jmp 0x49a91d
cmp ecx, 0x3c00
je 0x49a918
pop esi
mov eax, 0xffffffe2
pop ebx
mov ecx, dword [esp + 0x74]
xor ecx, esp
call fcn.006d66cb
add esp, 0x78
ret
mov ebx, 6
push ebp
push edi
xor ebp, ebp
mov dword [esp + 0x1c], ebx
xor edi, edi
mov dword [esp + 0x14], ebp
mov dword [esp + 0x18], edi
test eax, eax
je 0x49ae7a
cmp byte [eax], 0
je 0x49ae76
xor edi, edi
lea eax, [esp + 0x27]
push eax
lea eax, [esp + 0x50]
push eax
lea eax, [esp + 0x50]
push eax
lea eax, [esp + 0x50]
push eax
call fcn.0049b320
add esp, 0x10
cmp edi, ebx
jge 0x49a972
mov eax, dword [esp + 0x48]
mov dword [esp + edi*8 + 0x54], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + edi*8 + 0x58], eax
inc edi
cmp byte [esp + 0x27], 0x3a
je 0x49a942
mov eax, edi
cmp edi, ebx
jge 0x49a995
mov dword [esp + eax*8 + 0x58], 0
mov dword [esp + eax*8 + 0x54], 0
inc eax
cmp eax, ebx
jl 0x49a980
mov ecx, dword [esp + 0x54]
test ecx, ecx
je 0x49a9a6
cmp byte [ecx], 0x23
je 0x49ae66
mov ebp, dword [esp + 0x94]
xor ebx, ebx
xor esi, esi
mov dword [esp + 0x34], ebx
xor edx, edx
mov dword [esp + 0x28], 0xffffffff
xor eax, eax
mov dword [esp + 0x20], esi
mov dword [esp + 0x3c], edx
mov dword [esp + 0x38], eax
cmp ebp, 0x3c00
je 0x49abe2
mov edx, dword [esp + 0x58]
sub edx, ecx
cmp byte [ecx], 0x64
jne 0x49aa20
cmp edx, 1
je 0x49a9ff
cmp edx, 7
jb 0x49aa20
cmp dword [ecx + 1], 0x75616665
jne 0x49aa20
cmp word [ecx + 5], 0x746c
jne 0x49aa20
mov ebp, 0x200
mov dword [esp + 0x2c], ebp
cmp edx, 7
jbe 0x49aa14
add ecx, 7
mov dword [esp + 0x54], ecx
mov eax, 7
cmp eax, edx
sbb ebx, ebx
inc ebx
jmp 0x49aa24
mov dword [esp + 0x2c], ebp
mov ebp, dword [esp + ebx*8 + 0x60]
lea eax, [esp + 0x28]
push eax
push ebp
push dword [esp + ebx*8 + 0x64]
call fcn.0049b210
add esp, 0xc
cmp dword [esp + 0x28], 0xffffffff
jne 0x49aa5d
lea eax, [ebx + 3]
cmp edi, eax
jle 0x49aa5d
lea eax, [esp + 0x28]
push eax
push dword [esp + ebx*8 + 0x74]
push dword [esp + ebx*8 + 0x74]
call fcn.0049b210
add esp, 0xc
mov ecx, dword [esp + ebx*8 + 0x58]
mov edx, dword [esp + ebx*8 + 0x54]
mov dword [esp + 0x10], esi
sub ecx, edx
je case.0x49ade8.46
movsx eax, byte [edx]
add eax, 0xffffff99
cmp eax, 0xe
ja case.0x49aa87.104
movzx eax, byte [eax + 0x49b0dc]
jmp dword [eax*4 + 0x49b0c8]
cmp ecx, 1
je 0x49aab2
cmp ecx, 4
jne case.0x49aa87.104
cmp word [edx + 1], 0x6573
jne case.0x49aa87.104
cmp byte [edx + 3], 0x72
jne case.0x49aa87.104
mov ecx, 0x2712
mov dword [esp + 0x10], ecx
jmp 0x49ab56
cmp ecx, 1
je 0x49aadb
cmp ecx, 5
jne case.0x49aa87.104
cmp dword [edx + 1], 0x70756f72
jne case.0x49aa87.104
mov ecx, 0x2714
mov dword [esp + 0x10], ecx
jmp 0x49ab56
cmp ecx, 1
je 0x49aaf9
cmp ecx, 5
jne case.0x49aa87.104
cmp dword [edx + 1], 0x72656874
jne case.0x49aa87.104
mov ecx, 0x2716
mov dword [esp + 0x10], ecx
jmp 0x49ab56
cmp ecx, 1
je 0x49ab1c
cmp ecx, 4
jne case.0x49aa87.104
cmp word [edx + 1], 0x7361
jne case.0x49aa87.104
cmp byte [edx + 3], 0x6b
jne case.0x49aa87.104
mov dword [esp + 0x10], 0x2715
mov ecx, dword [esp + ebx*8 + 0x5c]
lea eax, [ebx + 2]
cmp edi, eax
jne 0x49ab70
cmp ecx, ebp
jae 0x49ab70
lea eax, [esp + 0x20]
push eax
push ebp
push ecx
call fcn.0049b270
mov esi, dword [esp + 0x2c]
add esp, 0xc
test eax, eax
je 0x49ab6c
mov dword [esp + 0x34], 1
jmp 0x49ab7f
mov ecx, esi
lea eax, [ecx - 0x2712]
cmp eax, 4
ja case.0x49ade8.46
jmp dword [eax*4 + 0x49b0ec]
mov ecx, dword [esp + ebx*8 + 0x5c]
lea eax, [ebx + 3]
cmp edi, eax
jne 0x49ab7f
cmp ecx, ebp
jb case.0x49ade8.46
test esi, esi
jne 0x49af45
jmp 0x49abb8
cmp dword [esp + 0x28], 0xffffffff
jne 0x49ab96
cmp dword [esp + ebx*8 + 0x5c], ebp
jae 0x49abb8
mov eax, dword [esp + ebx*8 + 0x5c]
mov dword [esp + 0x38], eax
xor eax, eax
cmp ecx, 0x2712
mov dword [esp + 0x3c], ebp
setne al
lea eax, [eax*2 + 0x2711]
mov dword [esp + 0x10], eax
sub ebx, dword [esp + 0x34]
lea eax, [esp + 0x20]
push eax
push dword [esp + ebx*8 + 0x6c]
push dword [esp + ebx*8 + 0x6c]
call fcn.0049b270
add esp, 0xc
test eax, eax
je case.0x49ade8.46
mov esi, dword [esp + 0x20]
jmp 0x49af45
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x58]
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 5
ja case.0x49ade8.46
jmp dword [eax*4 + 0x49b100]
cmp dword [ecx], 0x72657375
jne 0x49ac68
mov eax, 0x2711
mov dword [esp + 0x10], eax
jmp 0x49ac6a
cmp dword [ecx], 0x756f7267
jne 0x49ac68
cmp byte [ecx + 4], 0x70
jne 0x49ac68
mov eax, 0x2713
mov dword [esp + 0x10], eax
jmp 0x49ac6a
cmp dword [ecx], 0x656e776f
jne 0x49ac45
cmp word [ecx + 4], 0x4072
jne 0x49ac45
mov eax, 0x2712
jmp 0x49ad07
cmp dword [ecx], 0x756f7267
jne 0x49ac60
cmp word [ecx + 4], 0x4070
jne 0x49ac60
mov eax, 0x2714
mov dword [esp + 0x10], eax
jmp 0x49ac6a
mov eax, edx
mov dword [esp + 0x10], eax
jmp 0x49ac6a
mov eax, edx
test eax, eax
je case.0x49ade8.46
cmp eax, 0x2711
je 0x49ac84
cmp eax, 0x2713
jne 0x49ad0b
mov edx, dword [esp + 0x60]
lea ecx, [esp + 0x28]
mov eax, dword [esp + 0x5c]
push ecx
push edx
push eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], edx
call fcn.0049b210
mov edx, dword [esp + 0x74]
lea eax, [esp + 0x84]
mov ecx, dword [esp + 0x70]
lea edi, [esp + 0x7c]
mov dword [esp + 0x40], eax
lea ebx, [esp + 0x78]
lea eax, [esp + 0x8c]
add esp, 0xc
mov dword [esp + 0x20], eax
lea ebp, [esp + 0x74]
lea eax, [esp + 0x7c]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x10], eax
jmp 0x49ad37
cmp dword [ecx], 0x72657665
jne case.0x49ade8.46
cmp dword [ecx + 4], 0x656e6f79
jne case.0x49ade8.46
cmp byte [ecx + 8], 0x40
jne case.0x49ade8.46
mov eax, 0x277b
mov dword [esp + 0x10], eax
mov edx, dword [esp + 0x60]
lea ecx, [esp + 0x70]
mov dword [esp + 0x34], ecx
lea edi, [esp + 0x68]
lea ecx, [esp + 0x78]
mov dword [esp + 0x20], ecx
lea ebx, [esp + 0x64]
lea ecx, [esp + 0x74]
mov dword [esp + 0x40], ecx
lea ebp, [esp + 0x6c]
mov ecx, dword [esp + 0x5c]
cmp ecx, edx
jae 0x49adc9
nop
movsx eax, byte [ecx]
inc ecx
sub eax, 0x2d
cmp eax, 0x4b
ja case.0x49ade8.46
movzx eax, byte [eax + 0x49b158]
jmp dword [eax*4 + 0x49b118]
or esi, 8
jmp case.0x49ad57.45
or esi, 0x10
jmp case.0x49ad57.45
or esi, 1
jmp case.0x49ad57.45
or esi, 0x20
jmp case.0x49ad57.45
or esi, 0x100
jmp case.0x49ad57.45
or esi, 0x800
jmp case.0x49ad57.45
or esi, 0x200
jmp case.0x49ad57.45
or esi, 0x400
jmp case.0x49ad57.45
or esi, 0x40
jmp case.0x49ad57.45
or esi, 0x80
jmp case.0x49ad57.45
or esi, 0x1000
jmp case.0x49ad57.45
or esi, 0x2000
jmp case.0x49ad57.45
or esi, 0x4000
jmp case.0x49ad57.45
or esi, 0x8000
cmp ecx, edx
jb 0x49ad40
mov eax, dword [esp + 0x10]
mov edx, dword [edi]
mov ecx, dword [ebx]
cmp ecx, edx
jae 0x49ae29
mov dword [esp + 0x10], eax
movsx eax, byte [ecx]
inc ecx
sub eax, 0x2d
cmp eax, 0x41
ja case.0x49ade8.46
movzx eax, byte [eax + 0x49b1c8]
jmp dword [eax*4 + 0x49b1a4]
or esi, 0x2000000
jmp case.0x49ade8.45
or esi, 0x4000000
jmp case.0x49ade8.45
or esi, 0x10000000
jmp case.0x49ade8.45
or esi, 0x8000000
jmp case.0x49ade8.45
or esi, 0x20000000
jmp case.0x49ade8.45
or esi, 0x40000000
jmp case.0x49ade8.45
or esi, 0x1000000
cmp ecx, edx
jb 0x49add5
mov eax, dword [esp + 0x34]
mov ecx, dword [ebp]
xor ebp, ebp
mov eax, dword [eax]
sub eax, ecx
cmp eax, 4
jne 0x49aeda
cmp dword [ecx], 0x796e6564
mov eax, 0x800
cmove ebp, eax
mov dword [esp + 0x2c], ebp
test ebp, ebp
jne 0x49af2c
mov ebx, dword [esp + 0x1c]
mov ebp, 0xffffffec
mov dword [esp + 0x14], ebp
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 0x44]
test eax, eax
jne 0x49a937
mov esi, dword [esp + 0x30]
mov ecx, dword [esi + 4]
xor edx, edx
test ecx, ecx
je 0x49aea3
test dword [ecx + 4], edi
lea eax, [edx + 1]
mov ecx, dword [ecx]
cmove eax, edx
mov edx, eax
test ecx, ecx
jne 0x49ae83
test edx, edx
jle 0x49aea3
test edi, 0x100
je 0x49aea3
add edx, 3
and edi, 0x100
mov ecx, 0x2712
neg edi
sbb edi, edi
xor eax, eax
and edi, 3
cmp edx, edi
pop edi
cmovle ecx, eax
mov eax, ebp
mov dword [esi + 0xc], ecx
mov ecx, dword [esi + 4]
pop ebp
mov dword [esi + 8], ecx
pop esi
pop ebx
mov ecx, dword [esp + 0x74]
xor ecx, esp
call fcn.006d66cb
add esp, 0x78
ret
cmp eax, 5
jne case.0x49ade8.46
cmp dword [ecx], 0x6f6c6c61
jne 0x49aef8
cmp byte [ecx + 4], 0x77
jne 0x49aef8
mov ebp, 0x400
jmp 0x49af28
cmp dword [ecx], 0x69647561
jne 0x49af0d
cmp byte [ecx + 4], 0x74
jne 0x49af0d
mov ebp, 0x1000
jmp 0x49af28
cmp dword [ecx], 0x72616c61
jne case.0x49ade8.46
cmp byte [ecx + 4], 0x6d
jne case.0x49ade8.46
mov ebp, 0x2000
mov dword [esp + 0x2c], ebp
lea eax, [esp + 0x28]
push eax
mov eax, dword [esp + 0x24]
push dword [eax]
mov eax, dword [esp + 0x48]
push dword [eax]
call fcn.0049b210
add esp, 0xc
mov edi, dword [esp + 0x3c]
mov ebp, dword [esp + 0x38]
sub edi, ebp
mov ebx, dword [esp + 0x2c]
cmp ebx, 0x100
jne 0x49b009
test esi, 0xfffffff8
jne 0x49b009
mov eax, dword [esp + 0x10]
sub eax, 0x2712
je 0x49afdb
sub eax, 2
je 0x49afac
sub eax, 2
jne 0x49b009
mov edx, dword [esp + 0x30]
mov edi, dword [esp + 0x18]
mov ebp, dword [esp + 0x14]
movzx eax, word [edx]
xor esi, eax
and esi, 7
xor esi, eax
or edi, ebx
mov ebx, dword [esp + 0x1c]
mov word [edx], si
mov dword [esp + 0x18], edi
jmp 0x49ae6a
mov edx, dword [esp + 0x30]
lea ecx, [esi*8]
mov edi, dword [esp + 0x18]
mov ebp, dword [esp + 0x14]
movzx eax, word [edx]
xor ecx, eax
and ecx, 0x38
xor ecx, eax
or edi, ebx
mov ebx, dword [esp + 0x1c]
mov word [edx], cx
mov dword [esp + 0x18], edi
jmp 0x49ae6a
mov ecx, dword [esp + 0x30]
mov edi, dword [esp + 0x18]
mov ebp, dword [esp + 0x14]
shl esi, 6
movzx eax, word [ecx]
xor esi, eax
and esi, 0x1c0
xor esi, eax
or edi, ebx
mov ebx, dword [esp + 0x1c]
mov word [ecx], si
mov dword [esp + 0x18], edi
jmp 0x49ae6a
push dword [esp + 0x28]
push dword [esp + 0x14]
push esi
push ebx
push dword [esp + 0x40]
call fcn.0049a590
add esp, 0x14
test eax, eax
je 0x49b0ac
test ebp, ebp
je 0x49b071
cmp byte [ebp], 0
je 0x49b071
test edi, edi
je 0x49b071
push dword [esp + 0x50]
add eax, 0x14
push edi
push ebp
push eax
call fcn.00490fa0
add esp, 0x10
test eax, eax
je 0x49b07d
call fcn.006e39b1
cmp dword [eax], 0xc
je 0x49b094
mov edi, dword [esp + 0x18]
mov ebp, 0xffffffec
or edi, ebx
mov dword [esp + 0x14], ebp
mov ebx, dword [esp + 0x1c]
mov dword [esp + 0x18], edi
jmp 0x49ae6a
add eax, 0x14
push eax
call fcn.00490d80
add esp, 4
mov edi, dword [esp + 0x18]
mov ebp, dword [esp + 0x14]
or edi, ebx
mov ebx, dword [esp + 0x1c]
mov dword [esp + 0x18], edi
jmp 0x49ae6a
pop edi
pop ebp
pop esi
mov eax, 0xffffffe2
pop ebx
mov ecx, dword [esp + 0x74]
xor ecx, esp
call fcn.006d66cb
add esp, 0x78
ret
mov ecx, dword [esp + 0x84]
mov eax, 0xffffffe7
pop edi
pop ebp
pop esi
pop ebx
xor ecx, esp
call fcn.006d66cb
add esp, 0x78
ret