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

Disassembly:
push 0xffffffffffffffff
push 0x4f0c2c
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.004be970
xor ebp, ebp
lea ecx, [esp + 0x18]
mov dword [esp + 0x17c], ebp
call fcn.004be970
mov al, byte [esp + 0x13]
sub esp, 0x10
mov edx, esp
or esi, 0xffffffff
mov edi, 0x520168
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 0x520168
mov ecx, edx
call fcn.004120b0
push ebp
lea ecx, [esp + 0x40]
call fcn.004cabb0
push 7
mov ecx, ebx
mov byte [esp + 0x180], 2
call fcn.00485ff0
cmp ax, bp
jge 0x48998c
push ebp
push 1
push ecx
mov ecx, esp
mov dword [esp + 0x30], esp
push 6
push 0x50f76c
call fcn.004bea10
push ecx
mov byte [esp + 0x18c], 3
mov ecx, esp
mov dword [esp + 0x24], esp
push 6
push 0x50f978
call fcn.004bea10
mov ecx, 0x520200
mov byte [esp + 0x18c], 2
call fcn.004cb760
mov eax, dword [esp + 0x34]
cmp eax, ebp
je 0x489dca
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x489dc1
cmp al, 0xff
je 0x489dc1
dec al
mov byte [ecx], al
jmp 0x489dca
jne 0x4899bc
push ebp
push 1
push ecx
mov ecx, esp
mov dword [esp + 0x30], esp
push 6
push 0x50f634
call fcn.004bea10
push ecx
mov byte [esp + 0x18c], 4
mov ecx, esp
mov dword [esp + 0x24], esp
push 6
push 0x50fa6c
jmp 0x48994a
movsx dx, byte [0x51270c]
mov cl, byte [ebx + 0x31]
push edx
mov byte [0x51270e], cl
push 0x51270d
lea ecx, [esp + 0x24]
call fcn.004bef10
lea eax, [esp + 0x18]
lea edx, [esp + 0x1c]
push eax
push ecx
mov ecx, esp
mov dword [esp + 0x1c], esp
push edx
call fcn.004be980
mov ecx, ebx
call fcn.004825d0
cmp ax, bp
jg 0x489a28
push ebp
push 1
push ecx
mov ecx, esp
mov dword [esp + 0x30], esp
push 6
push 0x50f76c
call fcn.004bea10
push ecx
mov byte [esp + 0x18c], 5
mov ecx, esp
mov dword [esp + 0x24], esp
jmp 0x489943
push 3
lea ecx, [esp + 0x1c]
call fcn.004bec90
cmp al, 0x7f
je 0x489b2e
push 5
lea ecx, [esp + 0x1c]
call fcn.004bec90
and eax, 0xff
lea ecx, [esp + 0x18]
push eax
push 4
call fcn.004bec90
and eax, 0xff
push eax
push ecx
mov ecx, esp
mov dword [esp + 0x30], esp
push 6
push 0x512844
call fcn.004bea10
lea eax, [esp + 0x50]
push eax
call fcn.004d0560
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.004df246
mov eax, dword [esp + 0x68]
add esp, 0x20
cmp eax, ebp
je 0x489acf
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x489ac6
cmp al, 0xff
je 0x489ac6
dec al
mov byte [ecx], al
jmp 0x489acf
push ecx
call fcn.004deb10
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 0x512830
call fcn.004bea10
push edi
call fcn.004d0560
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.00411a00
mov ecx, 0x520200
mov byte [esp + 0x1a4], 2
call fcn.004cb6b0
jmp 0x489961
mov bl, byte [esp + 0x13]
push 0xfffff
lea ecx, [esp + 0x78]
push 0x50f938
push ecx
call fcn.004df246
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.004120b0
sub esp, 0x10
lea edx, [esp + 0x33]
mov ecx, esp
mov dword [esp + 0x74], esp
push edx
push 0x50f8ec
mov byte [esp + 0x1a4], 7
call fcn.00411a00
sub esp, 0x10
lea eax, [esp + 0x73]
mov ecx, esp
mov dword [esp + 0xa0], esp
push eax
push 0x50fa38
mov byte [esp + 0x1b4], 8
call fcn.00411a00
sub esp, 0x10
lea edx, [esp + 0x82]
mov ecx, esp
mov dword [esp + 0x98], esp
push edx
push 0x520168
mov byte [esp + 0x1c4], 9
call fcn.00411a00
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 0x512828
call fcn.004bea10
push edi
call fcn.004d0560
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 0x512828
call fcn.004bea10
push edi
call fcn.004d0560
add esp, 8
lea eax, [esp + 0xbc]
mov byte [esp + 0x1dc], 2
mov ecx, 0x520200
push eax
call fcn.004cb970
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.00411c90
mov eax, dword [esp + 0x64]
mov byte [esp + 0x17c], 2
cmp eax, ebp
je 0x489caa
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x489ca1
cmp al, 0xff
je 0x489ca1
dec al
mov byte [ecx], al
jmp 0x489caa
push ecx
call fcn.004deb10
add esp, 4
lea ecx, [esp + 0x2c]
mov dword [esp + 0x64], ebp
mov dword [esp + 0x68], ebp
mov dword [esp + 0x6c], ebp
call fcn.004c4fe0
cmp ax, 2
je 0x489961
lea eax, [esp + 0x44]
lea ecx, [esp + 0x2c]
push eax
call fcn.004cacf0
mov edi, dword [eax + 4]
cmp edi, ebp
jne 0x489ce3
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 0x489d29
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x489d20
cmp al, 0xff
je 0x489d20
dec al
mov byte [ecx], al
jmp 0x489d29
push ecx
call fcn.004deb10
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.004df3b8
add esp, 4
cmp eax, ebp
mov dword [esp + 0x14], eax
jl 0x489d55
cmp eax, 0xfffff
jle 0x489df3
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.004bea10
push esi
call fcn.004d0560
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 0x512828
call fcn.004bea10
push esi
call fcn.004d0560
add esp, 8
mov ecx, 0x520200
mov byte [esp + 0x1a4], 2
call fcn.004cb6b0
or esi, 0xffffffff
jmp 0x489b32
push ecx
call fcn.004deb10
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.004beab0
mov dword [esp + 0x17c], esi
jmp 0x48a275
push ebp
push ebp
push ecx
mov ecx, esp
mov dword [esp + 0x2c], esp
push 6
push 0x50f634
call fcn.004bea10
push ecx
mov byte [esp + 0x18c], 0xe
mov ecx, esp
mov dword [esp + 0x38], esp
push 6
push 0x50fa4c
call fcn.004bea10
mov ecx, 0x520200
mov byte [esp + 0x18c], 2
call fcn.004cb760
mov ebx, dword [esp + 0x14]
mov edi, dword [esp + 0x24]
mov eax, ebx
mov ecx, ebx
mov dl, byte [edi + 0x31]
lea esi, [edi + 0x44]
sar eax, 0x10
sar ecx, 8
mov byte [0x512716], dl
mov byte [0x512725], al
mov byte [0x512726], cl
mov byte [0x512727], bl
mov eax, dword [esi + 4]
cmp eax, ebp
je 0x489e92
mov al, byte [eax - 1]
test al, al
je 0x489e82
cmp al, 0xff
je 0x489e82
mov edx, dword [esi + 8]
push ebp
push edx
mov ecx, esi
call fcn.00412290
mov eax, dword [esi + 4]
cmp eax, ebp
je 0x489e8d
mov byte [eax - 1], 0xff
mov eax, dword [esi + 4]
jmp 0x489e97
mov eax, 0x4f7480
mov al, byte [eax]
mov byte [0x512720], al
mov ecx, dword [esi + 8]
cmp ecx, 1
jb 0x489ed2
mov eax, dword [esi + 4]
cmp eax, ebp
je 0x489ed2
mov al, byte [eax - 1]
test al, al
je 0x489ec1
cmp al, 0xff
je 0x489ec1
push ebp
push ecx
mov ecx, esi
call fcn.00412290
mov eax, dword [esi + 4]
cmp eax, ebp
je 0x489ecc
mov byte [eax - 1], 0xff
mov eax, dword [esi + 4]
inc eax
jmp 0x489ed7
mov eax, 0x4f7480
mov cl, byte [eax]
mov byte [0x512721], cl
mov ecx, dword [esi + 8]
cmp ecx, 2
jb 0x489f15
mov eax, dword [esi + 4]
cmp eax, ebp
je 0x489f15
mov al, byte [eax - 1]
test al, al
je 0x489f02
cmp al, 0xff
je 0x489f02
push ebp
push ecx
mov ecx, esi
call fcn.00412290
mov eax, dword [esi + 4]
cmp eax, ebp
je 0x489f0d
mov byte [eax - 1], 0xff
mov eax, dword [esi + 4]
add eax, 2
jmp 0x489f1a
mov eax, 0x4f7480
mov dl, byte [eax]
mov byte [0x512722], dl
mov ecx, dword [esi + 8]
cmp ecx, 3
jb 0x489f58
mov eax, dword [esi + 4]
cmp eax, ebp
je 0x489f58
mov al, byte [eax - 1]
test al, al
je 0x489f45
cmp al, 0xff
je 0x489f45
push ebp
push ecx
mov ecx, esi
call fcn.00412290
mov eax, dword [esi + 4]
cmp eax, ebp
je 0x489f50
mov byte [eax - 1], 0xff
mov esi, dword [esi + 4]
add esi, 3
jmp 0x489f5d
mov esi, 0x4f7480
movsx cx, byte [0x512714]
mov al, byte [esi]
push ecx
push 0x512715
lea ecx, [esp + 0x24]
mov byte [0x512723], al
call fcn.004bef10
lea edx, [esp + 0x18]
lea eax, [esp + 0x1c]
push edx
push ecx
mov ecx, esp
mov dword [esp + 0x28], esp
push eax
call fcn.004be980
mov ecx, edi
call fcn.004825d0
cmp ax, bp
jg 0x489fcb
push ebp
push 1
push ecx
mov ecx, esp
mov dword [esp + 0x2c], esp
push 6
push 0x50f76c
call fcn.004bea10
push ecx
mov byte [esp + 0x18c], 0xf
mov ecx, esp
mov dword [esp + 0x38], esp
push 6
push 0x50f978
jmp 0x48a038
mov edx, dword [edi]
mov ecx, edi
call dword [edx + 0x20]
cmp ax, bp
jg 0x48a005
push ebp
push 1
push ecx
mov ecx, esp
mov dword [esp + 0x2c], esp
push 6
push 0x50f76c
call fcn.004bea10
push ecx
mov byte [esp + 0x18c], 0x10
mov ecx, esp
mov dword [esp + 0x38], esp
push 6
push 0x50f978
jmp 0x48a038
mov eax, dword [edi + 0x54]
push ebp
push 1
push ecx
cmp ebx, eax
mov ecx, esp
je 0x48a054
mov dword [esp + 0x2c], esp
push 6
push 0x50f76c
call fcn.004bea10
push ecx
mov byte [esp + 0x18c], 0x11
mov ecx, esp
mov dword [esp + 0x38], esp
push 6
push 0x50fa3c
call fcn.004bea10
mov ecx, 0x520200
mov byte [esp + 0x18c], 2
call fcn.004cb760
jmp 0x48a228
mov dword [esp + 0x2c], esp
push 6
push 0x50f634
call fcn.004bea10
push ecx
mov byte [esp + 0x18c], 0x12
mov ecx, esp
mov dword [esp + 0x38], esp
push 6
push 0x50fa44
call fcn.004bea10
mov ecx, 0x520200
mov byte [esp + 0x18c], 2
call fcn.004cb760
sub esp, 0x10
mov esi, esp
mov dword [esp + 0x30], esp
push ecx
mov ecx, esp
mov dword [esp + 0x34], esp
push 6
push 0x5127d4
call fcn.004bea10
push esi
call fcn.004d0560
mov ecx, dword [0x520218]
add esp, 8
call fcn.004cd740
lea ecx, [edi + 4]
mov dword [esp + 0x14], ebp
mov dword [esp + 0x24], ecx
mov eax, dword [ecx + 4]
cmp eax, ebp
jne 0x48a0d7
xor edx, edx
jmp 0x48a0ed
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 0x48a21d
movsx eax, word [esp + 0x14]
mov ecx, dword [esp + 0x24]
push eax
call fcn.00411b00
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 0x48a138
mov ebx, ecx
cmp ebp, esi
jne 0x48a153
push ecx
push ebx
mov ecx, ebp
call fcn.00412150
push edi
push edi
mov ecx, ebp
call fcn.00412150
jmp 0x48a1d4
cmp ebx, edi
jbe 0x48a19b
cmp ebx, eax
jne 0x48a19b
mov eax, dword [esi + 4]
cmp eax, edi
jne 0x48a167
mov eax, 0x4f7480
cmp byte [eax - 1], 0xfe
jae 0x48a19b
push 1
mov ecx, ebp
call fcn.00411e90
mov eax, dword [esi + 4]
cmp eax, edi
jne 0x48a182
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 0x48a1d4
push 1
push ebx
mov ecx, ebp
call fcn.00412290
test al, al
je 0x48a1d4
mov esi, dword [esi + 4]
cmp esi, edi
jne 0x48a1b5
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.00411b00
push ecx
mov ecx, esp
mov dword [esp + 0x3c], esp
push eax
call fcn.004be980
mov ecx, dword [0x520218]
mov byte [esp + 0x190], 2
call fcn.004cda40
mov ecx, dword [esp + 0x24]
inc esi
mov dword [esp + 0x14], esi
xor ebp, ebp
jmp 0x48a0cc
mov ecx, dword [0x520218]
call fcn.004cdb50
mov eax, dword [esp + 0x34]
cmp eax, ebp
je 0x48a24d
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x48a244
cmp al, 0xff
je 0x48a244
dec al
mov byte [ecx], al
jmp 0x48a24d
push ecx
call fcn.004deb10
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.004beab0
mov dword [esp + 0x17c], 0xffffffff
lea ecx, [esp + 0x1c]
call fcn.004beab0
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