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

Disassembly:
push 0xffffffffffffffff
push 0x4f0aac
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x164
push ebx
push ebp
mov ebx, ecx
push esi
push edi
lea ecx, [esp + 0x1c]
mov dword [esp + 0x24], ebx
call fcn.004be1a0
xor ebp, ebp
lea ecx, [esp + 0x18]
mov dword [esp + 0x17c], ebp
call fcn.004be1a0
mov al, byte [esp + 0x13]
sub esp, 0x10
mov edx, esp
or esi, 0xffffffff
mov edi, 0x520010
mov ecx, esi
mov byte [edx], al
xor eax, eax
mov dword [edx + 4], ebp
mov dword [edx + 8], ebp
mov dword [edx + 0xc], ebp
mov dword [esp + 0x24], esp
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov byte [esp + 0x18c], 1
push ecx
push 0x520010
mov ecx, edx
call fcn.004142c0
push ebp
lea ecx, [esp + 0x40]
call fcn.004ca360
push 7
mov ecx, ebx
mov byte [esp + 0x180], 2
call fcn.00484f40
cmp ax, bp
jge 0x488a5c
push ebp
push 1
push ecx
mov ecx, esp
mov dword [esp + 0x30], esp
push 6
push 0x50f76c
call fcn.004be240
push ecx
mov byte [esp + 0x18c], 3
mov ecx, esp
mov dword [esp + 0x24], esp
push 6
push 0x50f970
call fcn.004be240
mov ecx, 0x5200a8
mov byte [esp + 0x18c], 2
call fcn.004caf10
mov eax, dword [esp + 0x34]
cmp eax, ebp
je 0x488e9a
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x488e91
cmp al, 0xff
je 0x488e91
dec al
mov byte [ecx], al
jmp 0x488e9a
jne 0x488a8c
push ebp
push 1
push ecx
mov ecx, esp
mov dword [esp + 0x30], esp
push 6
push 0x50f634
call fcn.004be240
push ecx
mov byte [esp + 0x18c], 4
mov ecx, esp
mov dword [esp + 0x24], esp
push 6
push 0x50f998
jmp 0x488a1a
movsx dx, byte [0x5125a4]
mov cl, byte [ebx + 0x2f]
push edx
mov byte [0x5125a6], cl
push 0x5125a5
lea ecx, [esp + 0x24]
call fcn.004be740
lea eax, [esp + 0x18]
lea edx, [esp + 0x1c]
push eax
push ecx
mov ecx, esp
mov dword [esp + 0x1c], esp
push edx
call fcn.004be1b0
mov ecx, ebx
call fcn.00480fe0
cmp ax, bp
jg 0x488af8
push ebp
push 1
push ecx
mov ecx, esp
mov dword [esp + 0x30], esp
push 6
push 0x50f76c
call fcn.004be240
push ecx
mov byte [esp + 0x18c], 5
mov ecx, esp
mov dword [esp + 0x24], esp
jmp 0x488a13
push 3
lea ecx, [esp + 0x1c]
call fcn.004be4c0
cmp al, 0x7f
je 0x488bfe
push 5
lea ecx, [esp + 0x1c]
call fcn.004be4c0
and eax, 0xff
lea ecx, [esp + 0x18]
push eax
push 4
call fcn.004be4c0
and eax, 0xff
push eax
push ecx
mov ecx, esp
mov dword [esp + 0x30], esp
push 6
push 0x5126dc
call fcn.004be240
lea eax, [esp + 0x50]
push eax
call fcn.004cfca0
mov edx, dword [eax]
sub esp, 8
mov ecx, esp
push str._s:_r_n_x_r_n_x
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov edx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [ecx + 8], edx
mov dword [ecx + 0xc], eax
lea ecx, [esp + 0x90]
push ecx
call fcn.004de8d6
mov eax, dword [esp + 0x68]
add esp, 0x20
cmp eax, ebp
je 0x488b9f
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x488b96
cmp al, 0xff
je 0x488b96
dec al
mov byte [ecx], al
jmp 0x488b9f
push ecx
call fcn.004de1a0
add esp, 4
push ebp
push 1
sub esp, 0x10
mov edi, esp
mov dword [esp + 0x3c], esp
push ecx
mov ecx, esp
mov dword [esp + 0x30], esp
push 6
push 0x5126c8
call fcn.004be240
push edi
call fcn.004cfca0
sub esp, 8
lea edx, [esp + 0x3b]
mov ecx, esp
mov dword [esp + 0x3c], esp
lea eax, [esp + 0x9c]
push edx
push eax
mov byte [esp + 0x1ac], 6
call fcn.00413bf0
mov ecx, 0x5200a8
mov byte [esp + 0x1a4], 2
call fcn.004cae60
jmp 0x488a31
mov bl, byte [esp + 0x13]
push 0xfffff
lea ecx, [esp + 0x78]
push 0x50f930
push ecx
call fcn.004de8d6
push ecx
lea edi, [esp + 0x84]
mov edx, esp
mov ecx, esi
xor eax, eax
mov dword [esp + 0x24], esp
mov byte [edx], bl
mov dword [edx + 4], ebp
mov dword [edx + 8], ebp
mov dword [edx + 0xc], ebp
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea eax, [esp + 0x84]
push ecx
push eax
mov ecx, edx
call fcn.004142c0
sub esp, 0x10
lea edx, [esp + 0x33]
mov ecx, esp
mov dword [esp + 0x74], esp
push edx
push 0x50f8e4
mov byte [esp + 0x1a4], 7
call fcn.00413bf0
sub esp, 0x10
lea eax, [esp + 0x73]
mov ecx, esp
mov dword [esp + 0xa0], esp
push eax
push 0x50f9a8
mov byte [esp + 0x1b4], 8
call fcn.00413bf0
sub esp, 0x10
lea edx, [esp + 0x82]
mov ecx, esp
mov dword [esp + 0x98], esp
push edx
push 0x520010
mov byte [esp + 0x1c4], 9
call fcn.00413bf0
sub esp, 0x10
mov byte [esp + 0x1cc], 0xa
mov edi, esp
mov dword [esp + 0x78], esp
push ecx
mov ecx, esp
mov dword [esp + 0x74], esp
push 6
push 0x5126c0
call fcn.004be240
push edi
call fcn.004cfca0
sub esp, 8
mov byte [esp + 0x1dc], 0xb
mov edi, esp
mov dword [esp + 0x80], esp
push ecx
mov ecx, esp
mov dword [esp + 0x84], esp
push 6
push 0x5126c0
call fcn.004be240
push edi
call fcn.004cfca0
add esp, 8
lea eax, [esp + 0xbc]
mov byte [esp + 0x1dc], 2
mov ecx, 0x5200a8
push eax
call fcn.004cb120
mov edx, dword [0x4f73d0]
mov cx, word [eax]
push edx
add eax, 4
mov word [esp + 0x30], cx
push ebp
push eax
lea ecx, [esp + 0x3c]
mov byte [esp + 0x188], 0xc
call fcn.00413e90
mov eax, dword [esp + 0x64]
mov byte [esp + 0x17c], 2
cmp eax, ebp
je 0x488d7a
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x488d71
cmp al, 0xff
je 0x488d71
dec al
mov byte [ecx], al
jmp 0x488d7a
push ecx
call fcn.004de1a0
add esp, 4
lea ecx, [esp + 0x2c]
mov dword [esp + 0x64], ebp
mov dword [esp + 0x68], ebp
mov dword [esp + 0x6c], ebp
call fcn.004c48d0
cmp ax, 2
je 0x488a31
lea eax, [esp + 0x44]
lea ecx, [esp + 0x2c]
push eax
call fcn.004ca4a0
mov edi, dword [eax + 4]
cmp edi, ebp
jne 0x488db3
mov edi, 0x4f7480
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea edx, [esp + 0x74]
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov eax, dword [esp + 0x48]
and ecx, 3
cmp eax, ebp
rep movsb byte es:[edi], byte [esi]
je 0x488df9
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x488df0
cmp al, 0xff
je 0x488df0
dec al
mov byte [ecx], al
jmp 0x488df9
push ecx
call fcn.004de1a0
add esp, 4
lea ecx, [esp + 0x74]
mov dword [esp + 0x48], ebp
push ecx
mov dword [esp + 0x50], ebp
mov dword [esp + 0x54], ebp
call fcn.004dea48
add esp, 4
cmp eax, ebp
mov dword [esp + 0x14], eax
jl 0x488e25
cmp eax, 0xfffff
jle 0x488ec3
push ebp
push 1
sub esp, 0x10
mov esi, esp
mov dword [esp + 0x38], esp
push ecx
mov ecx, esp
mov dword [esp + 0x44], esp
push 6
push 0x50f634
call fcn.004be240
push esi
call fcn.004cfca0
sub esp, 8
mov byte [esp + 0x1a4], 0xd
mov esi, esp
mov dword [esp + 0x50], esp
push ecx
mov ecx, esp
mov dword [esp + 0x54], esp
push 6
push 0x5126c0
call fcn.004be240
push esi
call fcn.004cfca0
add esp, 8
mov ecx, 0x5200a8
mov byte [esp + 0x1a4], 2
call fcn.004cae60
or esi, 0xffffffff
jmp 0x488c02
push ecx
call fcn.004de1a0
add esp, 4
lea ecx, [esp + 0x18]
mov dword [esp + 0x34], ebp
mov dword [esp + 0x38], ebp
mov dword [esp + 0x3c], ebp
mov byte [esp + 0x17c], 0
call fcn.004be2e0
mov dword [esp + 0x17c], esi
jmp 0x489345
push ebp
push ebp
push ecx
mov ecx, esp
mov dword [esp + 0x2c], esp
push 6
push 0x50f634
call fcn.004be240
push ecx
mov byte [esp + 0x18c], 0xe
mov ecx, esp
mov dword [esp + 0x38], esp
push 6
push 0x50fa54
call fcn.004be240
mov ecx, 0x5200a8
mov byte [esp + 0x18c], 2
call fcn.004caf10
mov ebx, dword [esp + 0x14]
mov edi, dword [esp + 0x24]
mov eax, ebx
mov ecx, ebx
mov dl, byte [edi + 0x2f]
lea esi, [edi + 0x40]
sar eax, 0x10
sar ecx, 8
mov byte [0x5125ae], dl
mov byte [0x5125bd], al
mov byte [0x5125be], cl
mov byte [0x5125bf], bl
mov eax, dword [esi + 4]
cmp eax, ebp
je 0x488f62
mov al, byte [eax - 1]
test al, al
je 0x488f52
cmp al, 0xff
je 0x488f52
mov edx, dword [esi + 8]
push ebp
push edx
mov ecx, esi
call fcn.004144a0
mov eax, dword [esi + 4]
cmp eax, ebp
je 0x488f5d
mov byte [eax - 1], 0xff
mov eax, dword [esi + 4]
jmp 0x488f67
mov eax, 0x4f7480
mov al, byte [eax]
mov byte [0x5125b8], al
mov ecx, dword [esi + 8]
cmp ecx, 1
jb 0x488fa2
mov eax, dword [esi + 4]
cmp eax, ebp
je 0x488fa2
mov al, byte [eax - 1]
test al, al
je 0x488f91
cmp al, 0xff
je 0x488f91
push ebp
push ecx
mov ecx, esi
call fcn.004144a0
mov eax, dword [esi + 4]
cmp eax, ebp
je 0x488f9c
mov byte [eax - 1], 0xff
mov eax, dword [esi + 4]
inc eax
jmp 0x488fa7
mov eax, 0x4f7480
mov cl, byte [eax]
mov byte [0x5125b9], cl
mov ecx, dword [esi + 8]
cmp ecx, 2
jb 0x488fe5
mov eax, dword [esi + 4]
cmp eax, ebp
je 0x488fe5
mov al, byte [eax - 1]
test al, al
je 0x488fd2
cmp al, 0xff
je 0x488fd2
push ebp
push ecx
mov ecx, esi
call fcn.004144a0
mov eax, dword [esi + 4]
cmp eax, ebp
je 0x488fdd
mov byte [eax - 1], 0xff
mov eax, dword [esi + 4]
add eax, 2
jmp 0x488fea
mov eax, 0x4f7480
mov dl, byte [eax]
mov byte [0x5125ba], dl
mov ecx, dword [esi + 8]
cmp ecx, 3
jb 0x489028
mov eax, dword [esi + 4]
cmp eax, ebp
je 0x489028
mov al, byte [eax - 1]
test al, al
je 0x489015
cmp al, 0xff
je 0x489015
push ebp
push ecx
mov ecx, esi
call fcn.004144a0
mov eax, dword [esi + 4]
cmp eax, ebp
je 0x489020
mov byte [eax - 1], 0xff
mov esi, dword [esi + 4]
add esi, 3
jmp 0x48902d
mov esi, 0x4f7480
movsx cx, byte [0x5125ac]
mov al, byte [esi]
push ecx
push 0x5125ad
lea ecx, [esp + 0x24]
mov byte [0x5125bb], al
call fcn.004be740
lea edx, [esp + 0x18]
lea eax, [esp + 0x1c]
push edx
push ecx
mov ecx, esp
mov dword [esp + 0x28], esp
push eax
call fcn.004be1b0
mov ecx, edi
call fcn.00480fe0
cmp ax, bp
jg 0x48909b
push ebp
push 1
push ecx
mov ecx, esp
mov dword [esp + 0x2c], esp
push 6
push 0x50f76c
call fcn.004be240
push ecx
mov byte [esp + 0x18c], 0xf
mov ecx, esp
mov dword [esp + 0x38], esp
push 6
push 0x50f970
jmp 0x489108
mov edx, dword [edi]
mov ecx, edi
call dword [edx + 0x20]
cmp ax, bp
jg 0x4890d5
push ebp
push 1
push ecx
mov ecx, esp
mov dword [esp + 0x2c], esp
push 6
push 0x50f76c
call fcn.004be240
push ecx
mov byte [esp + 0x18c], 0x10
mov ecx, esp
mov dword [esp + 0x38], esp
push 6
push 0x50f970
jmp 0x489108
mov eax, dword [edi + 0x50]
push ebp
push 1
push ecx
cmp ebx, eax
mov ecx, esp
je 0x489124
mov dword [esp + 0x2c], esp
push 6
push 0x50f76c
call fcn.004be240
push ecx
mov byte [esp + 0x18c], 0x11
mov ecx, esp
mov dword [esp + 0x38], esp
push 6
push 0x50fa44
call fcn.004be240
mov ecx, 0x5200a8
mov byte [esp + 0x18c], 2
call fcn.004caf10
jmp 0x4892f8
mov dword [esp + 0x2c], esp
push 6
push 0x50f634
call fcn.004be240
push ecx
mov byte [esp + 0x18c], 0x12
mov ecx, esp
mov dword [esp + 0x38], esp
push 6
push 0x50fa4c
call fcn.004be240
mov ecx, 0x5200a8
mov byte [esp + 0x18c], 2
call fcn.004caf10
sub esp, 0x10
mov esi, esp
mov dword [esp + 0x30], esp
push ecx
mov ecx, esp
mov dword [esp + 0x34], esp
push 6
push 0x51266c
call fcn.004be240
push esi
call fcn.004cfca0
mov ecx, dword [0x5200c0]
add esp, 8
call fcn.004cced0
lea ecx, [edi + 4]
mov dword [esp + 0x14], ebp
mov dword [esp + 0x24], ecx
mov eax, dword [ecx + 4]
cmp eax, ebp
jne 0x4891a7
xor edx, edx
jmp 0x4891bd
mov ecx, dword [ecx + 8]
sub ecx, eax
mov eax, 0x66666667
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add edx, eax
movsx eax, word [esp + 0x14]
cmp eax, edx
jae 0x4892ed
movsx eax, word [esp + 0x14]
mov ecx, dword [esp + 0x24]
push eax
call fcn.00413cf0
mov esi, eax
sub esp, 0x10
add esi, 4
mov ebp, esp
xor edi, edi
mov dword [esp + 0x30], esp
mov cl, byte [esi]
mov dword [ebp + 4], edi
mov byte [ebp], cl
mov dword [ebp + 8], edi
mov dword [ebp + 0xc], edi
mov eax, dword [esi + 8]
mov ecx, dword [0x4f73d0]
mov ebx, eax
cmp ecx, ebx
jae 0x489208
mov ebx, ecx
cmp ebp, esi
jne 0x489223
push ecx
push ebx
mov ecx, ebp
call fcn.00414360
push edi
push edi
mov ecx, ebp
call fcn.00414360
jmp 0x4892a4
cmp ebx, edi
jbe 0x48926b
cmp ebx, eax
jne 0x48926b
mov eax, dword [esi + 4]
cmp eax, edi
jne 0x489237
mov eax, 0x4f7480
cmp byte [eax - 1], 0xfe
jae 0x48926b
push 1
mov ecx, ebp
call fcn.00414090
mov eax, dword [esi + 4]
cmp eax, edi
jne 0x489252
mov eax, 0x4f7480
mov dword [ebp + 4], eax
mov ecx, dword [esi + 8]
mov dword [ebp + 8], ecx
mov esi, dword [esi + 0xc]
mov dword [ebp + 0xc], esi
mov cl, byte [eax - 1]
inc cl
mov byte [eax - 1], cl
jmp 0x4892a4
push 1
push ebx
mov ecx, ebp
call fcn.004144a0
test al, al
je 0x4892a4
mov esi, dword [esi + 4]
cmp esi, edi
jne 0x489285
mov esi, 0x4f7480
mov edi, dword [ebp + 4]
mov ecx, ebx
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov dword [ebp + 8], ebx
mov ebp, dword [ebp + 4]
add ebp, ebx
mov byte [ebp], 0
mov esi, dword [esp + 0x24]
mov ecx, dword [esp + 0x34]
movsx eax, si
push eax
mov byte [esp + 0x190], 0x13
call fcn.00413cf0
push ecx
mov ecx, esp
mov dword [esp + 0x3c], esp
push eax
call fcn.004be1b0
mov ecx, dword [0x5200c0]
mov byte [esp + 0x190], 2
call fcn.004cd1d0
mov ecx, dword [esp + 0x24]
inc esi
mov dword [esp + 0x14], esi
xor ebp, ebp
jmp 0x48919c
mov ecx, dword [0x5200c0]
call fcn.004cd2e0
mov eax, dword [esp + 0x34]
cmp eax, ebp
je 0x48931d
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x489314
cmp al, 0xff
je 0x489314
dec al
mov byte [ecx], al
jmp 0x48931d
push ecx
call fcn.004de1a0
add esp, 4
lea ecx, [esp + 0x18]
mov dword [esp + 0x34], ebp
mov dword [esp + 0x38], ebp
mov dword [esp + 0x3c], ebp
mov byte [esp + 0x17c], 0
call fcn.004be2e0
mov dword [esp + 0x17c], 0xffffffff
lea ecx, [esp + 0x1c]
call fcn.004be2e0
mov ecx, dword [esp + 0x174]
pop edi
pop esi
pop ebp
mov ax, 1
mov dword fs:[0], ecx
pop ebx
add esp, 0x170
ret