Function at 0x4808a0
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 0x4823c9
cmp dword [esp + 0x8c], ecx
je 0x4823c9
cmp dword [esp + 0x90], 1
jl 0x4823c9
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 0x480b0f
mov esi, dword [esp + 0x9c]
push esi
call fcn.004ba2ed
add esp, 4
mov dword [esp + 0x2c], eax
test eax, eax
je 0x4823bd
push esi
call fcn.004ba2ed
add esp, 4
mov dword [esp + 0x24], eax
test eax, eax
je 0x482345
mov eax, esi
push eax
call fcn.004ba2ed
add esp, 4
mov dword [esp + 0x38], eax
test eax, eax
je 0x482345
mov ecx, esi
push ecx
call fcn.004ba2ed
add esp, 4
mov dword [esp + 0x30], eax
test eax, eax
je 0x482345
mov edx, esi
push edx
call fcn.004ba2ed
add esp, 4
mov dword [esp + 0x34], eax
test eax, eax
je 0x482345
mov eax, esi
push eax
call fcn.004ba2ed
add esp, 4
mov dword [esp + 0x3c], eax
test eax, eax
je 0x482345
xor ecx, ecx
mov dword [esp + 0x14], ecx
test esi, esi
jle 0x480b0f
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 0x480a00
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 0x480a41
xor ecx, ecx
jmp 0x480a49
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 0x480a65
xor ecx, ecx
jmp 0x480a72
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 0x480a89
xor ecx, ecx
jmp 0x480a96
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 0x480ab3
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 0x480ad2
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 0x480af1
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 0x480a00
cmp byte [esp + 0xac], 0
je 0x4818c4
mov edx, dword [esp + 0x90]
mov ecx, dword [esp + 0x94]
test edx, edx
jne 0x48114f
test ecx, ecx
jne 0x48114f
xor esi, esi
mov dword [esp + 0x14], esi
cmp dword [esp + 0xa4], esi
jne 0x480df8
cmp byte [esp + 0xa8], 0
je 0x480cb3
cmp dword [esp + 0x28], esi
jl 0x482340
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 0x480c3b
lea esp, [esp]
mov edx, dword [esp + 0x98]
mov esi, dword [edx + eax*4]
xor ecx, ecx
xor edi, edi
test esi, 0x1000000
jne 0x480bc7
mov cl, byte [esp + 0x10]
cmp cl, byte [edx + eax*4 + 2]
mov ecx, 1
jne 0x480bc7
mov edi, ecx
test esi, 0x2000000
jne 0x480bec
inc ecx
je 0x480bec
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 0x480bec
inc edi
test esi, 0x4000000
jne 0x480c10
inc ecx
je 0x480c10
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 0x480c10
inc edi
xor edx, edx
cmp ecx, edi
sete dl
inc eax
add dword [esp + 0x18], edx
cmp eax, dword [esp + 0x9c]
jl 0x480ba0
cmp dword [esp + 0x18], 0
mov ecx, dword [esp + 0xa0]
mov esi, dword [esp + 0x14]
jne 0x480c9f
cmp byte [esp + 0x12], 0
je 0x480c91
test ecx, 0x1000000
jne 0x480c5c
movzx eax, word [esp + 0x5c]
mov edx, ecx
and edx, 0xff0000
or eax, edx
mov dword [ebx + esi*4], eax
test ecx, 0x2000000
jne 0x480c79
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 0x480c9f
mov edx, dword [ebx + esi*4]
movzx eax, cl
and edx, 0xffff00
or eax, edx
jmp 0x480c9c
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 0x480b70
jmp 0x482340
cmp dword [esp + 0x28], esi
jl 0x482340
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 0x480de4
mov edx, dword [esp + 0x98]
mov esi, dword [edx + eax*4]
xor edi, edi
mov dword [esp + 0x1c], edi
test esi, 0x1000000
jne 0x480d17
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 0x480d17
mov dword [esp + 0x1c], edi
test esi, 0x2000000
jne 0x480d3f
inc edi
je 0x480d3f
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 0x480d3f
inc dword [esp + 0x1c]
test esi, 0x4000000
jne 0x480d5a
inc edi
je 0x480d5a
mov edx, dword [esp + 0x98]
cmp cl, byte [edx + eax*4]
jne 0x480d5a
inc dword [esp + 0x1c]
cmp edi, dword [esp + 0x1c]
je 0x480d74
inc eax
cmp eax, dword [esp + 0x9c]
jl 0x480ce4
mov esi, dword [esp + 0x14]
jmp 0x480de4
cmp byte [esp + 0x12], 0
mov esi, dword [esp + 0x14]
je 0x480dd4
mov eax, dword [esp + 0xa0]
test eax, 0x1000000
jne 0x480d9d
movzx ecx, cx
mov edx, eax
and edx, 0xff0000
or ecx, edx
mov dword [ebx + esi*4], ecx
test eax, 0x2000000
jne 0x480dba
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 0x480de4
mov ecx, dword [ebx + esi*4]
movzx eax, al
and ecx, 0xffff00
or eax, ecx
mov dword [ebx + esi*4], eax
jmp 0x480de4
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 0x480cc0
jmp 0x482340
cmp byte [esp + 0xa8], 0
je 0x480fa0
cmp dword [esp + 0x28], esi
jl 0x482340
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 0x480f2f
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 0x480eb3
mov ebp, dword [esp + 0x40]
mov esi, 1
cmp dl, byte [eax + ebp]
jb 0x480eb3
cmp dl, byte [eax]
ja 0x480eb3
mov dword [esp + 0x1c], esi
test edi, 0x2000000
jne 0x480ed8
inc esi
je 0x480ed8
mov ebp, dword [esp + 0x44]
mov dl, byte [esp + 0x11]
cmp dl, byte [eax + ebp]
jb 0x480ed8
mov ebp, dword [esp + 0x48]
cmp dl, byte [eax + ebp]
ja 0x480ed8
inc dword [esp + 0x1c]
test edi, 0x4000000
jne 0x480ef9
inc esi
je 0x480ef9
mov edx, dword [esp + 0x50]
cmp cl, byte [edx + eax]
jb 0x480ef9
mov edx, dword [esp + 0x4c]
cmp cl, byte [edx + eax]
ja 0x480ef9
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 0x480e80
cmp dword [esp + 0x18], 0
mov eax, dword [esp + 0xa0]
mov esi, dword [esp + 0x14]
jne 0x480f8c
cmp byte [esp + 0x12], 0
je 0x480f81
test eax, 0x1000000
jne 0x480f4d
movzx ecx, cx
mov edx, eax
and edx, 0xff0000
or ecx, edx
mov dword [ebx + esi*4], ecx
test eax, 0x2000000
jne 0x480f6a
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 0x480f8c
mov edx, dword [ebx + esi*4]
movzx ecx, al
and edx, 0xffff00
or ecx, edx
jmp 0x480f89
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 0x480e17
jmp 0x482340
cmp dword [esp + 0x28], esi
jl 0x482340
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 0x48113b
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 0x48104e
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 0x48104e
mov dl, byte [esp + 0x10]
cmp dl, byte [eax]
ja 0x48104e
mov dword [esp + 0x1c], edi
test esi, 0x2000000
jne 0x481087
inc edi
je 0x481087
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 0x481087
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 0x481087
inc dword [esp + 0x1c]
test esi, 0x4000000
jne 0x4810a8
inc edi
je 0x4810a8
mov edx, dword [esp + 0x50]
cmp cl, byte [eax + edx]
jb 0x4810a8
mov edx, dword [esp + 0x4c]
cmp cl, byte [eax + edx]
ja 0x4810a8
inc dword [esp + 0x1c]
cmp edi, dword [esp + 0x1c]
je 0x4810cb
mov ebp, dword [esp + 0x20]
inc ebp
inc eax
mov dword [esp + 0x20], ebp
cmp ebp, dword [esp + 0x9c]
jl 0x481010
mov esi, dword [esp + 0x14]
jmp 0x48113b
cmp byte [esp + 0x12], 0
mov esi, dword [esp + 0x14]
je 0x48112b
mov eax, dword [esp + 0xa0]
test eax, 0x1000000
jne 0x4810f4
movzx ecx, cx
mov edx, eax
and edx, 0xff0000
or ecx, edx
mov dword [ebx + esi*4], ecx
test eax, 0x2000000
jne 0x481111
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 0x48113b
mov ecx, dword [ebx + esi*4]
movzx eax, al
and ecx, 0xffff00
or eax, ecx
mov dword [ebx + esi*4], eax
jmp 0x48113b
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 0x480fb0
jmp 0x482340
mov esi, dword [esp + 0x88]
test esi, esi
js 0x482345
mov eax, dword [esp + 0x8c]
test eax, eax
js 0x482345
test edx, edx
jle 0x482345
test ecx, ecx
jle 0x482345
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 0x4814c4
test ecx, ecx
jle 0x482340
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 0x481498
mov dword [esp + 0x50], esi
jmp 0x481200
mov edi, dword [esp + 0x4c]
add edi, ecx
cmp dword [esp + 0x58], 0
mov dword [esp + 0x14], edi
jl 0x481498
cmp ecx, dword [esp + 0x80]
jge 0x481480
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 0x48136f
mov dword [esp + 0x18], eax
cmp dword [esp + 0x9c], eax
jle 0x4812ff
mov edi, edi
mov edx, dword [esp + 0x98]
mov esi, dword [edx + eax*4]
xor ecx, ecx
xor edi, edi
test esi, 0x1000000
jne 0x481287
mov cl, byte [esp + 0x10]
cmp cl, byte [edx + eax*4 + 2]
mov ecx, 1
jne 0x481287
mov edi, ecx
test esi, 0x2000000
jne 0x4812ac
inc ecx
je 0x4812ac
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 0x4812ac
inc edi
test esi, 0x4000000
jne 0x4812d0
inc ecx
je 0x4812d0
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 0x4812d0
inc edi
xor edx, edx
cmp ecx, edi
sete dl
inc eax
add dword [esp + 0x18], edx
cmp eax, dword [esp + 0x9c]
jl 0x481260
cmp dword [esp + 0x18], 0
mov edx, dword [esp + 0xa0]
jne 0x481480
mov edi, dword [esp + 0x14]
cmp byte [esp + 0x12], 0
je 0x48135d
test edx, 0x1000000
jne 0x48131e
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 0x48133b
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 0x481480
mov ecx, dword [ebx + edi*4]
movzx eax, dl
and ecx, 0xffff00
or eax, ecx
mov dword [ebx + edi*4], eax
jmp 0x481480
mov eax, dword [ebx + edi*4]
and eax, 0xff000000
or eax, edx
mov dword [ebx + edi*4], eax
jmp 0x481480
cmp dword [esp + 0x9c], eax
jle 0x481480
lea esp, [esp]
mov ecx, dword [esp + 0x98]
mov ecx, dword [ecx + eax*4]
xor esi, esi
xor edi, edi
test ecx, 0x1000000
jne 0x4813bb
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 0x4813bb
mov edi, esi
test ecx, 0x2000000
jne 0x4813e7
inc esi
je 0x4813e7
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 0x4813e7
inc edi
test ecx, 0x4000000
jne 0x481404
inc esi
je 0x481404
mov cl, byte [esp + 0x28]
mov ebp, dword [esp + 0x98]
cmp cl, byte [ebp + eax*4]
jne 0x481404
inc edi
cmp esi, edi
je 0x481418
inc eax
cmp eax, dword [esp + 0x9c]
jl 0x481380
jmp 0x481480
cmp byte [esp + 0x12], 0
mov eax, dword [esp + 0x14]
je 0x481472
test edx, 0x1000000
jne 0x48143c
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 0x48145a
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 0x481480
mov esi, dword [ebx + eax*4]
movzx ecx, dl
and esi, 0xffff00
or ecx, esi
jmp 0x48147d
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 0x481200
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 0x4811e0
jmp 0x482340
test ecx, ecx
jle 0x482340
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 0x481510
mov ecx, esi
mov dword [esp + 0x6c], ecx
cmp esi, dword [esp + 0x5c]
jg 0x48189c
mov edi, dword [esp + 0x68]
mov dword [esp + 0x60], edi
jmp 0x481530
mov edi, dword [esp + 0x64]
add edi, ecx
cmp dword [esp + 0x58], 0
mov dword [esp + 0x14], edi
jl 0x48189c
cmp ecx, eax
jge 0x481876
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 0x48170a
xor esi, esi
mov dword [esp + 0x18], esi
mov dword [esp + 0x20], esi
cmp dword [esp + 0x9c], esi
jle 0x48169a
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 0x4815f6
mov cl, byte [esp + 0x10]
mov edx, dword [esp + 0x40]
cmp cl, byte [edx + eax]
mov ecx, 1
jb 0x4815f6
mov dl, byte [esp + 0x10]
cmp dl, byte [eax]
ja 0x4815f6
mov edi, ecx
test esi, 0x2000000
jne 0x48162c
inc ecx
je 0x48162c
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 0x48162c
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 0x48162c
inc edi
test esi, 0x4000000
jne 0x481662
inc ecx
je 0x481662
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 0x481662
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 0x481662
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 0x4815c4
cmp dword [esp + 0x18], 0
mov edx, dword [esp + 0xa0]
jne 0x481876
mov edi, dword [esp + 0x14]
cmp byte [esp + 0x12], 0
je 0x4816f8
test edx, 0x1000000
jne 0x4816b9
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 0x4816d6
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 0x481876
mov ecx, dword [ebx + edi*4]
movzx eax, dl
and ecx, 0xffff00
or eax, ecx
mov dword [ebx + edi*4], eax
jmp 0x481876
mov eax, dword [ebx + edi*4]
and eax, 0xff000000
or eax, edx
mov dword [ebx + edi*4], eax
jmp 0x481876
xor ebp, ebp
mov dword [esp + 0x20], ebp
cmp dword [esp + 0x9c], ebp
jle 0x481876
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 0x481792
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 0x48178b
mov dl, byte [esp + 0x10]
cmp dl, byte [eax]
ja 0x48178b
mov edi, esi
mov edx, dword [esp + 0xa0]
test ecx, 0x2000000
jne 0x4817cf
inc esi
je 0x4817cf
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 0x4817c8
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 0x4817c8
inc edi
mov edx, dword [esp + 0xa0]
test ecx, 0x4000000
jne 0x4817f1
inc esi
je 0x4817f1
mov cl, byte [esp + 0x28]
mov ebp, dword [esp + 0x50]
cmp cl, byte [eax + ebp]
jb 0x4817f1
mov ebp, dword [esp + 0x4c]
cmp cl, byte [eax + ebp]
ja 0x4817f1
inc edi
cmp esi, edi
je 0x48180e
mov ebp, dword [esp + 0x20]
inc ebp
inc eax
mov dword [esp + 0x20], ebp
cmp ebp, dword [esp + 0x9c]
jl 0x481753
jmp 0x481876
cmp byte [esp + 0x12], 0
mov eax, dword [esp + 0x14]
je 0x481868
test edx, 0x1000000
jne 0x481832
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 0x481850
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 0x481876
mov esi, dword [ebx + eax*4]
movzx ecx, dl
and esi, 0xffff00
or ecx, esi
jmp 0x481873
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 0x481530
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 0x481510
jmp 0x482340
mov ecx, dword [esp + 0x90]
mov esi, dword [esp + 0x94]
test ecx, ecx
jne 0x481d6e
test esi, esi
jne 0x481d6e
cmp dword [esp + 0xa4], esi
jne 0x481ae0
cmp byte [esp + 0xa8], 0
je 0x481a18
xor edi, edi
cmp dword [esp + 0x28], edi
jl 0x482340
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 0x48199e
cmp dword [esp + 0x9c], 2
jl 0x481971
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 0x481940
mov edx, dword [esp + 0x18]
cmp eax, dword [esp + 0x9c]
jge 0x481989
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 0x481a08
jmp 0x4819a9
mov ebx, dword [esp + 0x7c]
mov eax, dword [esp + 0xa0]
cmp byte [esp + 0x12], 0
je 0x4819fd
test eax, 0x1000000
jne 0x4819c7
movzx edx, si
mov ecx, eax
and ecx, 0xff0000
or edx, ecx
mov dword [ebx + edi*4], edx
test eax, 0x2000000
jne 0x4819e4
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 0x481a08
movzx edx, al
mov eax, dword [ebx + edi*4]
and eax, 0xffff00
or edx, eax
mov dword [ebx + edi*4], edx
jmp 0x481a08
and esi, 0xff000000
or esi, eax
mov dword [ebx + edi*4], esi
inc edi
cmp edi, dword [esp + 0x28]
jle 0x481910
jmp 0x482340
xor ecx, ecx
cmp dword [esp + 0x28], ecx
jl 0x482340
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 0x481ad2
mov ebp, dword [esp + 0x98]
cmp edx, dword [ebp + esi*4]
je 0x481a5b
inc esi
cmp esi, dword [esp + 0x9c]
jl 0x481a42
jmp 0x481ad2
cmp byte [esp + 0x12], 0
je 0x481ac3
test dword [esp + 0xa0], 0x1000000
jne 0x481a88
movzx edx, ax
mov eax, dword [esp + 0xa0]
mov esi, eax
and esi, 0xff0000
or edx, esi
mov dword [ebx + ecx*4], edx
jmp 0x481a8f
mov eax, dword [esp + 0xa0]
test eax, 0x2000000
jne 0x481aac
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 0x481ad2
mov edx, dword [ebx + ecx*4]
movzx eax, al
and edx, 0xffff00
or eax, edx
jmp 0x481acf
and eax, 0xff000000
or eax, dword [esp + 0xa0]
mov dword [ebx + ecx*4], eax
inc ecx
cmp ecx, edi
jle 0x481a28
jmp 0x482340
xor esi, esi
cmp byte [esp + 0xa8], 0
mov dword [esp + 0x14], esi
je 0x481c38
cmp dword [esp + 0x28], esi
jl 0x482340
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 0x481bc7
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 0x481ba8
cmp dl, byte [eax]
ja 0x481ba8
mov dl, byte [esp + 0x11]
mov ebp, dword [esp + 0x44]
cmp dl, byte [eax + ebp]
jb 0x481ba8
mov ebp, dword [esp + 0x48]
cmp dl, byte [eax + ebp]
ja 0x481ba8
cmp cl, byte [esi + eax]
jb 0x481ba8
cmp cl, byte [edi + eax]
ja 0x481ba8
mov edx, 1
jmp 0x481baa
xor edx, edx
add dword [esp + 0x18], edx
inc eax
dec dword [esp + 0x70]
jne 0x481b70
cmp dword [esp + 0x18], 0
mov eax, dword [esp + 0xa0]
mov esi, dword [esp + 0x14]
jne 0x481c24
cmp byte [esp + 0x12], 0
je 0x481c19
test eax, 0x1000000
jne 0x481be5
movzx ecx, cx
mov edx, eax
and edx, 0xff0000
or ecx, edx
mov dword [ebx + esi*4], ecx
test eax, 0x2000000
jne 0x481c02
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 0x481c24
mov edx, dword [ebx + esi*4]
movzx ecx, al
and edx, 0xffff00
or ecx, edx
jmp 0x481c21
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 0x481b05
jmp 0x482340
cmp dword [esp + 0x28], esi
jl 0x482340
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 0x481d5a
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 0x481ca4
mov dl, byte [esp + 0x10]
mov ebp, dword [esp + 0x40]
cmp dl, byte [eax + ebp]
jb 0x481cd1
cmp dl, byte [eax]
ja 0x481cd1
mov dl, byte [esp + 0x11]
mov ebp, dword [esp + 0x44]
cmp dl, byte [eax + ebp]
jb 0x481cd1
mov ebp, dword [esp + 0x48]
cmp dl, byte [eax + ebp]
ja 0x481cd1
cmp cl, byte [eax + esi]
jb 0x481cd1
cmp cl, byte [eax + edi]
jbe 0x481cea
mov edx, dword [esp + 0x20]
inc edx
inc eax
mov dword [esp + 0x20], edx
cmp edx, dword [esp + 0x9c]
jl 0x481ca0
mov esi, dword [esp + 0x14]
jmp 0x481d5a
cmp byte [esp + 0x12], 0
mov esi, dword [esp + 0x14]
je 0x481d4a
mov eax, dword [esp + 0xa0]
test eax, 0x1000000
jne 0x481d13
movzx ecx, cx
mov edx, eax
and edx, 0xff0000
or ecx, edx
mov dword [ebx + esi*4], ecx
test eax, 0x2000000
jne 0x481d30
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 0x481d5a
mov ecx, dword [ebx + esi*4]
movzx eax, al
and ecx, 0xffff00
or eax, ecx
mov dword [ebx + esi*4], eax
jmp 0x481d5a
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 0x481c42
jmp 0x482340
mov edx, dword [esp + 0x88]
test edx, edx
js 0x482345
mov eax, dword [esp + 0x8c]
test eax, eax
js 0x482345
test ecx, ecx
jle 0x482345
test esi, esi
jle 0x482345
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 0x482032
test esi, esi
jle 0x482340
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 0x482006
mov dword [esp + 0x5c], edx
jmp 0x481e20
mov esi, dword [esp + 0x68]
mov edi, dword [esp + 0x98]
mov edx, dword [esp + 0x9c]
add esi, eax
cmp dword [esp + 0x58], 0
jl 0x482006
cmp eax, dword [esp + 0x80]
jge 0x481fec
cmp byte [esp + 0xa8], 0
je 0x481f5d
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 0x481ee0
cmp ebx, 2
jl 0x481eb8
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 0x481e90
mov edx, dword [esp + 0x18]
cmp eax, dword [esp + 0x9c]
jge 0x481ed0
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 0x481fec
jmp 0x481ee4
mov ebx, dword [esp + 0x7c]
cmp byte [esp + 0x12], 0
mov eax, dword [esp + 0xa0]
je 0x481f4d
test eax, 0x1000000
jne 0x481f0a
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 0x481f27
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 0x481fec
mov ecx, dword [ebx + esi*4]
movzx eax, byte [esp + 0xa0]
and ecx, 0xffff00
or eax, ecx
mov dword [ebx + esi*4], eax
jmp 0x481fec
mov edx, dword [ebx + esi*4]
and edx, 0xff000000
or edx, eax
jmp 0x481fe9
mov eax, dword [esp + 0x5c]
mov ecx, dword [eax]
and ecx, 0xffffff
xor eax, eax
test edx, edx
jle 0x481fec
nop
cmp ecx, dword [edi + eax*4]
je 0x481f7c
inc eax
cmp eax, edx
jl 0x481f70
jmp 0x481fec
cmp byte [esp + 0x12], 0
je 0x481fd9
mov eax, dword [esp + 0xa0]
test eax, 0x1000000
jne 0x481fa2
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 0x481fbf
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 0x481fec
mov ecx, dword [ebx + esi*4]
movzx eax, al
and ecx, 0xffff00
or eax, ecx
mov dword [ebx + esi*4], eax
jmp 0x481fec
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 0x481e20
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 0x481e01
jmp 0x482340
test esi, esi
jle 0x482340
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 0x482084
mov ecx, dword [esp + 0x64]
mov eax, dword [esp + 0x88]
mov edx, eax
mov dword [esp + 0x6c], edx
cmp eax, ecx
jg 0x482319
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 0x482319
cmp edx, dword [esp + 0x80]
jge 0x482301
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 0x482205
cmp dword [esp + 0x9c], 0
mov dword [esp + 0x18], 0
jle 0x482189
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 0x482139
mov ecx, dword [esp + 0x4c]
mov bl, byte [esp + 0x10]
cmp bl, byte [edx + eax]
jb 0x482169
cmp bl, byte [eax]
ja 0x482169
mov bl, byte [esp + 0x11]
cmp bl, byte [esi + eax]
jb 0x482169
cmp bl, byte [edi + eax]
ja 0x482169
mov bl, byte [esp + 0x28]
cmp bl, byte [eax + ebp]
jb 0x482169
cmp bl, byte [ecx + eax]
ja 0x482169
mov ecx, 1
jmp 0x48216b
xor ecx, ecx
add dword [esp + 0x18], ecx
inc eax
dec dword [esp + 0x70]
jne 0x482135
cmp dword [esp + 0x18], 0
mov ebx, dword [esp + 0x7c]
jne 0x482301
mov eax, dword [esp + 0x14]
cmp byte [esp + 0x12], 0
mov ecx, dword [esp + 0xa0]
je 0x4821f2
test ecx, 0x1000000
jne 0x4821b0
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 0x4821ce
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 0x482301
movzx ecx, byte [esp + 0xa0]
mov edx, dword [ebx + eax*4]
and edx, 0xffff00
or ecx, edx
jmp 0x4822fe
mov edx, dword [ebx + eax*4]
and edx, 0xff000000
or edx, ecx
mov dword [ebx + eax*4], edx
jmp 0x482301
cmp dword [esp + 0x9c], 0
mov dword [esp + 0x20], 0
jle 0x482301
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 0x482247
mov edx, dword [esp + 0x4c]
mov bl, byte [esp + 0x10]
cmp bl, byte [ecx + eax]
jb 0x482270
cmp bl, byte [eax]
ja 0x482270
mov bl, byte [esp + 0x11]
cmp bl, byte [esi + eax]
jb 0x482270
cmp bl, byte [edi + eax]
ja 0x482270
mov bl, byte [esp + 0x28]
cmp bl, byte [eax + ebp]
jb 0x482270
cmp bl, byte [edx + eax]
jbe 0x482289
mov edx, dword [esp + 0x20]
inc edx
inc eax
mov dword [esp + 0x20], edx
cmp edx, dword [esp + 0x9c]
jl 0x482243
mov ebx, dword [esp + 0x7c]
jmp 0x482301
cmp byte [esp + 0x12], 0
mov ebx, dword [esp + 0x7c]
mov eax, dword [esp + 0x14]
je 0x4822ee
mov ecx, dword [esp + 0xa0]
test ecx, 0x1000000
jne 0x4822b8
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 0x4822d6
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 0x482301
mov edx, dword [ebx + eax*4]
movzx ecx, cl
and edx, 0xffff00
or ecx, edx
jmp 0x4822fe
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 0x4820a0
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 0x482080
mov byte [esp + 0x11], 1
cmp dword [esp + 0x2c], 0
je 0x482359
mov eax, dword [esp + 0x2c]
push eax
call fcn.004ba14c
add esp, 4
cmp dword [esp + 0x30], 0
je 0x48236d
mov ecx, dword [esp + 0x30]
push ecx
call fcn.004ba14c
add esp, 4
cmp dword [esp + 0x24], 0
je 0x482381
mov edx, dword [esp + 0x24]
push edx
call fcn.004ba14c
add esp, 4
cmp dword [esp + 0x34], 0
je 0x482395
mov eax, dword [esp + 0x34]
push eax
call fcn.004ba14c
add esp, 4
cmp dword [esp + 0x38], 0
je 0x4823a9
mov ecx, dword [esp + 0x38]
push ecx
call fcn.004ba14c
add esp, 4
cmp dword [esp + 0x3c], 0
je 0x4823bd
mov edx, dword [esp + 0x3c]
push edx
call fcn.004ba14c
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