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

Disassembly:
sub esp, 0x7c
push ebp
push esi
xor esi, esi
xor ebp, ebp
push edi
xor edi, edi
mov dword [esp + 0x18], esi
mov dword [esp + 0x10], edi
cmp word [esp + 0x9c], si
je 0x4d9e98
mov eax, dword [esp + 0x8c]
mov eax, dword [eax]
mov eax, dword [eax]
test byte [eax + 0x4c], 0x40
je 0x4d9e98
pop edi
pop esi
xor al, al
pop ebp
add esp, 0x7c
ret
mov eax, dword [esp + 0x90]
movzx eax, word [eax]
mov dword [esp + 0x64], eax
cmp eax, 0x3f
ja 0x4d9e8f
movzx ecx, ax
xor edx, edx
mov eax, 1
mov byte [esp + 0xe], 1
mov dword [esp + 0x24], ecx
call fcn.0040b590
add eax, 0xffffffff
mov dword [esp + 0x50], esi
mov ecx, edx
mov dword [esp + 0x34], eax
mov edx, dword [esp + 0x98]
adc ecx, 0xffffffff
mov dword [esp + 0x60], ecx
mov ecx, edx
and ecx, 0x800
mov dword [esp + 0x44], esi
mov dword [esp + 0x58], esi
mov dword [esp + 0x40], esi
mov dword [esp + 0x4c], 0x182
mov dword [esp + 0x68], ecx
je 0x4d9f08
mov dword [esp + 0x4c], 0x183
mov cl, byte [esp + 0xe]
push ebx
mov ebx, dword [esp + 0x28]
mov dword [esp + 0x34], esi
cmp edi, dword [esp + 0x64]
ja 0x4da5db
jb 0x4d9f29
cmp esi, eax
jae 0x4da5dd
movzx eax, word [esp + 0xa0]
cmp dword [esp + 0x34], eax
jg 0x4da5d7
cmp dword [esp + 0x34], 0
jle 0x4d9f5c
mov edi, dword [esp + 0x5c]
or edi, dword [ebp + 8]
mov dword [esp + 0x5c], edi
mov edi, dword [esp + 0x44]
or edi, dword [ebp + 0xc]
mov dword [esp + 0x44], edi
mov edi, dword [esp + 0x14]
mov ebp, dword [esp + 0x34]
cmp ebp, eax
jge 0x4d9f83
cmp word [esp + 0x6c], 0
mov eax, dword [esp + 0x98]
mov eax, dword [eax + 0x18]
mov ebp, dword [eax + ebp*4]
mov dword [esp + 0x20], ebp
jne 0x4da5bc
jmp 0x4d9f8e
mov ebp, dword [esp + 0xa4]
mov dword [esp + 0x20], ebp
test dword [ebp + 0x24], 0x400
jne 0x4da5cd
mov eax, edx
and eax, 0x80
mov dword [esp + 0x60], eax
je 0x4d9fae
xor eax, eax
mov word [ebp + 0x1e], ax
movzx eax, byte [ebp + 0x10]
xor ebp, ebp
lea ecx, [eax + eax*8]
mov eax, dword [esp + 0x90]
mov eax, dword [eax + 4]
mov eax, dword [eax + ecx*8 + 0x34]
mov dword [esp + 0x58], eax
test ebx, ebx
jle 0x4da0ec
mov ebx, dword [esp + 0x94]
add ebx, 4
jmp 0x4d9fe0
mov eax, 1
xor edx, edx
mov ecx, ebp
call fcn.0040b590
mov ecx, eax
mov dword [esp + 0x40], eax
mov eax, edx
mov dword [esp + 0x2c], edx
and ecx, esi
and eax, edi
or ecx, eax
jne 0x4da0da
push dword [ebx]
call fcn.004989c0
mov edi, eax
add esp, 4
cmp byte [edi], 0xa4
jne 0x4da0d6
mov edx, dword [esp + 0x58]
cmp dword [edi + 0x1c], edx
jne 0x4da0d6
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x5c]
movzx eax, ax
not ecx
push 0
push eax
mov eax, dword [esp + 0x4c]
not eax
push eax
movsx eax, word [edi + 0x20]
push ecx
push eax
mov eax, dword [esp + 0xa4]
push edx
add eax, 0x50
push eax
call fcn.004c9ff0
mov esi, eax
add esp, 0x1c
test esi, esi
je 0x4da0d2
movzx eax, word [esi + 0xc]
cmp eax, 1
jne 0x4da094
mov edx, dword [esp + 0x20]
xor ecx, ecx
movzx edx, word [edx + 0x28]
test edx, edx
jle 0x4da090
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0x30]
lea ecx, [ecx]
cmp esi, dword [eax]
je 0x4da08c
inc ecx
add eax, 4
cmp ecx, edx
jl 0x4da080
movzx eax, word [esi + 0xc]
cmp ecx, edx
jge 0x4da0d2
test al, 0x82
je 0x4da0b8
cmp word [edi + 0x20], 0
jl 0x4da0b8
push dword [esi]
mov eax, dword [esp + 0x94]
push dword [ebx]
push dword [eax]
call fcn.00496f30
add esp, 0xc
test eax, eax
je 0x4da0d2
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0x14]
or esi, dword [esp + 0x40]
or edi, dword [esp + 0x2c]
mov dword [esp + 0x1c], esi
mov dword [esp + 0x14], edi
jmp 0x4da0da
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0x14]
inc ebp
add ebx, 0x14
cmp ebp, dword [esp + 0x28]
jl 0x4d9fe0
mov ebx, dword [esp + 0x28]
mov ebp, dword [esp + 0x20]
mov eax, dword [ebp + 0x24]
test eax, 0x1000
jne 0x4da47a
test eax, 0x100
je 0x4da11c
mov dword [esp + 0x3c], 0
mov ecx, 1
mov dword [esp + 0x40], 0
jmp 0x4da158
mov edx, dword [ebp + 0x20]
mov dword [esp + 0x3c], edx
test edx, edx
je 0x4da639
test byte [edx + 0x38], 4
jne 0x4da639
cmp byte [edx + 0x36], 0
movzx ecx, word [edx + 0x32]
mov dword [esp + 0x40], ecx
movzx ecx, word [edx + 0x34]
je 0x4da153
mov byte [esp + 0x12], 1
test eax, 0x8000
je 0x4da158
mov byte [esp + 0x12], 0
xor al, al
mov byte [esp + 0x25], 0
mov byte [esp + 0x26], al
xor esi, esi
movzx eax, cx
mov byte [esp + 0x27], 0
mov dword [esp + 0x30], esi
mov dword [esp + 0x4c], eax
test eax, eax
jle 0x4da47a
mov dword [esp + 0x2c], esi
movzx edi, word [ebp + 0x18]
mov dl, 1
mov byte [esp + 0x13], dl
cmp esi, edi
jge 0x4da1f6
movzx eax, word [ebp + 0x2a]
cmp esi, eax
jl 0x4da1f6
mov ebx, dword [ebp + 0x30]
mov esi, dword [ebx + esi*4]
movzx ecx, word [esi + 0xc]
mov eax, ecx
and eax, dword [esp + 0x50]
test ax, ax
je 0x4da1c6
mov esi, dword [esp + 0x30]
test ecx, 0x180
je 0x4da459
mov byte [esp + 0x12], 0
jmp 0x4da459
test cl, 1
je 0x4da1f2
mov eax, dword [esp + 0x30]
mov esi, dword [esi]
lea edx, [eax + 1]
cmp edx, edi
jge 0x4da1ee
lea ecx, [eax + 1]
lea ecx, [ebx + ecx*4]
mov edi, edi
mov eax, dword [ecx]
cmp dword [eax], esi
je 0x4da21f
inc edx
add ecx, 4
cmp edx, edi
jl 0x4da1e0
mov dl, byte [esp + 0x13]
mov esi, dword [esp + 0x30]
mov ebx, dword [esp + 0x3c]
test ebx, ebx
je 0x4da227
mov eax, dword [ebx + 4]
movsx ebp, word [eax + esi*2]
mov eax, dword [ebx + 0x1c]
mov cl, byte [esi + eax]
mov eax, dword [ebx + 0xc]
and cl, 1
mov byte [esp + 0x1b], cl
movsx eax, word [eax + 0x28]
cmp ebp, eax
jne 0x4da22f
jmp 0x4da22c
xor dl, dl
mov byte [esp + 0x13], dl
jmp 0x4da1f2
mov byte [esp + 0x1b], 0
or ebp, 0xffffffff
mov dh, byte [esp + 0x12]
test dh, dh
je 0x4da25c
test ebp, ebp
js 0x4da25c
cmp esi, edi
jl 0x4da25c
mov eax, dword [ebx + 0xc]
lea ecx, [ebp*4]
add ecx, ebp
mov eax, dword [eax + 4]
mov al, byte [eax + ecx*4 + 0xc]
neg al
sbb al, al
and al, dh
mov byte [esp + 0x12], al
xor edi, edi
test dl, dl
je 0x4da37a
mov ebx, dword [esp + 0x94]
add ebx, 4
cmp edi, dword [esp + 0x28]
jge 0x4da37a
mov eax, 1
xor edx, edx
mov ecx, edi
call fcn.0040b590
and eax, dword [esp + 0x1c]
and edx, dword [esp + 0x14]
or eax, edx
jne 0x4da36a
mov edx, dword [ebx]
test edx, edx
je 0x4da2c0
mov edi, edi
mov eax, dword [edx + 4]
test eax, 0x41000
je 0x4da2c0
test eax, 0x40000
je 0x4da2b9
mov edx, dword [edx + 0x14]
mov edx, dword [edx + 4]
jmp 0x4da2bc
mov edx, dword [edx + 0xc]
test edx, edx
jne 0x4da2a0
mov al, byte [esp + 0x9c]
mov cl, byte [esp + 0x13]
and al, 0xc0
neg al
sbb al, al
and cl, al
mov byte [esp + 0x13], cl
cmp ebp, 0xffffffff
jl 0x4da2f6
cmp byte [edx], 0xa4
jne 0x4da36a
mov eax, dword [esp + 0x58]
cmp dword [edx + 0x1c], eax
jne 0x4da36a
movsx eax, word [edx + 0x20]
cmp eax, ebp
jmp 0x4da328
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x2c]
push dword [esp + 0x58]
mov eax, dword [eax + 0x28]
push dword [eax + ecx + 4]
call fcn.004989c0
add esp, 4
push eax
push edx
call fcn.004989c0
add esp, 4
push eax
push 0
call fcn.00496f80
add esp, 0x10
test eax, eax
jne 0x4da36a
cmp ebp, 0xffffffff
je 0x4da3a4
mov eax, dword [esp + 0x90]
push dword [ebx]
mov esi, dword [eax]
push esi
call fcn.00496db0
mov ecx, eax
add esp, 8
test ecx, ecx
jne 0x4da34e
mov eax, dword [esi]
mov ecx, dword [eax + 8]
mov eax, dword [esp + 0x3c]
mov esi, dword [esp + 0x30]
mov eax, dword [eax + 0x20]
push dword [eax + esi*4]
push dword [ecx]
call fcn.004b47c0
add esp, 8
test eax, eax
je 0x4da3a4
mov dl, byte [esp + 0x13]
inc edi
add ebx, 0x14
test dl, dl
jne 0x4da270
test esi, esi
je 0x4da389
mov eax, dword [esp + 0x40]
movzx eax, ax
cmp esi, eax
jge 0x4da38e
mov byte [esp + 0x12], 0
mov al, byte [esp + 0x26]
test al, al
je 0x4da472
mov byte [esp + 0x12], 1
jmp 0x4da485
cmp word [esp + 0x60], 0
mov ebx, dword [esp + 0x20]
je 0x4da3b7
lea eax, [esi + 1]
mov word [ebx + 0x1e], ax
test byte [esp + 0x9c], 0x40
jne 0x4da411
mov ecx, dword [esp + 0x94]
lea eax, [edi + edi*4]
mov al, byte [ecx + eax*4 + 0xc]
and al, 1
cmp byte [esp + 0x25], 0
je 0x4da3e6
mov cl, byte [esp + 0x1b]
xor cl, byte [esp + 0x27]
cmp cl, al
jne 0x4da37a
jmp 0x4da411
xor al, byte [esp + 0x1b]
mov byte [esp + 0x27], al
je 0x4da40c
mov ecx, dword [esp + 0x34]
mov eax, 1
xor edx, edx
call fcn.0040b590
mov ecx, dword [esp + 0xa8]
or dword [ecx], eax
or dword [ecx + 4], edx
mov byte [esp + 0x25], 1
mov ecx, dword [esp + 0x94]
lea eax, [edi + edi*4]
test byte [ecx + eax*4 + 0xc], 2
je 0x4da435
movzx eax, word [ebx + 0x18]
cmp esi, eax
jne 0x4da37a
or dword [ebx + 0x24], 0x80000
cmp ebp, 0xffffffff
jne 0x4da43f
mov byte [esp + 0x26], 1
mov eax, 1
xor edx, edx
mov ecx, edi
call fcn.0040b590
or dword [esp + 0x1c], eax
or dword [esp + 0x14], edx
mov ebp, dword [esp + 0x20]
add dword [esp + 0x2c], 0x14
inc esi
mov dword [esp + 0x30], esi
cmp esi, dword [esp + 0x4c]
jl 0x4da181
jmp 0x4da38e
mov ebp, dword [esp + 0x20]
mov ebx, dword [esp + 0x28]
cmp byte [esp + 0x12], 0
je 0x4da5a9
mov eax, dword [esp + 0x20]
xor ebp, ebp
mov ecx, dword [esp + 0x54]
mov edi, dword [esp + 0x14]
or ecx, dword [eax + 8]
mov dword [esp + 0x54], ecx
mov ecx, dword [esp + 0x48]
or ecx, dword [eax + 0xc]
mov dword [esp + 0x48], ecx
cmp dword [esp + 0x28], ebp
jle 0x4da59f
mov esi, dword [esp + 0x94]
add esi, 4
mov dword [esp + 0x2c], esi
lea ecx, [ecx]
mov eax, 1
xor edx, edx
mov ecx, ebp
call fcn.0040b590
mov ecx, eax
mov dword [esp + 0x4c], eax
and ecx, dword [esp + 0x1c]
mov eax, edx
and eax, edi
mov dword [esp + 0x60], edx
or ecx, eax
jne 0x4da58b
mov esi, dword [esi]
test esi, esi
je 0x4da50a
mov eax, dword [esp + 0x90]
add eax, 0x1e8
push esi
push eax
call fcn.004c9ea0
add esp, 8
mov edi, eax
mov ebx, edx
jmp 0x4da50e
xor edi, edi
xor ebx, ebx
mov eax, edi
or eax, ebx
jne 0x4da559
mov dword [esp + 0x74], fcn.0045f400
mov eax, 1
mov word [esp + 0x84], ax
mov dword [esp + 0x78], 0x4b3290
mov dword [esp + 0x88], 0
test esi, esi
je 0x4da559
lea eax, [esp + 0x70]
push esi
push eax
call fcn.004d6ac0
add esp, 8
cmp word [esp + 0x84], 0
je 0x4da587
mov ecx, dword [esp + 0x54]
mov eax, dword [esp + 0x48]
not ecx
not eax
and ecx, edi
mov edi, dword [esp + 0x14]
and eax, ebx
or ecx, eax
jne 0x4da58b
mov eax, dword [esp + 0x1c]
or eax, dword [esp + 0x4c]
or edi, dword [esp + 0x60]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x14], edi
jmp 0x4da58b
mov edi, dword [esp + 0x14]
add dword [esp + 0x2c], 0x14
inc ebp
mov esi, dword [esp + 0x2c]
cmp ebp, dword [esp + 0x28]
jl 0x4da4c0
mov ebp, dword [esp + 0x20]
mov ebx, dword [esp + 0x28]
jmp 0x4da5ad
mov edi, dword [esp + 0x14]
mov esi, dword [esp + 0x1c]
mov cl, byte [esp + 0x12]
mov edx, dword [esp + 0x9c]
inc dword [esp + 0x34]
mov eax, dword [esp + 0x38]
test cl, cl
je 0x4da5db
jmp 0x4d9f15
cmp byte [ebp + 0x1d], 0
je 0x4da5d7
test dl, dl
jns 0x4da5e5
mov eax, dword [esp + 0x38]
cmp esi, eax
jne 0x4da5f1
cmp edi, dword [esp + 0x64]
jne 0x4da5f1
mov al, byte [esp + 0x68]
pop ebx
pop edi
pop esi
pop ebp
add esp, 0x7c
ret
test cl, cl
jne 0x4da643
mov eax, dword [esp + 0x28]
lea ebx, [eax - 1]
test ebx, ebx
jle 0x4da639
mov eax, 1
xor edx, edx
mov ecx, ebx
call fcn.0040b590
add eax, 0xffffffff
mov ecx, eax
adc edx, 0xffffffff
and ecx, esi
mov esi, edx
and esi, edi
cmp ecx, eax
jne 0x4da624
cmp esi, edx
je 0x4da62f
dec ebx
test ebx, ebx
jle 0x4da639
mov esi, dword [esp + 0x1c]
jmp 0x4da600
mov al, bl
pop ebx
pop edi
pop esi
pop ebp
add esp, 0x7c
ret
pop ebx
pop edi
pop esi
xor al, al
pop ebp
add esp, 0x7c
ret
pop ebx
pop edi
pop esi
or al, 0xff
pop ebp
add esp, 0x7c
ret