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

Disassembly:
push 0xffffffffffffffff
push 0x52c7e8
mov eax, dword fs:[0]
push eax
sub esp, 0x7c
mov eax, dword [0x568fd0]
xor eax, esp
mov dword [esp + 0x78], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x568fd0]
xor eax, esp
push eax
lea eax, [esp + 0x90]
mov dword fs:[0], eax
mov ebp, dword [esp + 0xa0]
mov edi, ecx
mov ebx, dword [esp + 0xbc]
cmp dword [ebx], 0
mov eax, dword [esp + 0xa4]
mov esi, edx
mov dword [esp + 0x28], eax
mov dword [esp + 0x30], ebx
jg 0x49ff32
mov eax, edi
jmp 0x4a091f
cmp byte [esp + 0xb4], 0
je 0x49ff92
cmp dword [esi + 0x1e0], 0
jne 0x49ff57
lea ecx, [esi + 0x78]
push ecx
call fcn.004a2920
add esp, 4
mov dword [esi + 0x1e0], eax
mov eax, dword [esp + 0xb8]
mov ecx, dword [esi + 0x1e0]
mov edx, dword [ecx]
mov edx, dword [edx + 4]
push ebx
push eax
mov eax, dword [esp + 0xb8]
push eax
mov eax, dword [esp + 0xb8]
push eax
mov eax, dword [esp + 0xb8]
push eax
mov eax, dword [esp + 0x3c]
push eax
push ebp
push edi
push esi
call edx
jmp 0x4a091f
cmp edi, ebp
setle al
xor ecx, ecx
test al, al
setne cl
mov byte [esp + 0x1b], al
push 0
mov ebx, esi
lea ecx, [ecx + ecx - 1]
mov eax, ecx
push eax
push edi
mov dword [esp + 0x40], eax
call fcn.0049da30
mov edx, dword [esp + 0x34]
push 0
push edx
push ebp
mov dword [esp + 0x2c], eax
call fcn.0049da30
mov edi, eax
cmp dword [esp + 0x20], edi
mov eax, dword [esp + 0x30]
mov ecx, dword [eax]
mov dword [esp + 0x54], edi
mov dword [esp + 0x1c], ecx
jle 0x49ffe8
mov edx, dword [esp + 0x20]
mov dword [esp + 0x38], edx
jmp 0x49ffec
mov dword [esp + 0x38], edi
cmp byte [esp + 0x1b], 0
mov ebx, dword [esp + 0x20]
mov ebp, ebx
mov dword [esp + 0x24], ebp
jne 0x4a0027
mov ecx, dword [esp + 0x34]
xor eax, eax
test ecx, ecx
setg al
lea eax, [eax + eax - 1]
lea edx, [eax + ebx]
test edx, edx
jg 0x4a0017
xor eax, eax
jmp 0x4a0021
push eax
push ecx
push ebx
mov eax, esi
call fcn.0049dc00
mov ebp, eax
mov dword [esp + 0x24], eax
cmp byte [esp + 0xa8], 0
je 0x4a0187
cmp ebx, edi
mov ebx, dword [esp + 0x1c]
jg 0x4a0040
sub edi, ebx
inc edi
mov eax, dword [esp + 0x28]
mov cl, byte [eax]
mov dword [esp + 0x20], edi
mov byte [esp + 0x1a], cl
mov edi, edi
xor eax, eax
cmp byte [esp + 0x1b], al
je 0x4a005f
cmp ebp, edi
setl al
jmp 0x4a0064
cmp ebp, edi
setge al
test eax, eax
je 0x4a091c
cmp ebp, dword [esi + 0x1c]
jge 0x4a0081
test ebp, ebp
jge 0x4a0079
xor al, al
jmp 0x4a0093
mov edx, dword [esi + 0x10]
mov al, byte [edx + ebp]
jmp 0x4a0093
cmp ebp, dword [esi + 0x18]
jl 0x4a008a
xor al, al
jmp 0x4a0093
mov eax, dword [esi + 0x20]
add eax, dword [esi + 0x10]
mov al, byte [eax + ebp]
cmp al, byte [esp + 0x1a]
jne 0x4a0150
lea eax, [ebx + ebp]
cmp eax, dword [esp + 0x38]
mov edx, 1
setle cl
cmp ebx, edx
jle 0x4a00fa
mov edi, dword [esp + 0x28]
lea eax, [ebp + 1]
sub edi, ebp
test cl, cl
je 0x4a0150
cmp eax, dword [esi + 0x1c]
jge 0x4a00d6
test eax, eax
jge 0x4a00ce
xor cl, cl
jmp 0x4a00ee
mov ecx, dword [esi + 0x10]
mov cl, byte [eax + ecx]
jmp 0x4a00ee
cmp eax, dword [esi + 0x18]
jl 0x4a00df
xor cl, cl
jmp 0x4a00ee
mov ecx, dword [esi + 0x20]
mov ebx, dword [esi + 0x10]
add ecx, eax
mov cl, byte [ecx + ebx]
mov ebx, dword [esp + 0x1c]
cmp cl, byte [edi + eax]
sete cl
inc edx
inc eax
cmp edx, ebx
jl 0x4a00b9
test cl, cl
je 0x4a0150
cmp byte [esp + 0xac], 0
jne 0x4a0118
cmp byte [esp + 0xb0], 0
je 0x4a072f
jmp 0x4a013f
mov edx, ebp
mov eax, esi
call fcn.0049fcd0
test al, al
je 0x4a0135
lea edi, [ebx + ebp]
call fcn.0049fd90
test al, al
jne 0x4a072f
cmp byte [esp + 0xb0], 0
je 0x4a0150
mov edx, ebp
mov eax, esi
call fcn.0049fcd0
test al, al
jne 0x4a072f
mov ecx, dword [esp + 0x34]
xor eax, eax
test ecx, ecx
setg al
lea eax, [eax + eax - 1]
lea edx, [eax + ebp]
test edx, edx
jg 0x4a016a
xor eax, eax
jmp 0x4a0174
push eax
push ecx
push ebp
mov eax, esi
call fcn.0049dc00
cmp eax, ebp
je 0x4a091c
mov edi, dword [esp + 0x20]
mov ebp, eax
jmp 0x4a0050
mov eax, dword [esi + 0x1ec]
cmp eax, 0xfde9
jne 0x4a04bc
mov eax, dword [esp + 0x1c]
shl eax, 4
inc eax
push eax
lea ecx, [esp + 0x40]
call fcn.004765e0
mov dword [esp + 0x98], 0
mov ebx, dword [esp + 0x4c]
sub ebx, dword [esp + 0x48]
jne 0x4a01c4
call fcn.00501daa
mov eax, dword [esp + 0x1c]
mov ecx, dword [esi + 0x178]
mov edx, dword [ecx]
mov edx, dword [edx + 4]
push eax
mov eax, dword [esp + 0x2c]
push eax
mov eax, dword [esp + 0x50]
push ebx
push eax
call edx
mov dword [esp + 0x28], eax
xor eax, eax
cmp byte [esp + 0x1b], al
je 0x4a01f4
cmp ebp, edi
setl al
jmp 0x4a01f9
cmp ebp, edi
setge al
test eax, eax
je 0x4a0494
mov ebp, dword [esp + 0x24]
xor eax, eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x1c], eax
mov byte [esp + 0x1a], 1
cmp ebp, dword [esi + 0x1c]
jge 0x4a0229
test ebp, ebp
jge 0x4a0221
xor cl, cl
jmp 0x4a023b
mov eax, dword [esi + 0x10]
mov cl, byte [eax + ebp]
jmp 0x4a023b
cmp ebp, dword [esi + 0x18]
jl 0x4a0232
xor cl, cl
jmp 0x4a023b
mov ecx, dword [esi + 0x20]
add ecx, dword [esi + 0x10]
mov cl, byte [ecx + ebp]
mov byte [esp + 0x70], cl
mov eax, 1
cmp cl, 0x80
jb 0x4a02a9
movzx edx, cl
mov ecx, dword [edx*4 + 0x56dfb8]
cmp ecx, eax
mov dword [esp + 0x2c], ecx
jle 0x4a029d
lea edi, [esp + 0x70]
lea eax, [ebp + 1]
sub edi, ebp
lea ebx, [ecx - 1]
cmp eax, dword [esi + 0x1c]
jge 0x4a027c
test eax, eax
jge 0x4a0274
xor dl, dl
jmp 0x4a0294
mov edx, dword [esi + 0x10]
mov dl, byte [eax + edx]
jmp 0x4a0294
cmp eax, dword [esi + 0x18]
jl 0x4a0285
xor dl, dl
jmp 0x4a0294
mov ecx, dword [esi + 0x20]
mov edx, dword [esi + 0x10]
add ecx, eax
mov dl, byte [ecx + edx]
mov ecx, dword [esp + 0x2c]
mov byte [edi + eax], dl
inc eax
sub ebx, 1
jne 0x4a0267
lea eax, [esp + 0x70]
call fcn.00479700
and eax, 7
cmp dword [esp + 0x20], 0
jne 0x4a02b4
mov dword [esp + 0x20], eax
lea ecx, [eax + ebp]
cmp ecx, dword [esp + 0x38]
mov dword [esp + 0x2c], ecx
jg 0x4a0396
mov ecx, dword [esi + 0x178]
mov edx, dword [ecx]
mov edx, dword [edx + 4]
push eax
lea eax, [esp + 0x74]
push eax
push 0x11
lea eax, [esp + 0x84]
push eax
call edx
mov ebx, eax
mov eax, dword [esp + 0x4c]
sub eax, dword [esp + 0x48]
mov byte [esp + ebx + 0x78], 0
mov edi, ebx
jne 0x4a02fa
call fcn.00501daa
mov edx, dword [esp + 0x48]
mov ecx, dword [esp + 0x1c]
add ecx, edx
lea edx, [esp + 0x78]
cmp ebx, 4
jb 0x4a0324
lea ecx, [ecx]
mov eax, dword [edx]
cmp eax, dword [ecx]
jne 0x4a0328
sub edi, 4
add ecx, 4
add edx, 4
cmp edi, 4
jae 0x4a0310
test edi, edi
je 0x4a036b
movzx eax, byte [edx]
movzx ebp, byte [ecx]
sub eax, ebp
jne 0x4a0363
cmp edi, 1
jbe 0x4a036b
movzx eax, byte [edx + 1]
movzx ebp, byte [ecx + 1]
sub eax, ebp
jne 0x4a0363
cmp edi, 2
jbe 0x4a036b
movzx eax, byte [edx + 2]
movzx ebp, byte [ecx + 2]
sub eax, ebp
jne 0x4a0363
cmp edi, 3
jbe 0x4a036b
movzx eax, byte [edx + 3]
movzx ecx, byte [ecx + 3]
sub eax, ecx
sar eax, 0x1f
or eax, 1
jmp 0x4a036d
xor eax, eax
test eax, eax
sete al
mov byte [esp + 0x1a], al
test al, al
je 0x4a043d
mov eax, dword [esp + 0x1c]
mov ebp, dword [esp + 0x2c]
add eax, ebx
cmp eax, dword [esp + 0x28]
mov dword [esp + 0x1c], eax
jl 0x4a0214
cmp byte [esp + 0x1a], 0
je 0x4a043d
mov edx, dword [esp + 0x28]
cmp dword [esp + 0x1c], edx
jne 0x4a043d
mov edx, dword [esp + 0x24]
mov edi, ebp
sub edi, edx
cmp byte [esp + 0xac], 0
jne 0x4a040a
cmp byte [esp + 0xb0], 0
jne 0x4a042e
mov esi, dword [esp + 0x24]
mov eax, dword [esp + 0x30]
sub ebp, esi
mov dword [eax], ebp
mov eax, dword [esp + 0x48]
xor edi, edi
cmp eax, edi
je 0x4a03ea
push eax
call fcn.00501b8f
add esp, 4
mov ecx, dword [esp + 0x3c]
push ecx
mov dword [esp + 0x4c], edi
mov dword [esp + 0x50], edi
mov dword [esp + 0x54], edi
call fcn.00501b8f
add esp, 4
mov eax, esi
jmp 0x4a091f
mov eax, esi
call fcn.0049fcd0
test al, al
je 0x4a0424
mov eax, dword [esp + 0x24]
add edi, eax
call fcn.0049fd90
test al, al
jne 0x4a03cb
cmp byte [esp + 0xb0], 0
je 0x4a043d
mov edx, dword [esp + 0x24]
mov eax, esi
call fcn.0049fcd0
test al, al
jne 0x4a03cb
cmp byte [esp + 0x1b], 0
je 0x4a0459
mov ecx, dword [esp + 0x20]
add dword [esp + 0x24], ecx
mov edi, dword [esp + 0x54]
mov ebp, dword [esp + 0x24]
jmp 0x4a01e5
mov ecx, dword [esp + 0x34]
mov edi, dword [esp + 0x24]
xor eax, eax
test ecx, ecx
setg al
lea eax, [eax + eax - 1]
lea edx, [eax + edi]
test edx, edx
jg 0x4a0477
xor eax, eax
jmp 0x4a0481
push eax
push ecx
push edi
mov eax, esi
call fcn.0049dc00
cmp eax, edi
je 0x4a0494
mov edi, dword [esp + 0x54]
mov dword [esp + 0x24], eax
mov ebp, eax
jmp 0x4a01e5
mov eax, dword [esp + 0x48]
xor esi, esi
cmp eax, esi
je 0x4a04a7
push eax
call fcn.00501b8f
add esp, 4
mov edx, dword [esp + 0x3c]
mov dword [esp + 0x48], esi
mov dword [esp + 0x4c], esi
mov dword [esp + 0x50], esi
jmp 0x4a0913
test eax, eax
je 0x4a075f
mov ebx, dword [esp + 0x1c]
lea eax, [ebx*8 + 1]
push eax
lea ecx, [esp + 0x40]
call fcn.004765e0
mov dword [esp + 0x98], 1
mov eax, dword [esp + 0x4c]
mov ecx, dword [esi + 0x178]
mov edx, dword [esp + 0x28]
sub eax, dword [esp + 0x48]
push ebx
mov dword [esp + 0x24], ecx
mov ecx, dword [ecx]
push edx
push eax
mov dword [esp + 0x38], ecx
push 0
lea ecx, [esp + 0x4c]
call fcn.004766c0
mov ecx, dword [esp + 0x2c]
push eax
mov eax, dword [esp + 0x3c]
mov eax, dword [eax + 4]
call eax
mov dword [esp + 0x2c], eax
xor eax, eax
cmp byte [esp + 0x1b], al
je 0x4a052f
cmp ebp, edi
setl al
jmp 0x4a0534
cmp ebp, edi
setge al
xor edi, edi
cmp eax, edi
je 0x4a0736
mov dword [esp + 0x1c], edi
mov byte [esp + 0x1a], 1
mov ebp, dword [esp + 0x24]
mov ebx, dword [esp + 0x38]
lea eax, [edi + ebp]
cmp eax, ebx
jge 0x4a06bc
mov ecx, dword [esp + 0x1c]
cmp ecx, dword [esp + 0x2c]
jge 0x4a06bc
cmp eax, dword [esi + 0x1c]
jge 0x4a057d
test eax, eax
jge 0x4a0575
xor al, al
jmp 0x4a0591
mov edx, dword [esi + 0x10]
mov al, byte [eax + edx]
jmp 0x4a0591
cmp eax, dword [esi + 0x18]
jl 0x4a0586
xor al, al
jmp 0x4a0591
mov ecx, dword [esi + 0x20]
mov edx, dword [esi + 0x10]
add ecx, eax
mov al, byte [ecx + edx]
mov ecx, dword [esi + 4]
mov byte [esp + 0x20], al
mov edx, dword [esp + 0x20]
mov byte [esp + 0x28], al
lea eax, [esi + 4]
push edx
push eax
mov eax, dword [ecx + 0x48]
call eax
xor edx, edx
test al, al
setne dl
inc edx
cmp edx, 2
jne 0x4a05e6
lea eax, [edi + ebp + 1]
cmp eax, dword [esi + 0x1c]
jge 0x4a05d0
test eax, eax
jge 0x4a05c8
xor al, al
jmp 0x4a05e2
mov ecx, dword [esi + 0x10]
mov al, byte [eax + ecx]
jmp 0x4a05e2
cmp eax, dword [esi + 0x18]
jl 0x4a05d9
xor al, al
jmp 0x4a05e2
mov ecx, dword [esi + 0x20]
add ecx, dword [esi + 0x10]
mov al, byte [ecx + eax]
mov byte [esp + 0x29], al
lea eax, [edx + edi]
mov dword [esp + 0x70], eax
add eax, ebp
cmp eax, ebx
jg 0x4a06bc
mov ecx, dword [esi + 0x178]
mov eax, dword [ecx]
mov eax, dword [eax + 4]
push edx
lea edx, [esp + 0x2c]
push edx
push 9
lea edx, [esp + 0x84]
push edx
call eax
mov ecx, dword [esp + 0x4c]
sub ecx, dword [esp + 0x48]
mov ebx, eax
mov byte [esp + ebx + 0x78], 0
mov edi, ebx
jne 0x4a062c
call fcn.00501daa
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x48]
lea ecx, [eax + edx]
lea edx, [esp + 0x78]
cmp ebx, 4
jb 0x4a0654
mov eax, dword [edx]
cmp eax, dword [ecx]
jne 0x4a0658
sub edi, 4
add ecx, 4
add edx, 4
cmp edi, 4
jae 0x4a0640
test edi, edi
je 0x4a069b
movzx eax, byte [edx]
movzx ebp, byte [ecx]
sub eax, ebp
jne 0x4a0693
cmp edi, 1
jbe 0x4a069b
movzx eax, byte [edx + 1]
movzx ebp, byte [ecx + 1]
sub eax, ebp
jne 0x4a0693
cmp edi, 2
jbe 0x4a069b
movzx eax, byte [edx + 2]
movzx ebp, byte [ecx + 2]
sub eax, ebp
jne 0x4a0693
cmp edi, 3
jbe 0x4a069b
movzx eax, byte [edx + 3]
movzx ecx, byte [ecx + 3]
sub eax, ecx
sar eax, 0x1f
or eax, 1
jmp 0x4a069d
xor eax, eax
mov edi, dword [esp + 0x70]
test eax, eax
sete al
add dword [esp + 0x1c], ebx
mov byte [esp + 0x1a], al
test al, al
jne 0x4a0547
mov ebp, dword [esp + 0x24]
jmp 0x4a06e9
cmp byte [esp + 0x1a], 0
je 0x4a06e9
mov edx, dword [esp + 0x2c]
cmp dword [esp + 0x1c], edx
jne 0x4a06e9
mov eax, dword [esp + 0xac]
mov bl, byte [esp + 0xb0]
push edi
push ebp
push eax
mov eax, esi
call fcn.0049fe50
test al, al
jne 0x4a0720
mov ecx, dword [esp + 0x34]
xor eax, eax
test ecx, ecx
setg al
lea eax, [eax + eax - 1]
lea edx, [eax + ebp]
test edx, edx
jg 0x4a0703
xor eax, eax
jmp 0x4a070d
push eax
push ecx
push ebp
mov eax, esi
call fcn.0049dc00
cmp eax, ebp
je 0x4a0736
mov edi, dword [esp + 0x54]
mov dword [esp + 0x24], eax
mov ebp, eax
jmp 0x4a0520
mov eax, dword [esp + 0x30]
lea ecx, [esp + 0x3c]
mov dword [eax], edi
call fcn.00483870
mov eax, ebp
jmp 0x4a091f
mov eax, dword [esp + 0x48]
xor esi, esi
cmp eax, esi
je 0x4a0749
push eax
call fcn.00501b8f
add esp, 4
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x48], esi
mov dword [esp + 0x4c], esi
mov dword [esp + 0x50], esi
push ecx
jmp 0x4a0914
cmp ebx, edi
mov ebx, dword [esp + 0x1c]
jg 0x4a076a
sub edi, ebx
inc edi
lea edx, [ebx + 1]
push edx
lea ecx, [esp + 0x5c]
mov dword [esp + 0x34], edi
call fcn.004765e0
mov dword [esp + 0x98], 2
mov ecx, dword [esi + 0x178]
mov edi, dword [ecx]
mov eax, dword [esp + 0x68]
sub eax, dword [esp + 0x64]
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x28]
push ebx
push ecx
push eax
push 0
lea ecx, [esp + 0x68]
call fcn.004766c0
mov ecx, dword [esp + 0x2c]
mov edx, dword [edi + 4]
push eax
call edx
cmp byte [esp + 0x1b], 0
mov eax, dword [esp + 0x30]
je 0x4a07cc
xor ecx, ecx
cmp ebp, eax
setl cl
mov eax, ecx
jmp 0x4a07d5
xor edx, edx
cmp ebp, eax
setge dl
mov eax, edx
test eax, eax
je 0x4a08f0
lea eax, [ebx + ebp]
cmp eax, dword [esp + 0x38]
setle al
xor edi, edi
test ebx, ebx
jle 0x4a0867
mov ebx, ebp
nop
test al, al
je 0x4a088b
cmp ebx, dword [esi + 0x1c]
jge 0x4a080d
test ebx, ebx
jge 0x4a0805
xor al, al
jmp 0x4a0821
mov ecx, dword [esi + 0x10]
mov al, byte [ebx + ecx]
jmp 0x4a0821
cmp ebx, dword [esi + 0x18]
jl 0x4a0816
xor al, al
jmp 0x4a0821
mov edx, dword [esi + 0x20]
mov eax, dword [esi + 0x10]
add edx, ebx
mov al, byte [edx + eax]
mov ecx, dword [esi + 0x178]
mov byte [esp + 0x1a], al
mov edx, dword [ecx]
mov edx, dword [edx + 4]
push 1
lea eax, [esp + 0x1e]
push eax
push 2
lea eax, [esp + 0x34]
push eax
call edx
mov eax, dword [esp + 0x68]
sub eax, dword [esp + 0x64]
cmp edi, eax
jb 0x4a0851
call fcn.00501daa
mov cl, byte [esp + 0x28]
mov edx, dword [esp + 0x64]
cmp cl, byte [edx + edi]
sete al
inc edi
inc ebx
cmp edi, dword [esp + 0x1c]
jl 0x4a07f0
test al, al
je 0x4a088b
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0xac]
mov bl, byte [esp + 0xb0]
push eax
push ebp
push ecx
mov eax, esi
call fcn.0049fe50
test al, al
jne 0x4a08c0
xor eax, eax
cmp dword [esp + 0x34], eax
setg al
lea eax, [eax + eax - 1]
lea edx, [eax + ebp]
test edx, edx
jg 0x4a08a3
xor eax, eax
jmp 0x4a08b1
push eax
mov eax, dword [esp + 0x38]
push eax
push ebp
mov eax, esi
call fcn.0049dc00
cmp eax, ebp
je 0x4a08f0
mov ebx, dword [esp + 0x1c]
mov ebp, eax
jmp 0x4a07b6
mov eax, dword [esp + 0x64]
xor esi, esi
cmp eax, esi
je 0x4a08d3
push eax
call fcn.00501b8f
add esp, 4
mov ecx, dword [esp + 0x58]
push ecx
mov dword [esp + 0x68], esi
mov dword [esp + 0x6c], esi
mov dword [esp + 0x70], esi
call fcn.00501b8f
add esp, 4
mov eax, ebp
jmp 0x4a091f
mov eax, dword [esp + 0x64]
xor esi, esi
cmp eax, esi
je 0x4a0903
push eax
call fcn.00501b8f
add esp, 4
mov edx, dword [esp + 0x58]
mov dword [esp + 0x64], esi
mov dword [esp + 0x68], esi
mov dword [esp + 0x6c], esi
push edx
call fcn.00501b8f
add esp, 4
or eax, 0xffffffff
mov ecx, dword [esp + 0x90]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x78]
xor ecx, esp
call fcn.00501b9a
add esp, 0x88
ret 0x20