Function at 0x483c20
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 0x485749
cmp dword [esp + 0x8c], ecx
je 0x485749
cmp dword [esp + 0x90], 1
jl 0x485749
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 0x483e8f
mov esi, dword [esp + 0x9c]
push esi
call fcn.004c4f28
add esp, 4
mov dword [esp + 0x2c], eax
test eax, eax
je 0x48573d
push esi
call fcn.004c4f28
add esp, 4
mov dword [esp + 0x24], eax
test eax, eax
je 0x4856c5
mov eax, esi
push eax
call fcn.004c4f28
add esp, 4
mov dword [esp + 0x38], eax
test eax, eax
je 0x4856c5
mov ecx, esi
push ecx
call fcn.004c4f28
add esp, 4
mov dword [esp + 0x30], eax
test eax, eax
je 0x4856c5
mov edx, esi
push edx
call fcn.004c4f28
add esp, 4
mov dword [esp + 0x34], eax
test eax, eax
je 0x4856c5
mov eax, esi
push eax
call fcn.004c4f28
add esp, 4
mov dword [esp + 0x3c], eax
test eax, eax
je 0x4856c5
xor ecx, ecx
mov dword [esp + 0x14], ecx
test esi, esi
jle 0x483e8f
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 0x483d80
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 0x483dc1
xor ecx, ecx
jmp 0x483dc9
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 0x483de5
xor ecx, ecx
jmp 0x483df2
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 0x483e09
xor ecx, ecx
jmp 0x483e16
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 0x483e33
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 0x483e52
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 0x483e71
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 0x483d80
cmp byte [esp + 0xac], 0
je 0x484c44
mov edx, dword [esp + 0x90]
mov ecx, dword [esp + 0x94]
test edx, edx
jne 0x4844cf
test ecx, ecx
jne 0x4844cf
xor esi, esi
mov dword [esp + 0x14], esi
cmp dword [esp + 0xa4], esi
jne 0x484178
cmp byte [esp + 0xa8], 0
je 0x484033
cmp dword [esp + 0x28], esi
jl 0x4856c0
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 0x483fbb
lea esp, [esp]
mov edx, dword [esp + 0x98]
mov esi, dword [edx + eax*4]
xor ecx, ecx
xor edi, edi
test esi, 0x1000000
jne 0x483f47
mov cl, byte [esp + 0x10]
cmp cl, byte [edx + eax*4 + 2]
mov ecx, 1
jne 0x483f47
mov edi, ecx
test esi, 0x2000000
jne 0x483f6c
inc ecx
je 0x483f6c
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 0x483f6c
inc edi
test esi, 0x4000000
jne 0x483f90
inc ecx
je 0x483f90
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 0x483f90
inc edi
xor edx, edx
cmp ecx, edi
sete dl
inc eax
add dword [esp + 0x18], edx
cmp eax, dword [esp + 0x9c]
jl 0x483f20
cmp dword [esp + 0x18], 0
mov ecx, dword [esp + 0xa0]
mov esi, dword [esp + 0x14]
jne 0x48401f
cmp byte [esp + 0x12], 0
je 0x484011
test ecx, 0x1000000
jne 0x483fdc
movzx eax, word [esp + 0x5c]
mov edx, ecx
and edx, 0xff0000
or eax, edx
mov dword [ebx + esi*4], eax
test ecx, 0x2000000
jne 0x483ff9
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 0x48401f
mov edx, dword [ebx + esi*4]
movzx eax, cl
and edx, 0xffff00
or eax, edx
jmp 0x48401c
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 0x483ef0
jmp 0x4856c0
cmp dword [esp + 0x28], esi
jl 0x4856c0
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 0x484164
mov edx, dword [esp + 0x98]
mov esi, dword [edx + eax*4]
xor edi, edi
mov dword [esp + 0x1c], edi
test esi, 0x1000000
jne 0x484097
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 0x484097
mov dword [esp + 0x1c], edi
test esi, 0x2000000
jne 0x4840bf
inc edi
je 0x4840bf
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 0x4840bf
inc dword [esp + 0x1c]
test esi, 0x4000000
jne 0x4840da
inc edi
je 0x4840da
mov edx, dword [esp + 0x98]
cmp cl, byte [edx + eax*4]
jne 0x4840da
inc dword [esp + 0x1c]
cmp edi, dword [esp + 0x1c]
je 0x4840f4
inc eax
cmp eax, dword [esp + 0x9c]
jl 0x484064
mov esi, dword [esp + 0x14]
jmp 0x484164
cmp byte [esp + 0x12], 0
mov esi, dword [esp + 0x14]
je 0x484154
mov eax, dword [esp + 0xa0]
test eax, 0x1000000
jne 0x48411d
movzx ecx, cx
mov edx, eax
and edx, 0xff0000
or ecx, edx
mov dword [ebx + esi*4], ecx
test eax, 0x2000000
jne 0x48413a
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 0x484164
mov ecx, dword [ebx + esi*4]
movzx eax, al
and ecx, 0xffff00
or eax, ecx
mov dword [ebx + esi*4], eax
jmp 0x484164
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 0x484040
jmp 0x4856c0
cmp byte [esp + 0xa8], 0
je 0x484320
cmp dword [esp + 0x28], esi
jl 0x4856c0
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 0x4842af
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 0x484233
mov ebp, dword [esp + 0x40]
mov esi, 1
cmp dl, byte [eax + ebp]
jb 0x484233
cmp dl, byte [eax]
ja 0x484233
mov dword [esp + 0x1c], esi
test edi, 0x2000000
jne 0x484258
inc esi
je 0x484258
mov ebp, dword [esp + 0x44]
mov dl, byte [esp + 0x11]
cmp dl, byte [eax + ebp]
jb 0x484258
mov ebp, dword [esp + 0x48]
cmp dl, byte [eax + ebp]
ja 0x484258
inc dword [esp + 0x1c]
test edi, 0x4000000
jne 0x484279
inc esi
je 0x484279
mov edx, dword [esp + 0x50]
cmp cl, byte [edx + eax]
jb 0x484279
mov edx, dword [esp + 0x4c]
cmp cl, byte [edx + eax]
ja 0x484279
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 0x484200
cmp dword [esp + 0x18], 0
mov eax, dword [esp + 0xa0]
mov esi, dword [esp + 0x14]
jne 0x48430c
cmp byte [esp + 0x12], 0
je 0x484301
test eax, 0x1000000
jne 0x4842cd
movzx ecx, cx
mov edx, eax
and edx, 0xff0000
or ecx, edx
mov dword [ebx + esi*4], ecx
test eax, 0x2000000
jne 0x4842ea
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 0x48430c
mov edx, dword [ebx + esi*4]
movzx ecx, al
and edx, 0xffff00
or ecx, edx
jmp 0x484309
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 0x484197
jmp 0x4856c0
cmp dword [esp + 0x28], esi
jl 0x4856c0
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 0x4844bb
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 0x4843ce
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 0x4843ce
mov dl, byte [esp + 0x10]
cmp dl, byte [eax]
ja 0x4843ce
mov dword [esp + 0x1c], edi
test esi, 0x2000000
jne 0x484407
inc edi
je 0x484407
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 0x484407
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 0x484407
inc dword [esp + 0x1c]
test esi, 0x4000000
jne 0x484428
inc edi
je 0x484428
mov edx, dword [esp + 0x50]
cmp cl, byte [eax + edx]
jb 0x484428
mov edx, dword [esp + 0x4c]
cmp cl, byte [eax + edx]
ja 0x484428
inc dword [esp + 0x1c]
cmp edi, dword [esp + 0x1c]
je 0x48444b
mov ebp, dword [esp + 0x20]
inc ebp
inc eax
mov dword [esp + 0x20], ebp
cmp ebp, dword [esp + 0x9c]
jl 0x484390
mov esi, dword [esp + 0x14]
jmp 0x4844bb
cmp byte [esp + 0x12], 0
mov esi, dword [esp + 0x14]
je 0x4844ab
mov eax, dword [esp + 0xa0]
test eax, 0x1000000
jne 0x484474
movzx ecx, cx
mov edx, eax
and edx, 0xff0000
or ecx, edx
mov dword [ebx + esi*4], ecx
test eax, 0x2000000
jne 0x484491
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 0x4844bb
mov ecx, dword [ebx + esi*4]
movzx eax, al
and ecx, 0xffff00
or eax, ecx
mov dword [ebx + esi*4], eax
jmp 0x4844bb
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 0x484330
jmp 0x4856c0
mov esi, dword [esp + 0x88]
test esi, esi
js 0x4856c5
mov eax, dword [esp + 0x8c]
test eax, eax
js 0x4856c5
test edx, edx
jle 0x4856c5
test ecx, ecx
jle 0x4856c5
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 0x484844
test ecx, ecx
jle 0x4856c0
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 0x484818
mov dword [esp + 0x50], esi
jmp 0x484580
mov edi, dword [esp + 0x4c]
add edi, ecx
cmp dword [esp + 0x58], 0
mov dword [esp + 0x14], edi
jl 0x484818
cmp ecx, dword [esp + 0x80]
jge 0x484800
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 0x4846ef
mov dword [esp + 0x18], eax
cmp dword [esp + 0x9c], eax
jle 0x48467f
mov edi, edi
mov edx, dword [esp + 0x98]
mov esi, dword [edx + eax*4]
xor ecx, ecx
xor edi, edi
test esi, 0x1000000
jne 0x484607
mov cl, byte [esp + 0x10]
cmp cl, byte [edx + eax*4 + 2]
mov ecx, 1
jne 0x484607
mov edi, ecx
test esi, 0x2000000
jne 0x48462c
inc ecx
je 0x48462c
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 0x48462c
inc edi
test esi, 0x4000000
jne 0x484650
inc ecx
je 0x484650
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 0x484650
inc edi
xor edx, edx
cmp ecx, edi
sete dl
inc eax
add dword [esp + 0x18], edx
cmp eax, dword [esp + 0x9c]
jl 0x4845e0
cmp dword [esp + 0x18], 0
mov edx, dword [esp + 0xa0]
jne 0x484800
mov edi, dword [esp + 0x14]
cmp byte [esp + 0x12], 0
je 0x4846dd
test edx, 0x1000000
jne 0x48469e
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 0x4846bb
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 0x484800
mov ecx, dword [ebx + edi*4]
movzx eax, dl
and ecx, 0xffff00
or eax, ecx
mov dword [ebx + edi*4], eax
jmp 0x484800
mov eax, dword [ebx + edi*4]
and eax, 0xff000000
or eax, edx
mov dword [ebx + edi*4], eax
jmp 0x484800
cmp dword [esp + 0x9c], eax
jle 0x484800
lea esp, [esp]
mov ecx, dword [esp + 0x98]
mov ecx, dword [ecx + eax*4]
xor esi, esi
xor edi, edi
test ecx, 0x1000000
jne 0x48473b
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 0x48473b
mov edi, esi
test ecx, 0x2000000
jne 0x484767
inc esi
je 0x484767
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 0x484767
inc edi
test ecx, 0x4000000
jne 0x484784
inc esi
je 0x484784
mov cl, byte [esp + 0x28]
mov ebp, dword [esp + 0x98]
cmp cl, byte [ebp + eax*4]
jne 0x484784
inc edi
cmp esi, edi
je 0x484798
inc eax
cmp eax, dword [esp + 0x9c]
jl 0x484700
jmp 0x484800
cmp byte [esp + 0x12], 0
mov eax, dword [esp + 0x14]
je 0x4847f2
test edx, 0x1000000
jne 0x4847bc
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 0x4847da
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 0x484800
mov esi, dword [ebx + eax*4]
movzx ecx, dl
and esi, 0xffff00
or ecx, esi
jmp 0x4847fd
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 0x484580
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 0x484560
jmp 0x4856c0
test ecx, ecx
jle 0x4856c0
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 0x484890
mov ecx, esi
mov dword [esp + 0x6c], ecx
cmp esi, dword [esp + 0x5c]
jg 0x484c1c
mov edi, dword [esp + 0x68]
mov dword [esp + 0x60], edi
jmp 0x4848b0
mov edi, dword [esp + 0x64]
add edi, ecx
cmp dword [esp + 0x58], 0
mov dword [esp + 0x14], edi
jl 0x484c1c
cmp ecx, eax
jge 0x484bf6
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 0x484a8a
xor esi, esi
mov dword [esp + 0x18], esi
mov dword [esp + 0x20], esi
cmp dword [esp + 0x9c], esi
jle 0x484a1a
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 0x484976
mov cl, byte [esp + 0x10]
mov edx, dword [esp + 0x40]
cmp cl, byte [edx + eax]
mov ecx, 1
jb 0x484976
mov dl, byte [esp + 0x10]
cmp dl, byte [eax]
ja 0x484976
mov edi, ecx
test esi, 0x2000000
jne 0x4849ac
inc ecx
je 0x4849ac
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 0x4849ac
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 0x4849ac
inc edi
test esi, 0x4000000
jne 0x4849e2
inc ecx
je 0x4849e2
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 0x4849e2
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 0x4849e2
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 0x484944
cmp dword [esp + 0x18], 0
mov edx, dword [esp + 0xa0]
jne 0x484bf6
mov edi, dword [esp + 0x14]
cmp byte [esp + 0x12], 0
je 0x484a78
test edx, 0x1000000
jne 0x484a39
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 0x484a56
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 0x484bf6
mov ecx, dword [ebx + edi*4]
movzx eax, dl
and ecx, 0xffff00
or eax, ecx
mov dword [ebx + edi*4], eax
jmp 0x484bf6
mov eax, dword [ebx + edi*4]
and eax, 0xff000000
or eax, edx
mov dword [ebx + edi*4], eax
jmp 0x484bf6
xor ebp, ebp
mov dword [esp + 0x20], ebp
cmp dword [esp + 0x9c], ebp
jle 0x484bf6
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 0x484b12
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 0x484b0b
mov dl, byte [esp + 0x10]
cmp dl, byte [eax]
ja 0x484b0b
mov edi, esi
mov edx, dword [esp + 0xa0]
test ecx, 0x2000000
jne 0x484b4f
inc esi
je 0x484b4f
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 0x484b48
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 0x484b48
inc edi
mov edx, dword [esp + 0xa0]
test ecx, 0x4000000
jne 0x484b71
inc esi
je 0x484b71
mov cl, byte [esp + 0x28]
mov ebp, dword [esp + 0x50]
cmp cl, byte [eax + ebp]
jb 0x484b71
mov ebp, dword [esp + 0x4c]
cmp cl, byte [eax + ebp]
ja 0x484b71
inc edi
cmp esi, edi
je 0x484b8e
mov ebp, dword [esp + 0x20]
inc ebp
inc eax
mov dword [esp + 0x20], ebp
cmp ebp, dword [esp + 0x9c]
jl 0x484ad3
jmp 0x484bf6
cmp byte [esp + 0x12], 0
mov eax, dword [esp + 0x14]
je 0x484be8
test edx, 0x1000000
jne 0x484bb2
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 0x484bd0
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 0x484bf6
mov esi, dword [ebx + eax*4]
movzx ecx, dl
and esi, 0xffff00
or ecx, esi
jmp 0x484bf3
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 0x4848b0
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 0x484890
jmp 0x4856c0
mov ecx, dword [esp + 0x90]
mov esi, dword [esp + 0x94]
test ecx, ecx
jne 0x4850ee
test esi, esi
jne 0x4850ee
cmp dword [esp + 0xa4], esi
jne 0x484e60
cmp byte [esp + 0xa8], 0
je 0x484d98
xor edi, edi
cmp dword [esp + 0x28], edi
jl 0x4856c0
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 0x484d1e
cmp dword [esp + 0x9c], 2
jl 0x484cf1
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 0x484cc0
mov edx, dword [esp + 0x18]
cmp eax, dword [esp + 0x9c]
jge 0x484d09
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 0x484d88
jmp 0x484d29
mov ebx, dword [esp + 0x7c]
mov eax, dword [esp + 0xa0]
cmp byte [esp + 0x12], 0
je 0x484d7d
test eax, 0x1000000
jne 0x484d47
movzx edx, si
mov ecx, eax
and ecx, 0xff0000
or edx, ecx
mov dword [ebx + edi*4], edx
test eax, 0x2000000
jne 0x484d64
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 0x484d88
movzx edx, al
mov eax, dword [ebx + edi*4]
and eax, 0xffff00
or edx, eax
mov dword [ebx + edi*4], edx
jmp 0x484d88
and esi, 0xff000000
or esi, eax
mov dword [ebx + edi*4], esi
inc edi
cmp edi, dword [esp + 0x28]
jle 0x484c90
jmp 0x4856c0
xor ecx, ecx
cmp dword [esp + 0x28], ecx
jl 0x4856c0
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 0x484e52
mov ebp, dword [esp + 0x98]
cmp edx, dword [ebp + esi*4]
je 0x484ddb
inc esi
cmp esi, dword [esp + 0x9c]
jl 0x484dc2
jmp 0x484e52
cmp byte [esp + 0x12], 0
je 0x484e43
test dword [esp + 0xa0], 0x1000000
jne 0x484e08
movzx edx, ax
mov eax, dword [esp + 0xa0]
mov esi, eax
and esi, 0xff0000
or edx, esi
mov dword [ebx + ecx*4], edx
jmp 0x484e0f
mov eax, dword [esp + 0xa0]
test eax, 0x2000000
jne 0x484e2c
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 0x484e52
mov edx, dword [ebx + ecx*4]
movzx eax, al
and edx, 0xffff00
or eax, edx
jmp 0x484e4f
and eax, 0xff000000
or eax, dword [esp + 0xa0]
mov dword [ebx + ecx*4], eax
inc ecx
cmp ecx, edi
jle 0x484da8
jmp 0x4856c0
xor esi, esi
cmp byte [esp + 0xa8], 0
mov dword [esp + 0x14], esi
je 0x484fb8
cmp dword [esp + 0x28], esi
jl 0x4856c0
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 0x484f47
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 0x484f28
cmp dl, byte [eax]
ja 0x484f28
mov dl, byte [esp + 0x11]
mov ebp, dword [esp + 0x44]
cmp dl, byte [eax + ebp]
jb 0x484f28
mov ebp, dword [esp + 0x48]
cmp dl, byte [eax + ebp]
ja 0x484f28
cmp cl, byte [esi + eax]
jb 0x484f28
cmp cl, byte [edi + eax]
ja 0x484f28
mov edx, 1
jmp 0x484f2a
xor edx, edx
add dword [esp + 0x18], edx
inc eax
dec dword [esp + 0x70]
jne 0x484ef0
cmp dword [esp + 0x18], 0
mov eax, dword [esp + 0xa0]
mov esi, dword [esp + 0x14]
jne 0x484fa4
cmp byte [esp + 0x12], 0
je 0x484f99
test eax, 0x1000000
jne 0x484f65
movzx ecx, cx
mov edx, eax
and edx, 0xff0000
or ecx, edx
mov dword [ebx + esi*4], ecx
test eax, 0x2000000
jne 0x484f82
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 0x484fa4
mov edx, dword [ebx + esi*4]
movzx ecx, al
and edx, 0xffff00
or ecx, edx
jmp 0x484fa1
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 0x484e85
jmp 0x4856c0
cmp dword [esp + 0x28], esi
jl 0x4856c0
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 0x4850da
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 0x485024
mov dl, byte [esp + 0x10]
mov ebp, dword [esp + 0x40]
cmp dl, byte [eax + ebp]
jb 0x485051
cmp dl, byte [eax]
ja 0x485051
mov dl, byte [esp + 0x11]
mov ebp, dword [esp + 0x44]
cmp dl, byte [eax + ebp]
jb 0x485051
mov ebp, dword [esp + 0x48]
cmp dl, byte [eax + ebp]
ja 0x485051
cmp cl, byte [eax + esi]
jb 0x485051
cmp cl, byte [eax + edi]
jbe 0x48506a
mov edx, dword [esp + 0x20]
inc edx
inc eax
mov dword [esp + 0x20], edx
cmp edx, dword [esp + 0x9c]
jl 0x485020
mov esi, dword [esp + 0x14]
jmp 0x4850da
cmp byte [esp + 0x12], 0
mov esi, dword [esp + 0x14]
je 0x4850ca
mov eax, dword [esp + 0xa0]
test eax, 0x1000000
jne 0x485093
movzx ecx, cx
mov edx, eax
and edx, 0xff0000
or ecx, edx
mov dword [ebx + esi*4], ecx
test eax, 0x2000000
jne 0x4850b0
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 0x4850da
mov ecx, dword [ebx + esi*4]
movzx eax, al
and ecx, 0xffff00
or eax, ecx
mov dword [ebx + esi*4], eax
jmp 0x4850da
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 0x484fc2
jmp 0x4856c0
mov edx, dword [esp + 0x88]
test edx, edx
js 0x4856c5
mov eax, dword [esp + 0x8c]
test eax, eax
js 0x4856c5
test ecx, ecx
jle 0x4856c5
test esi, esi
jle 0x4856c5
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 0x4853b2
test esi, esi
jle 0x4856c0
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 0x485386
mov dword [esp + 0x5c], edx
jmp 0x4851a0
mov esi, dword [esp + 0x68]
mov edi, dword [esp + 0x98]
mov edx, dword [esp + 0x9c]
add esi, eax
cmp dword [esp + 0x58], 0
jl 0x485386
cmp eax, dword [esp + 0x80]
jge 0x48536c
cmp byte [esp + 0xa8], 0
je 0x4852dd
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 0x485260
cmp ebx, 2
jl 0x485238
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 0x485210
mov edx, dword [esp + 0x18]
cmp eax, dword [esp + 0x9c]
jge 0x485250
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 0x48536c
jmp 0x485264
mov ebx, dword [esp + 0x7c]
cmp byte [esp + 0x12], 0
mov eax, dword [esp + 0xa0]
je 0x4852cd
test eax, 0x1000000
jne 0x48528a
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 0x4852a7
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 0x48536c
mov ecx, dword [ebx + esi*4]
movzx eax, byte [esp + 0xa0]
and ecx, 0xffff00
or eax, ecx
mov dword [ebx + esi*4], eax
jmp 0x48536c
mov edx, dword [ebx + esi*4]
and edx, 0xff000000
or edx, eax
jmp 0x485369
mov eax, dword [esp + 0x5c]
mov ecx, dword [eax]
and ecx, 0xffffff
xor eax, eax
test edx, edx
jle 0x48536c
nop
cmp ecx, dword [edi + eax*4]
je 0x4852fc
inc eax
cmp eax, edx
jl 0x4852f0
jmp 0x48536c
cmp byte [esp + 0x12], 0
je 0x485359
mov eax, dword [esp + 0xa0]
test eax, 0x1000000
jne 0x485322
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 0x48533f
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 0x48536c
mov ecx, dword [ebx + esi*4]
movzx eax, al
and ecx, 0xffff00
or eax, ecx
mov dword [ebx + esi*4], eax
jmp 0x48536c
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 0x4851a0
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 0x485181
jmp 0x4856c0
test esi, esi
jle 0x4856c0
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 0x485404
mov ecx, dword [esp + 0x64]
mov eax, dword [esp + 0x88]
mov edx, eax
mov dword [esp + 0x6c], edx
cmp eax, ecx
jg 0x485699
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 0x485699
cmp edx, dword [esp + 0x80]
jge 0x485681
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 0x485585
cmp dword [esp + 0x9c], 0
mov dword [esp + 0x18], 0
jle 0x485509
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 0x4854b9
mov ecx, dword [esp + 0x4c]
mov bl, byte [esp + 0x10]
cmp bl, byte [edx + eax]
jb 0x4854e9
cmp bl, byte [eax]
ja 0x4854e9
mov bl, byte [esp + 0x11]
cmp bl, byte [esi + eax]
jb 0x4854e9
cmp bl, byte [edi + eax]
ja 0x4854e9
mov bl, byte [esp + 0x28]
cmp bl, byte [eax + ebp]
jb 0x4854e9
cmp bl, byte [ecx + eax]
ja 0x4854e9
mov ecx, 1
jmp 0x4854eb
xor ecx, ecx
add dword [esp + 0x18], ecx
inc eax
dec dword [esp + 0x70]
jne 0x4854b5
cmp dword [esp + 0x18], 0
mov ebx, dword [esp + 0x7c]
jne 0x485681
mov eax, dword [esp + 0x14]
cmp byte [esp + 0x12], 0
mov ecx, dword [esp + 0xa0]
je 0x485572
test ecx, 0x1000000
jne 0x485530
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 0x48554e
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 0x485681
movzx ecx, byte [esp + 0xa0]
mov edx, dword [ebx + eax*4]
and edx, 0xffff00
or ecx, edx
jmp 0x48567e
mov edx, dword [ebx + eax*4]
and edx, 0xff000000
or edx, ecx
mov dword [ebx + eax*4], edx
jmp 0x485681
cmp dword [esp + 0x9c], 0
mov dword [esp + 0x20], 0
jle 0x485681
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 0x4855c7
mov edx, dword [esp + 0x4c]
mov bl, byte [esp + 0x10]
cmp bl, byte [ecx + eax]
jb 0x4855f0
cmp bl, byte [eax]
ja 0x4855f0
mov bl, byte [esp + 0x11]
cmp bl, byte [esi + eax]
jb 0x4855f0
cmp bl, byte [edi + eax]
ja 0x4855f0
mov bl, byte [esp + 0x28]
cmp bl, byte [eax + ebp]
jb 0x4855f0
cmp bl, byte [edx + eax]
jbe 0x485609
mov edx, dword [esp + 0x20]
inc edx
inc eax
mov dword [esp + 0x20], edx
cmp edx, dword [esp + 0x9c]
jl 0x4855c3
mov ebx, dword [esp + 0x7c]
jmp 0x485681
cmp byte [esp + 0x12], 0
mov ebx, dword [esp + 0x7c]
mov eax, dword [esp + 0x14]
je 0x48566e
mov ecx, dword [esp + 0xa0]
test ecx, 0x1000000
jne 0x485638
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 0x485656
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 0x485681
mov edx, dword [ebx + eax*4]
movzx ecx, cl
and edx, 0xffff00
or ecx, edx
jmp 0x48567e
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 0x485420
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 0x485400
mov byte [esp + 0x11], 1
cmp dword [esp + 0x2c], 0
je 0x4856d9
mov eax, dword [esp + 0x2c]
push eax
call fcn.004c57e5
add esp, 4
cmp dword [esp + 0x30], 0
je 0x4856ed
mov ecx, dword [esp + 0x30]
push ecx
call fcn.004c57e5
add esp, 4
cmp dword [esp + 0x24], 0
je 0x485701
mov edx, dword [esp + 0x24]
push edx
call fcn.004c57e5
add esp, 4
cmp dword [esp + 0x34], 0
je 0x485715
mov eax, dword [esp + 0x34]
push eax
call fcn.004c57e5
add esp, 4
cmp dword [esp + 0x38], 0
je 0x485729
mov ecx, dword [esp + 0x38]
push ecx
call fcn.004c57e5
add esp, 4
cmp dword [esp + 0x3c], 0
je 0x48573d
mov edx, dword [esp + 0x3c]
push edx
call fcn.004c57e5
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