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

Disassembly:
sub esp, 0x68
push ebx
mov ebx, dword [esp + 0x70]
xor ecx, ecx
mov byte [esp + 5], cl
cmp ebx, ecx
je 0x48a7b9
cmp dword [esp + 0x8c], ecx
je 0x48a7b9
cmp dword [esp + 0x90], 1
jl 0x48a7b9
push ebp
mov ebp, dword [esp + 0x7c]
mov eax, ebp
imul eax, dword [esp + 0x78]
dec eax
test dword [esp + 0x98], 0xff000000
push esi
setne byte [esp + 0xe]
push edi
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x30], ecx
mov dword [esp + 0x24], ecx
mov dword [esp + 0x34], ecx
mov dword [esp + 0x38], ecx
mov dword [esp + 0x3c], ecx
cmp dword [esp + 0xa4], ecx
je 0x488eff
mov esi, dword [esp + 0x9c]
push esi
call fcn.004c9c38
add esp, 4
mov dword [esp + 0x2c], eax
test eax, eax
je 0x48a7ad
push esi
call fcn.004c9c38
add esp, 4
mov dword [esp + 0x24], eax
test eax, eax
je 0x48a735
mov eax, esi
push eax
call fcn.004c9c38
add esp, 4
mov dword [esp + 0x38], eax
test eax, eax
je 0x48a735
mov ecx, esi
push ecx
call fcn.004c9c38
add esp, 4
mov dword [esp + 0x30], eax
test eax, eax
je 0x48a735
mov edx, esi
push edx
call fcn.004c9c38
add esp, 4
mov dword [esp + 0x34], eax
test eax, eax
je 0x48a735
mov eax, esi
push eax
call fcn.004c9c38
add esp, 4
mov dword [esp + 0x3c], eax
test eax, eax
je 0x48a735
xor ecx, ecx
mov dword [esp + 0x14], ecx
test esi, esi
jle 0x488eff
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x2c]
movzx edi, word [esp + 0xa6]
sub edx, eax
mov dword [esp + 0x70], edx
mov edx, dword [esp + 0x38]
sub edx, eax
mov dword [esp + 0x6c], edx
mov edx, dword [esp + 0x30]
sub edx, eax
mov dword [esp + 0x68], edx
mov edx, dword [esp + 0x34]
sub edx, eax
mov dword [esp + 0x64], edx
mov edx, dword [esp + 0x3c]
sub edx, eax
mov dword [esp + 0x60], edx
jmp 0x488df0
mov edx, dword [esp + 0x98]
mov dl, byte [edx + ecx*4 + 2]
mov esi, dword [esp + 0x14]
mov ecx, dword [esp + 0x98]
movzx ecx, byte [ecx + esi*4 + 1]
mov byte [esp + 0x10], cl
mov ecx, dword [esp + 0x98]
movzx ecx, byte [ecx + esi*4]
movzx esi, dl
mov byte [esp + 0x13], cl
mov ecx, dword [esp + 0xa4]
cmp cx, si
jbe 0x488e31
xor ecx, ecx
jmp 0x488e39
movzx esi, cx
movzx ecx, dl
sub ecx, esi
mov esi, dword [esp + 0x70]
mov byte [esi + eax], cl
mov cl, byte [esp + 0x10]
movzx esi, cl
cmp word [esp + 0xa4], si
jbe 0x488e55
xor ecx, ecx
jmp 0x488e62
movzx esi, word [esp + 0xa4]
movzx ecx, cl
sub ecx, esi
mov byte [eax], cl
mov cl, byte [esp + 0x13]
movzx esi, cl
cmp word [esp + 0xa4], si
jbe 0x488e79
xor ecx, ecx
jmp 0x488e86
movzx esi, word [esp + 0xa4]
movzx ecx, cl
sub ecx, esi
mov esi, dword [esp + 0x6c]
mov byte [esi + eax], cl
movzx esi, dl
mov edx, 0xff
sub edx, esi
mov ecx, 0xff
cmp edi, edx
jg 0x488ea3
lea ecx, [edi + esi]
mov edx, dword [esp + 0x68]
movzx esi, byte [esp + 0x10]
mov byte [edx + eax], cl
mov ecx, 0xff
sub ecx, esi
cmp edi, ecx
mov ecx, 0xff
jg 0x488ec2
lea ecx, [edi + esi]
mov edx, dword [esp + 0x64]
movzx esi, byte [esp + 0x13]
mov byte [edx + eax], cl
mov ecx, 0xff
sub ecx, esi
cmp edi, ecx
mov ecx, 0xff
jg 0x488ee1
lea ecx, [edi + esi]
mov edx, dword [esp + 0x60]
mov byte [edx + eax], cl
mov ecx, dword [esp + 0x14]
inc ecx
inc eax
mov dword [esp + 0x14], ecx
cmp ecx, dword [esp + 0x9c]
jl 0x488df0
cmp byte [esp + 0xac], 0
je 0x489cb4
mov edx, dword [esp + 0x90]
mov ecx, dword [esp + 0x94]
test edx, edx
jne 0x48953f
test ecx, ecx
jne 0x48953f
xor esi, esi
mov dword [esp + 0x14], esi
cmp dword [esp + 0xa4], esi
jne 0x4891e8
cmp byte [esp + 0xa8], 0
je 0x4890a3
cmp dword [esp + 0x28], esi
jl 0x48a730
mov ecx, dword [esp + 0xa0]
lea ecx, [ecx]
mov edi, dword [ebx + esi*4]
mov eax, edi
shr eax, 0x10
mov byte [esp + 0x10], al
mov edx, edi
xor eax, eax
shr edx, 8
mov dword [esp + 0x5c], edi
mov byte [esp + 0x11], dl
mov dword [esp + 0x18], eax
cmp dword [esp + 0x9c], eax
jle 0x48902b
lea esp, [esp]
mov edx, dword [esp + 0x98]
mov esi, dword [edx + eax*4]
xor ecx, ecx
xor edi, edi
test esi, 0x1000000
jne 0x488fb7
mov cl, byte [esp + 0x10]
cmp cl, byte [edx + eax*4 + 2]
mov ecx, 1
jne 0x488fb7
mov edi, ecx
test esi, 0x2000000
jne 0x488fdc
inc ecx
je 0x488fdc
mov edx, dword [esp + 0x98]
mov dword [esp + 0x70], ecx
mov cl, byte [esp + 0x11]
cmp cl, byte [edx + eax*4 + 1]
mov ecx, dword [esp + 0x70]
jne 0x488fdc
inc edi
test esi, 0x4000000
jne 0x489000
inc ecx
je 0x489000
mov edx, dword [esp + 0x98]
mov dword [esp + 0x70], ecx
mov cl, byte [esp + 0x5c]
cmp cl, byte [edx + eax*4]
mov ecx, dword [esp + 0x70]
jne 0x489000
inc edi
xor edx, edx
cmp ecx, edi
sete dl
inc eax
add dword [esp + 0x18], edx
cmp eax, dword [esp + 0x9c]
jl 0x488f90
cmp dword [esp + 0x18], 0
mov ecx, dword [esp + 0xa0]
mov esi, dword [esp + 0x14]
jne 0x48908f
cmp byte [esp + 0x12], 0
je 0x489081
test ecx, 0x1000000
jne 0x48904c
movzx eax, word [esp + 0x5c]
mov edx, ecx
and edx, 0xff0000
or eax, edx
mov dword [ebx + esi*4], eax
test ecx, 0x2000000
jne 0x489069
mov edx, dword [ebx + esi*4]
mov eax, ecx
and eax, 0xff00
and edx, 0xff00ff
or eax, edx
mov dword [ebx + esi*4], eax
test ecx, 0x4000000
jne 0x48908f
mov edx, dword [ebx + esi*4]
movzx eax, cl
and edx, 0xffff00
or eax, edx
jmp 0x48908c
mov eax, dword [esp + 0x5c]
and eax, 0xff000000
or eax, ecx
mov dword [ebx + esi*4], eax
inc esi
mov dword [esp + 0x14], esi
cmp esi, dword [esp + 0x28]
jle 0x488f60
jmp 0x48a730
cmp dword [esp + 0x28], esi
jl 0x48a730
lea ecx, [ecx]
mov ecx, dword [ebx + esi*4]
mov eax, ecx
shr eax, 0x10
mov byte [esp + 0x10], al
mov edx, ecx
shr edx, 8
xor eax, eax
mov byte [esp + 0x11], dl
cmp dword [esp + 0x9c], eax
jle 0x4891d4
mov edx, dword [esp + 0x98]
mov esi, dword [edx + eax*4]
xor edi, edi
mov dword [esp + 0x1c], edi
test esi, 0x1000000
jne 0x489107
mov dword [esp + 0x70], ecx
mov cl, byte [esp + 0x10]
cmp cl, byte [edx + eax*4 + 2]
mov ecx, dword [esp + 0x70]
mov edi, 1
jne 0x489107
mov dword [esp + 0x1c], edi
test esi, 0x2000000
jne 0x48912f
inc edi
je 0x48912f
mov edx, dword [esp + 0x98]
mov dword [esp + 0x70], ecx
mov cl, byte [esp + 0x11]
cmp cl, byte [edx + eax*4 + 1]
mov ecx, dword [esp + 0x70]
jne 0x48912f
inc dword [esp + 0x1c]
test esi, 0x4000000
jne 0x48914a
inc edi
je 0x48914a
mov edx, dword [esp + 0x98]
cmp cl, byte [edx + eax*4]
jne 0x48914a
inc dword [esp + 0x1c]
cmp edi, dword [esp + 0x1c]
je 0x489164
inc eax
cmp eax, dword [esp + 0x9c]
jl 0x4890d4
mov esi, dword [esp + 0x14]
jmp 0x4891d4
cmp byte [esp + 0x12], 0
mov esi, dword [esp + 0x14]
je 0x4891c4
mov eax, dword [esp + 0xa0]
test eax, 0x1000000
jne 0x48918d
movzx ecx, cx
mov edx, eax
and edx, 0xff0000
or ecx, edx
mov dword [ebx + esi*4], ecx
test eax, 0x2000000
jne 0x4891aa
mov edx, dword [ebx + esi*4]
mov ecx, eax
and ecx, 0xff00
and edx, 0xff00ff
or ecx, edx
mov dword [ebx + esi*4], ecx
test eax, 0x4000000
jne 0x4891d4
mov ecx, dword [ebx + esi*4]
movzx eax, al
and ecx, 0xffff00
or eax, ecx
mov dword [ebx + esi*4], eax
jmp 0x4891d4
and ecx, 0xff000000
or ecx, dword [esp + 0xa0]
mov dword [ebx + esi*4], ecx
inc esi
mov dword [esp + 0x14], esi
cmp esi, dword [esp + 0x28]
jle 0x4890b0
jmp 0x48a730
cmp byte [esp + 0xa8], 0
je 0x489390
cmp dword [esp + 0x28], esi
jl 0x48a730
mov eax, dword [esp + 0xa0]
mov ecx, dword [ebx + esi*4]
mov edx, ecx
shr edx, 0x10
mov byte [esp + 0x10], dl
xor edi, edi
mov edx, ecx
shr edx, 8
mov byte [esp + 0x11], dl
mov dword [esp + 0x18], edi
mov dword [esp + 0x20], edi
cmp dword [esp + 0x9c], edi
jle 0x48931f
mov eax, dword [esp + 0x30]
mov esi, dword [esp + 0x2c]
mov edx, dword [esp + 0x38]
sub esi, eax
mov dword [esp + 0x40], esi
mov esi, dword [esp + 0x24]
sub esi, eax
sub edx, eax
mov dword [esp + 0x44], esi
mov esi, dword [esp + 0x34]
mov dword [esp + 0x50], edx
mov edx, dword [esp + 0x3c]
sub esi, eax
sub edx, eax
mov dword [esp + 0x48], esi
mov dword [esp + 0x4c], edx
lea esp, [esp]
mov ebp, dword [esp + 0x98]
mov edi, dword [ebp + edi*4]
mov dl, byte [esp + 0x10]
xor esi, esi
mov dword [esp + 0x1c], esi
test edi, 0x1000000
jne 0x4892a3
mov ebp, dword [esp + 0x40]
mov esi, 1
cmp dl, byte [eax + ebp]
jb 0x4892a3
cmp dl, byte [eax]
ja 0x4892a3
mov dword [esp + 0x1c], esi
test edi, 0x2000000
jne 0x4892c8
inc esi
je 0x4892c8
mov ebp, dword [esp + 0x44]
mov dl, byte [esp + 0x11]
cmp dl, byte [eax + ebp]
jb 0x4892c8
mov ebp, dword [esp + 0x48]
cmp dl, byte [eax + ebp]
ja 0x4892c8
inc dword [esp + 0x1c]
test edi, 0x4000000
jne 0x4892e9
inc esi
je 0x4892e9
mov edx, dword [esp + 0x50]
cmp cl, byte [edx + eax]
jb 0x4892e9
mov edx, dword [esp + 0x4c]
cmp cl, byte [edx + eax]
ja 0x4892e9
inc dword [esp + 0x1c]
mov edi, dword [esp + 0x20]
xor edx, edx
cmp esi, dword [esp + 0x1c]
sete dl
inc edi
inc eax
mov dword [esp + 0x20], edi
add dword [esp + 0x18], edx
cmp edi, dword [esp + 0x9c]
jl 0x489270
cmp dword [esp + 0x18], 0
mov eax, dword [esp + 0xa0]
mov esi, dword [esp + 0x14]
jne 0x48937c
cmp byte [esp + 0x12], 0
je 0x489371
test eax, 0x1000000
jne 0x48933d
movzx ecx, cx
mov edx, eax
and edx, 0xff0000
or ecx, edx
mov dword [ebx + esi*4], ecx
test eax, 0x2000000
jne 0x48935a
mov edx, dword [ebx + esi*4]
mov ecx, eax
and ecx, 0xff00
and edx, 0xff00ff
or ecx, edx
mov dword [ebx + esi*4], ecx
test eax, 0x4000000
jne 0x48937c
mov edx, dword [ebx + esi*4]
movzx ecx, al
and edx, 0xffff00
or ecx, edx
jmp 0x489379
and ecx, 0xff000000
or ecx, eax
mov dword [ebx + esi*4], ecx
inc esi
mov dword [esp + 0x14], esi
cmp esi, dword [esp + 0x28]
jle 0x489207
jmp 0x48a730
cmp dword [esp + 0x28], esi
jl 0x48a730
lea ebx, [ebx]
mov ecx, dword [ebx + esi*4]
mov eax, ecx
mov edx, ecx
xor ebp, ebp
shr eax, 0x10
shr edx, 8
mov byte [esp + 0x10], al
mov byte [esp + 0x11], dl
mov dword [esp + 0x20], ebp
cmp dword [esp + 0x9c], ebp
jle 0x48952b
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x2c]
sub edx, eax
mov dword [esp + 0x40], edx
mov edx, dword [esp + 0x24]
sub edx, eax
mov dword [esp + 0x44], edx
mov edx, dword [esp + 0x34]
sub edx, eax
mov dword [esp + 0x48], edx
mov edx, dword [esp + 0x38]
sub edx, eax
mov dword [esp + 0x50], edx
mov edx, dword [esp + 0x3c]
sub edx, eax
mov dword [esp + 0x4c], edx
mov edi, edi
mov edx, dword [esp + 0x98]
mov esi, dword [edx + ebp*4]
xor edi, edi
mov dword [esp + 0x1c], edi
test esi, 0x1000000
jne 0x48943e
mov edx, dword [esp + 0x40]
mov dword [esp + 0x70], ecx
mov cl, byte [esp + 0x10]
cmp cl, byte [eax + edx]
mov ecx, dword [esp + 0x70]
mov edi, 1
jb 0x48943e
mov dl, byte [esp + 0x10]
cmp dl, byte [eax]
ja 0x48943e
mov dword [esp + 0x1c], edi
test esi, 0x2000000
jne 0x489477
inc edi
je 0x489477
mov edx, dword [esp + 0x44]
mov dword [esp + 0x70], ecx
mov cl, byte [esp + 0x11]
cmp cl, byte [eax + edx]
mov ecx, dword [esp + 0x70]
jb 0x489477
mov edx, dword [esp + 0x48]
mov dword [esp + 0x70], ecx
mov cl, byte [esp + 0x11]
cmp cl, byte [eax + edx]
mov ecx, dword [esp + 0x70]
ja 0x489477
inc dword [esp + 0x1c]
test esi, 0x4000000
jne 0x489498
inc edi
je 0x489498
mov edx, dword [esp + 0x50]
cmp cl, byte [eax + edx]
jb 0x489498
mov edx, dword [esp + 0x4c]
cmp cl, byte [eax + edx]
ja 0x489498
inc dword [esp + 0x1c]
cmp edi, dword [esp + 0x1c]
je 0x4894bb
mov ebp, dword [esp + 0x20]
inc ebp
inc eax
mov dword [esp + 0x20], ebp
cmp ebp, dword [esp + 0x9c]
jl 0x489400
mov esi, dword [esp + 0x14]
jmp 0x48952b
cmp byte [esp + 0x12], 0
mov esi, dword [esp + 0x14]
je 0x48951b
mov eax, dword [esp + 0xa0]
test eax, 0x1000000
jne 0x4894e4
movzx ecx, cx
mov edx, eax
and edx, 0xff0000
or ecx, edx
mov dword [ebx + esi*4], ecx
test eax, 0x2000000
jne 0x489501
mov edx, dword [ebx + esi*4]
mov ecx, eax
and ecx, 0xff00
and edx, 0xff00ff
or ecx, edx
mov dword [ebx + esi*4], ecx
test eax, 0x4000000
jne 0x48952b
mov ecx, dword [ebx + esi*4]
movzx eax, al
and ecx, 0xffff00
or eax, ecx
mov dword [ebx + esi*4], eax
jmp 0x48952b
and ecx, 0xff000000
or ecx, dword [esp + 0xa0]
mov dword [ebx + esi*4], ecx
inc esi
mov dword [esp + 0x14], esi
cmp esi, dword [esp + 0x28]
jle 0x4893a0
jmp 0x48a730
mov esi, dword [esp + 0x88]
test esi, esi
js 0x48a735
mov eax, dword [esp + 0x8c]
test eax, eax
js 0x48a735
test edx, edx
jle 0x48a735
test ecx, ecx
jle 0x48a735
sub ebp, eax
dec ebp
cmp dword [esp + 0xa4], 0
lea edx, [esi + edx - 1]
mov dword [esp + 0x5c], edx
mov dword [esp + 0x58], ebp
jne 0x4898b4
test ecx, ecx
jle 0x48a730
mov eax, dword [esp + 0x80]
mov edx, ebp
imul ebp, eax
imul edx, eax
mov dword [esp + 0x4c], edx
mov edx, eax
neg edx
mov dword [esp + 0x1c], edx
mov edx, eax
neg edx
add edx, edx
add edx, edx
add ebp, esi
lea esi, [ebx + ebp*4]
mov dword [esp + 0x54], edx
mov edx, dword [esp + 0xa0]
mov dword [esp + 0x64], esi
mov dword [esp + 0x60], ecx
lea ecx, [ecx]
mov eax, dword [esp + 0x88]
mov ecx, eax
mov dword [esp + 0x68], ecx
cmp eax, dword [esp + 0x5c]
jg 0x489888
mov dword [esp + 0x50], esi
jmp 0x4895f0
mov edi, dword [esp + 0x4c]
add edi, ecx
cmp dword [esp + 0x58], 0
mov dword [esp + 0x14], edi
jl 0x489888
cmp ecx, dword [esp + 0x80]
jge 0x489870
mov ecx, dword [esp + 0x50]
mov esi, dword [ecx]
mov eax, esi
shr eax, 0x10
mov byte [esp + 0x10], al
mov ecx, esi
shr ecx, 8
xor eax, eax
mov dword [esp + 0x28], esi
mov byte [esp + 0x11], cl
cmp byte [esp + 0xa8], al
je 0x48975f
mov dword [esp + 0x18], eax
cmp dword [esp + 0x9c], eax
jle 0x4896ef
mov edi, edi
mov edx, dword [esp + 0x98]
mov esi, dword [edx + eax*4]
xor ecx, ecx
xor edi, edi
test esi, 0x1000000
jne 0x489677
mov cl, byte [esp + 0x10]
cmp cl, byte [edx + eax*4 + 2]
mov ecx, 1
jne 0x489677
mov edi, ecx
test esi, 0x2000000
jne 0x48969c
inc ecx
je 0x48969c
mov edx, dword [esp + 0x98]
mov dword [esp + 0x70], ecx
mov cl, byte [esp + 0x11]
cmp cl, byte [edx + eax*4 + 1]
mov ecx, dword [esp + 0x70]
jne 0x48969c
inc edi
test esi, 0x4000000
jne 0x4896c0
inc ecx
je 0x4896c0
mov edx, dword [esp + 0x98]
mov dword [esp + 0x70], ecx
mov cl, byte [esp + 0x28]
cmp cl, byte [edx + eax*4]
mov ecx, dword [esp + 0x70]
jne 0x4896c0
inc edi
xor edx, edx
cmp ecx, edi
sete dl
inc eax
add dword [esp + 0x18], edx
cmp eax, dword [esp + 0x9c]
jl 0x489650
cmp dword [esp + 0x18], 0
mov edx, dword [esp + 0xa0]
jne 0x489870
mov edi, dword [esp + 0x14]
cmp byte [esp + 0x12], 0
je 0x48974d
test edx, 0x1000000
jne 0x48970e
movzx ecx, word [ebx + edi*4]
mov eax, edx
and eax, 0xff0000
or eax, ecx
mov dword [ebx + edi*4], eax
test edx, 0x2000000
jne 0x48972b
mov ecx, dword [ebx + edi*4]
mov eax, edx
and eax, 0xff00
and ecx, 0xff00ff
or eax, ecx
mov dword [ebx + edi*4], eax
test edx, 0x4000000
jne 0x489870
mov ecx, dword [ebx + edi*4]
movzx eax, dl
and ecx, 0xffff00
or eax, ecx
mov dword [ebx + edi*4], eax
jmp 0x489870
mov eax, dword [ebx + edi*4]
and eax, 0xff000000
or eax, edx
mov dword [ebx + edi*4], eax
jmp 0x489870
cmp dword [esp + 0x9c], eax
jle 0x489870
lea esp, [esp]
mov ecx, dword [esp + 0x98]
mov ecx, dword [ecx + eax*4]
xor esi, esi
xor edi, edi
test ecx, 0x1000000
jne 0x4897ab
mov edx, dword [esp + 0x98]
mov dword [esp + 0x70], ecx
mov cl, byte [esp + 0x10]
cmp cl, byte [edx + eax*4 + 2]
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0xa0]
lea esi, [edi + 1]
jne 0x4897ab
mov edi, esi
test ecx, 0x2000000
jne 0x4897d7
inc esi
je 0x4897d7
mov edx, dword [esp + 0x98]
mov dword [esp + 0x70], ecx
mov cl, byte [esp + 0x11]
cmp cl, byte [edx + eax*4 + 1]
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0xa0]
jne 0x4897d7
inc edi
test ecx, 0x4000000
jne 0x4897f4
inc esi
je 0x4897f4
mov cl, byte [esp + 0x28]
mov ebp, dword [esp + 0x98]
cmp cl, byte [ebp + eax*4]
jne 0x4897f4
inc edi
cmp esi, edi
je 0x489808
inc eax
cmp eax, dword [esp + 0x9c]
jl 0x489770
jmp 0x489870
cmp byte [esp + 0x12], 0
mov eax, dword [esp + 0x14]
je 0x489862
test edx, 0x1000000
jne 0x48982c
movzx esi, word [ebx + eax*4]
mov ecx, edx
and ecx, 0xff0000
or ecx, esi
mov dword [ebx + eax*4], ecx
test edx, 0x2000000
jne 0x48984a
mov esi, dword [ebx + eax*4]
mov ecx, edx
and ecx, 0xff00
and esi, 0xff00ff
or ecx, esi
mov dword [ebx + eax*4], ecx
test edx, 0x4000000
jne 0x489870
mov esi, dword [ebx + eax*4]
movzx ecx, dl
and esi, 0xffff00
or ecx, esi
jmp 0x48986d
mov ecx, dword [ebx + eax*4]
and ecx, 0xff000000
or ecx, edx
mov dword [ebx + eax*4], ecx
mov ecx, dword [esp + 0x68]
add dword [esp + 0x50], 4
inc ecx
mov dword [esp + 0x68], ecx
cmp ecx, dword [esp + 0x5c]
jle 0x4895f0
mov esi, dword [esp + 0x64]
mov ecx, dword [esp + 0x1c]
add esi, dword [esp + 0x54]
add dword [esp + 0x4c], ecx
mov eax, 1
sub dword [esp + 0x58], eax
sub dword [esp + 0x60], eax
mov dword [esp + 0x64], esi
jne 0x4895d0
jmp 0x48a730
test ecx, ecx
jle 0x48a730
mov eax, dword [esp + 0x80]
mov edx, ebp
imul ebp, eax
imul edx, eax
mov dword [esp + 0x64], edx
mov edx, eax
neg edx
mov dword [esp + 0x1c], edx
mov edx, eax
neg edx
add edx, edx
add edx, edx
mov dword [esp + 0x54], edx
add ebp, esi
lea edx, [ebx + ebp*4]
mov dword [esp + 0x68], edx
mov edx, dword [esp + 0xa0]
mov dword [esp + 0x70], ecx
jmp 0x489900
mov ecx, esi
mov dword [esp + 0x6c], ecx
cmp esi, dword [esp + 0x5c]
jg 0x489c8c
mov edi, dword [esp + 0x68]
mov dword [esp + 0x60], edi
jmp 0x489920
mov edi, dword [esp + 0x64]
add edi, ecx
cmp dword [esp + 0x58], 0
mov dword [esp + 0x14], edi
jl 0x489c8c
cmp ecx, eax
jge 0x489c66
mov eax, dword [esp + 0x60]
mov esi, dword [eax]
mov ecx, esi
mov eax, esi
shr ecx, 0x10
shr eax, 8
cmp byte [esp + 0xa8], 0
mov dword [esp + 0x28], esi
mov byte [esp + 0x10], cl
mov byte [esp + 0x11], al
je 0x489afa
xor esi, esi
mov dword [esp + 0x18], esi
mov dword [esp + 0x20], esi
cmp dword [esp + 0x9c], esi
jle 0x489a8a
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x2c]
sub ecx, eax
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0x24]
sub ecx, eax
mov dword [esp + 0x44], ecx
mov ecx, dword [esp + 0x34]
sub ecx, eax
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0x38]
sub ecx, eax
mov dword [esp + 0x50], ecx
mov ecx, dword [esp + 0x3c]
sub ecx, eax
mov dword [esp + 0x4c], ecx
mov edx, dword [esp + 0x98]
mov esi, dword [edx + esi*4]
xor ecx, ecx
xor edi, edi
test esi, 0x1000000
jne 0x4899e6
mov cl, byte [esp + 0x10]
mov edx, dword [esp + 0x40]
cmp cl, byte [edx + eax]
mov ecx, 1
jb 0x4899e6
mov dl, byte [esp + 0x10]
cmp dl, byte [eax]
ja 0x4899e6
mov edi, ecx
test esi, 0x2000000
jne 0x489a1c
inc ecx
je 0x489a1c
mov edx, dword [esp + 0x44]
mov dword [esp + 0x74], ecx
mov cl, byte [esp + 0x11]
cmp cl, byte [edx + eax]
mov ecx, dword [esp + 0x74]
jb 0x489a1c
mov edx, dword [esp + 0x48]
mov dword [esp + 0x74], ecx
mov cl, byte [esp + 0x11]
cmp cl, byte [edx + eax]
mov ecx, dword [esp + 0x74]
ja 0x489a1c
inc edi
test esi, 0x4000000
jne 0x489a52
inc ecx
je 0x489a52
mov edx, dword [esp + 0x50]
mov dword [esp + 0x74], ecx
mov cl, byte [esp + 0x28]
cmp cl, byte [edx + eax]
mov ecx, dword [esp + 0x74]
jb 0x489a52
mov edx, dword [esp + 0x4c]
mov dword [esp + 0x74], ecx
mov cl, byte [esp + 0x28]
cmp cl, byte [edx + eax]
mov ecx, dword [esp + 0x74]
ja 0x489a52
inc edi
mov esi, dword [esp + 0x20]
xor edx, edx
cmp ecx, edi
sete dl
inc esi
inc eax
mov dword [esp + 0x20], esi
add dword [esp + 0x18], edx
cmp esi, dword [esp + 0x9c]
jl 0x4899b4
cmp dword [esp + 0x18], 0
mov edx, dword [esp + 0xa0]
jne 0x489c66
mov edi, dword [esp + 0x14]
cmp byte [esp + 0x12], 0
je 0x489ae8
test edx, 0x1000000
jne 0x489aa9
movzx ecx, word [ebx + edi*4]
mov eax, edx
and eax, 0xff0000
or eax, ecx
mov dword [ebx + edi*4], eax
test edx, 0x2000000
jne 0x489ac6
mov ecx, dword [ebx + edi*4]
mov eax, edx
and eax, 0xff00
and ecx, 0xff00ff
or eax, ecx
mov dword [ebx + edi*4], eax
test edx, 0x4000000
jne 0x489c66
mov ecx, dword [ebx + edi*4]
movzx eax, dl
and ecx, 0xffff00
or eax, ecx
mov dword [ebx + edi*4], eax
jmp 0x489c66
mov eax, dword [ebx + edi*4]
and eax, 0xff000000
or eax, edx
mov dword [ebx + edi*4], eax
jmp 0x489c66
xor ebp, ebp
mov dword [esp + 0x20], ebp
cmp dword [esp + 0x9c], ebp
jle 0x489c66
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x2c]
sub ecx, eax
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0x24]
sub ecx, eax
mov dword [esp + 0x44], ecx
mov ecx, dword [esp + 0x34]
sub ecx, eax
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0x38]
sub ecx, eax
mov dword [esp + 0x50], ecx
mov ecx, dword [esp + 0x3c]
sub ecx, eax
mov dword [esp + 0x4c], ecx
mov ecx, dword [esp + 0x98]
mov ecx, dword [ecx + ebp*4]
xor esi, esi
xor edi, edi
test ecx, 0x1000000
jne 0x489b82
mov edx, dword [esp + 0x40]
mov dword [esp + 0x74], ecx
mov cl, byte [esp + 0x10]
cmp cl, byte [edx + eax]
mov ecx, dword [esp + 0x74]
lea esi, [edi + 1]
jb 0x489b7b
mov dl, byte [esp + 0x10]
cmp dl, byte [eax]
ja 0x489b7b
mov edi, esi
mov edx, dword [esp + 0xa0]
test ecx, 0x2000000
jne 0x489bbf
inc esi
je 0x489bbf
mov edx, dword [esp + 0x44]
mov dword [esp + 0x74], ecx
mov cl, byte [esp + 0x11]
cmp cl, byte [edx + eax]
mov ecx, dword [esp + 0x74]
jb 0x489bb8
mov edx, dword [esp + 0x48]
mov dword [esp + 0x74], ecx
mov cl, byte [esp + 0x11]
cmp cl, byte [edx + eax]
mov ecx, dword [esp + 0x74]
ja 0x489bb8
inc edi
mov edx, dword [esp + 0xa0]
test ecx, 0x4000000
jne 0x489be1
inc esi
je 0x489be1
mov cl, byte [esp + 0x28]
mov ebp, dword [esp + 0x50]
cmp cl, byte [eax + ebp]
jb 0x489be1
mov ebp, dword [esp + 0x4c]
cmp cl, byte [eax + ebp]
ja 0x489be1
inc edi
cmp esi, edi
je 0x489bfe
mov ebp, dword [esp + 0x20]
inc ebp
inc eax
mov dword [esp + 0x20], ebp
cmp ebp, dword [esp + 0x9c]
jl 0x489b43
jmp 0x489c66
cmp byte [esp + 0x12], 0
mov eax, dword [esp + 0x14]
je 0x489c58
test edx, 0x1000000
jne 0x489c22
movzx esi, word [ebx + eax*4]
mov ecx, edx
and ecx, 0xff0000
or ecx, esi
mov dword [ebx + eax*4], ecx
test edx, 0x2000000
jne 0x489c40
mov esi, dword [ebx + eax*4]
mov ecx, edx
and ecx, 0xff00
and esi, 0xff00ff
or ecx, esi
mov dword [ebx + eax*4], ecx
test edx, 0x4000000
jne 0x489c66
mov esi, dword [ebx + eax*4]
movzx ecx, dl
and esi, 0xffff00
or ecx, esi
jmp 0x489c63
mov ecx, dword [ebx + eax*4]
and ecx, 0xff000000
or ecx, edx
mov dword [ebx + eax*4], ecx
mov ecx, dword [esp + 0x6c]
add dword [esp + 0x60], 4
mov esi, dword [esp + 0x88]
mov eax, dword [esp + 0x80]
inc ecx
mov dword [esp + 0x6c], ecx
cmp ecx, dword [esp + 0x5c]
jle 0x489920
mov edi, dword [esp + 0x1c]
add dword [esp + 0x64], edi
mov edi, dword [esp + 0x54]
add dword [esp + 0x68], edi
mov ecx, 1
sub dword [esp + 0x58], ecx
sub dword [esp + 0x70], ecx
jne 0x489900
jmp 0x48a730
mov ecx, dword [esp + 0x90]
mov esi, dword [esp + 0x94]
test ecx, ecx
jne 0x48a15e
test esi, esi
jne 0x48a15e
cmp dword [esp + 0xa4], esi
jne 0x489ed0
cmp byte [esp + 0xa8], 0
je 0x489e08
xor edi, edi
cmp dword [esp + 0x28], edi
jl 0x48a730
lea esp, [esp]
mov esi, dword [ebx + edi*4]
xor eax, eax
mov ecx, esi
xor edx, edx
xor ebp, ebp
and ecx, 0xffffff
mov dword [esp + 0x68], eax
mov dword [esp + 0x18], edx
cmp dword [esp + 0x9c], eax
jle 0x489d8e
cmp dword [esp + 0x9c], 2
jl 0x489d61
lea esp, [esp]
mov edx, dword [esp + 0x98]
xor ebx, ebx
cmp ecx, dword [edx + eax*4]
sete bl
add ebp, ebx
xor ebx, ebx
cmp ecx, dword [edx + eax*4 + 4]
mov edx, dword [esp + 0x9c]
sete bl
add eax, 2
dec edx
add dword [esp + 0x68], ebx
cmp eax, edx
jl 0x489d30
mov edx, dword [esp + 0x18]
cmp eax, dword [esp + 0x9c]
jge 0x489d79
mov ebx, dword [esp + 0x98]
xor edx, edx
cmp ecx, dword [ebx + eax*4]
sete dl
add ebp, dword [esp + 0x68]
mov eax, dword [esp + 0xa0]
add edx, ebp
mov ebx, dword [esp + 0x7c]
jne 0x489df8
jmp 0x489d99
mov ebx, dword [esp + 0x7c]
mov eax, dword [esp + 0xa0]
cmp byte [esp + 0x12], 0
je 0x489ded
test eax, 0x1000000
jne 0x489db7
movzx edx, si
mov ecx, eax
and ecx, 0xff0000
or edx, ecx
mov dword [ebx + edi*4], edx
test eax, 0x2000000
jne 0x489dd4
mov ecx, dword [ebx + edi*4]
mov edx, eax
and edx, 0xff00
and ecx, 0xff00ff
or edx, ecx
mov dword [ebx + edi*4], edx
test eax, 0x4000000
jne 0x489df8
movzx edx, al
mov eax, dword [ebx + edi*4]
and eax, 0xffff00
or edx, eax
mov dword [ebx + edi*4], edx
jmp 0x489df8
and esi, 0xff000000
or esi, eax
mov dword [ebx + edi*4], esi
inc edi
cmp edi, dword [esp + 0x28]
jle 0x489d00
jmp 0x48a730
xor ecx, ecx
cmp dword [esp + 0x28], ecx
jl 0x48a730
mov edi, dword [esp + 0x28]
mov eax, dword [ebx + ecx*4]
mov edx, eax
xor esi, esi
and edx, 0xffffff
cmp dword [esp + 0x9c], esi
jle 0x489ec2
mov ebp, dword [esp + 0x98]
cmp edx, dword [ebp + esi*4]
je 0x489e4b
inc esi
cmp esi, dword [esp + 0x9c]
jl 0x489e32
jmp 0x489ec2
cmp byte [esp + 0x12], 0
je 0x489eb3
test dword [esp + 0xa0], 0x1000000
jne 0x489e78
movzx edx, ax
mov eax, dword [esp + 0xa0]
mov esi, eax
and esi, 0xff0000
or edx, esi
mov dword [ebx + ecx*4], edx
jmp 0x489e7f
mov eax, dword [esp + 0xa0]
test eax, 0x2000000
jne 0x489e9c
mov esi, dword [ebx + ecx*4]
mov edx, eax
and edx, 0xff00
and esi, 0xff00ff
or edx, esi
mov dword [ebx + ecx*4], edx
test eax, 0x4000000
jne 0x489ec2
mov edx, dword [ebx + ecx*4]
movzx eax, al
and edx, 0xffff00
or eax, edx
jmp 0x489ebf
and eax, 0xff000000
or eax, dword [esp + 0xa0]
mov dword [ebx + ecx*4], eax
inc ecx
cmp ecx, edi
jle 0x489e18
jmp 0x48a730
xor esi, esi
cmp byte [esp + 0xa8], 0
mov dword [esp + 0x14], esi
je 0x48a028
cmp dword [esp + 0x28], esi
jl 0x48a730
mov eax, dword [esp + 0xa0]
mov ecx, dword [ebx + esi*4]
mov edx, ecx
shr edx, 0x10
mov byte [esp + 0x10], dl
mov edx, ecx
shr edx, 8
cmp dword [esp + 0x9c], 0
mov byte [esp + 0x11], dl
mov dword [esp + 0x18], 0
jle 0x489fb7
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x2c]
mov esi, dword [esp + 0x38]
mov edi, dword [esp + 0x3c]
sub edx, eax
mov dword [esp + 0x40], edx
mov edx, dword [esp + 0x24]
sub edx, eax
mov dword [esp + 0x44], edx
mov edx, dword [esp + 0x34]
sub edx, eax
mov dword [esp + 0x48], edx
mov edx, dword [esp + 0x9c]
sub esi, eax
sub edi, eax
mov dword [esp + 0x70], edx
lea esp, [esp]
mov ebp, dword [esp + 0x40]
mov dl, byte [esp + 0x10]
cmp dl, byte [eax + ebp]
jb 0x489f98
cmp dl, byte [eax]
ja 0x489f98
mov dl, byte [esp + 0x11]
mov ebp, dword [esp + 0x44]
cmp dl, byte [eax + ebp]
jb 0x489f98
mov ebp, dword [esp + 0x48]
cmp dl, byte [eax + ebp]
ja 0x489f98
cmp cl, byte [esi + eax]
jb 0x489f98
cmp cl, byte [edi + eax]
ja 0x489f98
mov edx, 1
jmp 0x489f9a
xor edx, edx
add dword [esp + 0x18], edx
inc eax
dec dword [esp + 0x70]
jne 0x489f60
cmp dword [esp + 0x18], 0
mov eax, dword [esp + 0xa0]
mov esi, dword [esp + 0x14]
jne 0x48a014
cmp byte [esp + 0x12], 0
je 0x48a009
test eax, 0x1000000
jne 0x489fd5
movzx ecx, cx
mov edx, eax
and edx, 0xff0000
or ecx, edx
mov dword [ebx + esi*4], ecx
test eax, 0x2000000
jne 0x489ff2
mov edx, dword [ebx + esi*4]
mov ecx, eax
and ecx, 0xff00
and edx, 0xff00ff
or ecx, edx
mov dword [ebx + esi*4], ecx
test eax, 0x4000000
jne 0x48a014
mov edx, dword [ebx + esi*4]
movzx ecx, al
and edx, 0xffff00
or ecx, edx
jmp 0x48a011
and ecx, 0xff000000
or ecx, eax
mov dword [ebx + esi*4], ecx
inc esi
mov dword [esp + 0x14], esi
cmp esi, dword [esp + 0x28]
jle 0x489ef5
jmp 0x48a730
cmp dword [esp + 0x28], esi
jl 0x48a730
mov ecx, dword [ebx + esi*4]
mov edx, ecx
mov eax, ecx
shr edx, 0x10
shr eax, 8
cmp dword [esp + 0x9c], 0
mov byte [esp + 0x10], dl
mov byte [esp + 0x11], al
mov dword [esp + 0x20], 0
jle 0x48a14a
mov eax, dword [esp + 0x30]
mov esi, dword [esp + 0x2c]
mov edi, dword [esp + 0x3c]
sub esi, eax
mov dword [esp + 0x40], esi
mov esi, dword [esp + 0x24]
sub esi, eax
mov dword [esp + 0x44], esi
mov esi, dword [esp + 0x34]
sub esi, eax
mov dword [esp + 0x48], esi
mov esi, dword [esp + 0x38]
sub esi, eax
sub edi, eax
jmp 0x48a094
mov dl, byte [esp + 0x10]
mov ebp, dword [esp + 0x40]
cmp dl, byte [eax + ebp]
jb 0x48a0c1
cmp dl, byte [eax]
ja 0x48a0c1
mov dl, byte [esp + 0x11]
mov ebp, dword [esp + 0x44]
cmp dl, byte [eax + ebp]
jb 0x48a0c1
mov ebp, dword [esp + 0x48]
cmp dl, byte [eax + ebp]
ja 0x48a0c1
cmp cl, byte [eax + esi]
jb 0x48a0c1
cmp cl, byte [eax + edi]
jbe 0x48a0da
mov edx, dword [esp + 0x20]
inc edx
inc eax
mov dword [esp + 0x20], edx
cmp edx, dword [esp + 0x9c]
jl 0x48a090
mov esi, dword [esp + 0x14]
jmp 0x48a14a
cmp byte [esp + 0x12], 0
mov esi, dword [esp + 0x14]
je 0x48a13a
mov eax, dword [esp + 0xa0]
test eax, 0x1000000
jne 0x48a103
movzx ecx, cx
mov edx, eax
and edx, 0xff0000
or ecx, edx
mov dword [ebx + esi*4], ecx
test eax, 0x2000000
jne 0x48a120
mov edx, dword [ebx + esi*4]
mov ecx, eax
and ecx, 0xff00
and edx, 0xff00ff
or ecx, edx
mov dword [ebx + esi*4], ecx
test eax, 0x4000000
jne 0x48a14a
mov ecx, dword [ebx + esi*4]
movzx eax, al
and ecx, 0xffff00
or eax, ecx
mov dword [ebx + esi*4], eax
jmp 0x48a14a
and ecx, 0xff000000
or ecx, dword [esp + 0xa0]
mov dword [ebx + esi*4], ecx
inc esi
mov dword [esp + 0x14], esi
cmp esi, dword [esp + 0x28]
jle 0x48a032
jmp 0x48a730
mov edx, dword [esp + 0x88]
test edx, edx
js 0x48a735
mov eax, dword [esp + 0x8c]
test eax, eax
js 0x48a735
test ecx, ecx
jle 0x48a735
test esi, esi
jle 0x48a735
sub ebp, eax
dec ebp
cmp dword [esp + 0xa4], 0
lea ecx, [edx + ecx - 1]
mov dword [esp + 0x64], ecx
mov dword [esp + 0x58], ebp
jne 0x48a422
test esi, esi
jle 0x48a730
mov eax, dword [esp + 0x80]
mov edx, ebp
imul ebp, eax
imul edx, eax
mov dword [esp + 0x68], edx
mov edx, eax
neg edx
mov dword [esp + 0x1c], edx
mov edx, eax
mov eax, dword [esp + 0x94]
neg edx
add edx, edx
add edx, edx
add ebp, dword [esp + 0x88]
mov dword [esp + 0x54], edx
lea edx, [ebx + ebp*4]
mov dword [esp + 0x6c], edx
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x88]
mov dword [esp + 0x70], eax
cmp eax, ecx
jg 0x48a3f6
mov dword [esp + 0x5c], edx
jmp 0x48a210
mov esi, dword [esp + 0x68]
mov edi, dword [esp + 0x98]
mov edx, dword [esp + 0x9c]
add esi, eax
cmp dword [esp + 0x58], 0
jl 0x48a3f6
cmp eax, dword [esp + 0x80]
jge 0x48a3dc
cmp byte [esp + 0xa8], 0
je 0x48a34d
mov ecx, dword [esp + 0x5c]
mov ecx, dword [ecx]
mov ebx, dword [esp + 0x9c]
xor edx, edx
xor edi, edi
xor ebp, ebp
and ecx, 0xffffff
xor eax, eax
mov dword [esp + 0x18], edx
test ebx, ebx
jle 0x48a2d0
cmp ebx, 2
jl 0x48a2a8
mov ebx, dword [esp + 0x98]
lea esp, [esp]
xor edx, edx
cmp ecx, dword [ebx + eax*4]
sete dl
add edi, edx
xor edx, edx
cmp ecx, dword [ebx + eax*4 + 4]
sete dl
add eax, 2
add ebp, edx
mov edx, dword [esp + 0x9c]
dec edx
cmp eax, edx
jl 0x48a280
mov edx, dword [esp + 0x18]
cmp eax, dword [esp + 0x9c]
jge 0x48a2c0
mov ebx, dword [esp + 0x98]
xor edx, edx
cmp ecx, dword [ebx + eax*4]
sete dl
mov ebx, dword [esp + 0x7c]
add edi, ebp
add edx, edi
jne 0x48a3dc
jmp 0x48a2d4
mov ebx, dword [esp + 0x7c]
cmp byte [esp + 0x12], 0
mov eax, dword [esp + 0xa0]
je 0x48a33d
test eax, 0x1000000
jne 0x48a2fa
movzx edx, word [ebx + esi*4]
mov ecx, eax
and ecx, 0xff0000
or ecx, edx
mov dword [ebx + esi*4], ecx
test eax, 0x2000000
jne 0x48a317
mov edx, dword [ebx + esi*4]
mov ecx, eax
and ecx, 0xff00
and edx, 0xff00ff
or ecx, edx
mov dword [ebx + esi*4], ecx
test eax, 0x4000000
jne 0x48a3dc
mov ecx, dword [ebx + esi*4]
movzx eax, byte [esp + 0xa0]
and ecx, 0xffff00
or eax, ecx
mov dword [ebx + esi*4], eax
jmp 0x48a3dc
mov edx, dword [ebx + esi*4]
and edx, 0xff000000
or edx, eax
jmp 0x48a3d9
mov eax, dword [esp + 0x5c]
mov ecx, dword [eax]
and ecx, 0xffffff
xor eax, eax
test edx, edx
jle 0x48a3dc
nop
cmp ecx, dword [edi + eax*4]
je 0x48a36c
inc eax
cmp eax, edx
jl 0x48a360
jmp 0x48a3dc
cmp byte [esp + 0x12], 0
je 0x48a3c9
mov eax, dword [esp + 0xa0]
test eax, 0x1000000
jne 0x48a392
movzx edx, word [ebx + esi*4]
mov ecx, eax
and ecx, 0xff0000
or ecx, edx
mov dword [ebx + esi*4], ecx
test eax, 0x2000000
jne 0x48a3af
mov edx, dword [ebx + esi*4]
mov ecx, eax
and ecx, 0xff00
and edx, 0xff00ff
or ecx, edx
mov dword [ebx + esi*4], ecx
test eax, 0x4000000
jne 0x48a3dc
mov ecx, dword [ebx + esi*4]
movzx eax, al
and ecx, 0xffff00
or eax, ecx
mov dword [ebx + esi*4], eax
jmp 0x48a3dc
mov edx, dword [ebx + esi*4]
and edx, 0xff000000
or edx, dword [esp + 0xa0]
mov dword [ebx + esi*4], edx
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x64]
add dword [esp + 0x5c], 4
inc eax
mov dword [esp + 0x70], eax
cmp eax, ecx
jle 0x48a210
mov edx, dword [esp + 0x1c]
add dword [esp + 0x68], edx
mov edx, dword [esp + 0x6c]
add edx, dword [esp + 0x54]
mov eax, 1
sub dword [esp + 0x58], eax
sub dword [esp + 0x60], eax
mov dword [esp + 0x6c], edx
jne 0x48a1f1
jmp 0x48a730
test esi, esi
jle 0x48a730
mov eax, dword [esp + 0x80]
mov edx, ebp
imul ebp, eax
imul edx, eax
mov dword [esp + 0x60], edx
mov edx, eax
neg edx
mov dword [esp + 0x1c], edx
mov edx, eax
mov eax, dword [esp + 0x94]
neg edx
add edx, edx
add edx, edx
add ebp, dword [esp + 0x88]
mov dword [esp + 0x54], edx
lea esi, [ebx + ebp*4]
mov dword [esp + 0x5c], esi
mov dword [esp + 0x50], eax
jmp 0x48a474
mov ecx, dword [esp + 0x64]
mov eax, dword [esp + 0x88]
mov edx, eax
mov dword [esp + 0x6c], edx
cmp eax, ecx
jg 0x48a709
mov dword [esp + 0x68], esi
lea ecx, [ecx]
mov eax, dword [esp + 0x60]
add eax, edx
cmp dword [esp + 0x58], 0
mov dword [esp + 0x14], eax
jl 0x48a709
cmp edx, dword [esp + 0x80]
jge 0x48a6f1
mov edx, dword [esp + 0x68]
mov esi, dword [edx]
mov ecx, esi
mov edx, esi
shr ecx, 0x10
shr edx, 8
cmp byte [esp + 0xa8], 0
mov dword [esp + 0x28], esi
mov byte [esp + 0x10], cl
mov byte [esp + 0x11], dl
je 0x48a5f5
cmp dword [esp + 0x9c], 0
mov dword [esp + 0x18], 0
jle 0x48a579
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x2c]
mov esi, dword [esp + 0x24]
mov edi, dword [esp + 0x34]
mov ebp, dword [esp + 0x38]
mov ecx, dword [esp + 0x3c]
mov ebx, dword [esp + 0x9c]
sub edx, eax
sub esi, eax
sub edi, eax
sub ebp, eax
sub ecx, eax
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x70], ebx
jmp 0x48a529
mov ecx, dword [esp + 0x4c]
mov bl, byte [esp + 0x10]
cmp bl, byte [edx + eax]
jb 0x48a559
cmp bl, byte [eax]
ja 0x48a559
mov bl, byte [esp + 0x11]
cmp bl, byte [esi + eax]
jb 0x48a559
cmp bl, byte [edi + eax]
ja 0x48a559
mov bl, byte [esp + 0x28]
cmp bl, byte [eax + ebp]
jb 0x48a559
cmp bl, byte [ecx + eax]
ja 0x48a559
mov ecx, 1
jmp 0x48a55b
xor ecx, ecx
add dword [esp + 0x18], ecx
inc eax
dec dword [esp + 0x70]
jne 0x48a525
cmp dword [esp + 0x18], 0
mov ebx, dword [esp + 0x7c]
jne 0x48a6f1
mov eax, dword [esp + 0x14]
cmp byte [esp + 0x12], 0
mov ecx, dword [esp + 0xa0]
je 0x48a5e2
test ecx, 0x1000000
jne 0x48a5a0
movzx esi, word [ebx + eax*4]
mov edx, ecx
and edx, 0xff0000
or edx, esi
mov dword [ebx + eax*4], edx
test ecx, 0x2000000
jne 0x48a5be
mov esi, dword [ebx + eax*4]
mov edx, ecx
and edx, 0xff00
and esi, 0xff00ff
or edx, esi
mov dword [ebx + eax*4], edx
test ecx, 0x4000000
jne 0x48a6f1
movzx ecx, byte [esp + 0xa0]
mov edx, dword [ebx + eax*4]
and edx, 0xffff00
or ecx, edx
jmp 0x48a6ee
mov edx, dword [ebx + eax*4]
and edx, 0xff000000
or edx, ecx
mov dword [ebx + eax*4], edx
jmp 0x48a6f1
cmp dword [esp + 0x9c], 0
mov dword [esp + 0x20], 0
jle 0x48a6f1
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x2c]
mov esi, dword [esp + 0x24]
mov edi, dword [esp + 0x34]
mov ebp, dword [esp + 0x38]
mov edx, dword [esp + 0x3c]
sub ecx, eax
sub esi, eax
sub edi, eax
sub ebp, eax
sub edx, eax
mov dword [esp + 0x4c], edx
jmp 0x48a637
mov edx, dword [esp + 0x4c]
mov bl, byte [esp + 0x10]
cmp bl, byte [ecx + eax]
jb 0x48a660
cmp bl, byte [eax]
ja 0x48a660
mov bl, byte [esp + 0x11]
cmp bl, byte [esi + eax]
jb 0x48a660
cmp bl, byte [edi + eax]
ja 0x48a660
mov bl, byte [esp + 0x28]
cmp bl, byte [eax + ebp]
jb 0x48a660
cmp bl, byte [edx + eax]
jbe 0x48a679
mov edx, dword [esp + 0x20]
inc edx
inc eax
mov dword [esp + 0x20], edx
cmp edx, dword [esp + 0x9c]
jl 0x48a633
mov ebx, dword [esp + 0x7c]
jmp 0x48a6f1
cmp byte [esp + 0x12], 0
mov ebx, dword [esp + 0x7c]
mov eax, dword [esp + 0x14]
je 0x48a6de
mov ecx, dword [esp + 0xa0]
test ecx, 0x1000000
jne 0x48a6a8
movzx esi, word [ebx + eax*4]
mov edx, ecx
and edx, 0xff0000
or edx, esi
mov dword [ebx + eax*4], edx
test ecx, 0x2000000
jne 0x48a6c6
mov esi, dword [ebx + eax*4]
mov edx, ecx
and edx, 0xff00
and esi, 0xff00ff
or edx, esi
mov dword [ebx + eax*4], edx
test ecx, 0x4000000
jne 0x48a6f1
mov edx, dword [ebx + eax*4]
movzx ecx, cl
and edx, 0xffff00
or ecx, edx
jmp 0x48a6ee
mov ecx, dword [ebx + eax*4]
and ecx, 0xff000000
or ecx, dword [esp + 0xa0]
mov dword [ebx + eax*4], ecx
mov edx, dword [esp + 0x6c]
add dword [esp + 0x68], 4
inc edx
mov dword [esp + 0x6c], edx
cmp edx, dword [esp + 0x64]
jle 0x48a490
mov esi, dword [esp + 0x5c]
mov edx, dword [esp + 0x1c]
add esi, dword [esp + 0x54]
add dword [esp + 0x60], edx
mov eax, 1
sub dword [esp + 0x58], eax
sub dword [esp + 0x50], eax
mov dword [esp + 0x5c], esi
jne 0x48a470
mov byte [esp + 0x11], 1
cmp dword [esp + 0x2c], 0
je 0x48a749
mov eax, dword [esp + 0x2c]
push eax
call fcn.004ca991
add esp, 4
cmp dword [esp + 0x30], 0
je 0x48a75d
mov ecx, dword [esp + 0x30]
push ecx
call fcn.004ca991
add esp, 4
cmp dword [esp + 0x24], 0
je 0x48a771
mov edx, dword [esp + 0x24]
push edx
call fcn.004ca991
add esp, 4
cmp dword [esp + 0x34], 0
je 0x48a785
mov eax, dword [esp + 0x34]
push eax
call fcn.004ca991
add esp, 4
cmp dword [esp + 0x38], 0
je 0x48a799
mov ecx, dword [esp + 0x38]
push ecx
call fcn.004ca991
add esp, 4
cmp dword [esp + 0x3c], 0
je 0x48a7ad
mov edx, dword [esp + 0x3c]
push edx
call fcn.004ca991
add esp, 4
mov al, byte [esp + 0x11]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x68
ret
xor al, al
pop ebx
add esp, 0x68
ret