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

Disassembly:
sub esp, 0x8c
shr edx, 1
mov dword [esp + 0x70], edx
mov edx, dword [ecx + 0x10]
mov dword [esp + 0x84], edx
mov edx, dword [ecx + 0x14]
mov ecx, dword [ecx]
push ebx
mov ebx, dword [eax + 4]
cmp ebx, dword [eax + 0x24]
mov dword [esp + 0x80], ecx
lea ecx, [eax + 0x20]
push ebp
mov dword [esp + 0x88], edx
lea edx, [eax + 0x40]
push edi
mov edi, eax
mov dword [esp + 0x34], ecx
mov dword [esp + 0x6c], edx
jle 0x4e855c
mov edi, ecx
mov dword [esp + 0x34], eax
mov ecx, eax
mov eax, dword [ecx + 4]
cmp eax, dword [edx + 4]
jle 0x4e8572
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x34], edx
mov ecx, edx
mov edx, dword [esp + 0x6c]
mov eax, dword [edi + 4]
cmp eax, dword [ecx + 4]
jle 0x4e8584
mov eax, edi
mov edi, ecx
mov dword [esp + 0x34], eax
mov ecx, eax
mov eax, dword [edx + 4]
mov ebp, dword [edi + 4]
add ebp, 0xffff
lea edx, [eax + 0xffff]
sar edx, 0x10
sar ebp, 0x10
cmp ebp, edx
mov dword [esp + 0x94], edx
je 0x4e929b
mov ecx, dword [ecx + 4]
add ecx, 0xffff
sar ecx, 0x10
mov dword [esp + 0x3c], ecx
mov ecx, dword [edi + 4]
sub eax, ecx
cdq
push edx
push eax
push 0x10000
push 0
call fcn.0062e060
mov ebx, eax
mov eax, dword [esp + 0x6c]
mov eax, dword [eax]
mov ecx, edx
mov edx, dword [edi]
push ecx
sub eax, edx
mov dword [esp + 0x24], edx
cdq
push ebx
push edx
push eax
mov dword [esp + 0x74], ecx
call fcn.00630410
mov cl, 0x20
call fcn.00639880
mov ecx, dword [esp + 0x6c]
mov dword [esp + 0x84], eax
mov eax, dword [ecx + 0x18]
sub eax, dword [edi + 0x18]
mov ecx, dword [esp + 0x64]
push ecx
cdq
push ebx
push edx
push eax
call fcn.00630410
mov cl, 0x20
call fcn.00639880
mov edx, dword [esp + 0x6c]
mov ecx, dword [esp + 0x64]
mov dword [esp + 0x80], eax
mov eax, dword [edx + 0x1c]
sub eax, dword [edi + 0x1c]
push ecx
cdq
push ebx
push edx
push eax
call fcn.00630410
mov cl, 0x20
call fcn.00639880
mov edx, dword [esp + 0x34]
mov dword [esp + 0x78], eax
mov eax, dword [edx + 4]
sub eax, dword [edi + 4]
cdq
mov ecx, eax
mov eax, dword [esp + 0x84]
mov ebx, edx
cdq
push ebx
push ecx
push edx
push eax
mov dword [esp + 0x50], ecx
mov dword [esp + 0x54], ebx
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], edx
call fcn.00630410
mov cl, 0x10
call fcn.00639880
add eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x34]
mov ecx, dword [ecx]
cmp ecx, eax
mov dword [esp + 0x4c], eax
mov dword [esp + 0x1c], ecx
je 0x4e929b
mov eax, ebp
shl eax, 0x10
sub eax, dword [edi + 4]
cdq
push edx
mov ebx, eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x68], edx
mov edx, dword [esp + 0x30]
push ebx
push edx
push eax
call fcn.00630410
mov cl, 0x10
call fcn.00639880
add eax, dword [esp + 0x20]
mov ecx, dword [edi + 0x18]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x80]
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x64]
cdq
push ecx
push ebx
push edx
push eax
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], edx
call fcn.00630410
mov cl, 0x10
call fcn.00639880
add eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x64]
mov edi, dword [edi + 0x1c]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x78]
cdq
push ecx
push ebx
push edx
push eax
mov dword [esp + 0x80], eax
mov dword [esp + 0x84], edx
mov dword [esp + 0x60], edi
call fcn.00630410
mov cl, 0x10
call fcn.00639880
add eax, edi
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x1c]
sub eax, dword [esp + 0x4c]
cdq
push edx
push eax
push 0x10000
push 0
call fcn.0062e060
mov ecx, dword [esp + 0x5c]
mov dword [esp + 0x2c], edx
mov edx, dword [esp + 0x44]
push edx
mov edx, dword [esp + 0x5c]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x44]
push eax
push ecx
push edx
call fcn.00630410
mov cl, 0x10
call fcn.00639880
mov edi, edx
mov edx, dword [esp + 0x34]
mov ecx, eax
mov eax, dword [edx + 0x18]
cdq
sub eax, ecx
sbb edx, edi
mov ecx, eax
mov eax, dword [esp + 0xc]
mov edi, edx
cdq
sub ecx, eax
mov eax, dword [esp + 0x28]
sbb edi, edx
mov edx, dword [esp + 0x2c]
push edx
push eax
push edi
push ecx
call fcn.00630410
mov cl, 0x20
call fcn.00639880
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x40]
push ecx
mov ecx, dword [esp + 0x74]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x78]
push edx
push eax
push ecx
call fcn.00630410
mov cl, 0x10
call fcn.00639880
mov edi, edx
mov edx, dword [esp + 0x34]
mov ecx, eax
mov eax, dword [edx + 0x1c]
cdq
sub eax, ecx
sbb edx, edi
mov ecx, eax
mov eax, dword [esp + 0x50]
mov edi, edx
cdq
sub ecx, eax
mov eax, dword [esp + 0x28]
sbb edi, edx
mov edx, dword [esp + 0x2c]
push edx
push eax
push edi
push ecx
call fcn.00630410
mov cl, 0x20
call fcn.00639880
mov edx, dword [esp + 0x9c]
mov ecx, ebp
imul ecx, dword [esp + 0x7c]
mov dword [esp + 0x70], eax
lea eax, [edx + ecx*2]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x3c]
sub eax, ebp
mov dword [esp + 0x10], eax
je 0x4e8d3d
mov eax, dword [esp + 0x1c]
sub eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x44]
cdq
push ecx
mov ebp, edx
mov edx, dword [esp + 0x44]
push edx
push 0x10000
push 0
mov edi, eax
call fcn.0062e060
push edx
push eax
push ebp
push edi
call fcn.00630410
mov cl, 0x20
call fcn.00639880
mov ecx, dword [esp + 0x64]
push ecx
mov dword [esp + 0x5c], eax
cdq
push ebx
push edx
push eax
call fcn.00630410
mov cl, 0x10
call fcn.00639880
mov edx, dword [esp + 0x34]
mov ecx, eax
mov eax, dword [edx]
mov edx, dword [esp + 0x4c]
add ecx, dword [esp + 0x20]
cmp edx, eax
jge 0x4e8ae2
cmp dword [esp + 0x10], 0
jle 0x4e8d3d
mov eax, dword [esp + 0x54]
cdq
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 0x2c], edx
cdq
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x14]
add ecx, 0xffff
add eax, 0xffff
mov dword [esp + 0x44], edx
mov dword [esp + 0xc], ecx
mov dword [esp + 0x1c], eax
mov ebx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x2c]
sub dword [esp + 0x10], 1
and ebx, 0xffff0000
mov eax, ebx
sub eax, dword [esp + 0x14]
cdq
push edx
mov edi, eax
push edi
mov dword [esp + 0x6c], edx
mov edx, dword [esp + 0x30]
push ecx
push edx
call fcn.00630410
mov cl, 0x10
call fcn.00639880
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x40]
mov ebp, eax
mov eax, dword [esp + 0x64]
add ebp, dword [esp + 0x30]
push eax
push edi
push ecx
push edx
mov dword [esp + 0x28], ebp
call fcn.00630410
mov cl, 0x10
call fcn.00639880
mov edx, dword [esp + 0x24]
mov ecx, eax
add ecx, dword [esp + 0x38]
mov eax, ebx
sar eax, 0x10
lea edi, [edx + eax*2]
mov eax, dword [esp + 0xc]
and eax, 0xffff0000
sub eax, ebx
sar eax, 0x10
test eax, eax
mov dword [esp + 0x20], ecx
mov dword [esp + 0x50], edi
jle 0x4e8a9e
jmp 0x4e8954
mov ecx, dword [esp + 0x20]
shr ecx, 0x10
imul ecx, dword [esp + 0x90]
mov edx, ebp
shr edx, 0x10
add ecx, edx
sub eax, 1
cmp ecx, dword [esp + 0x8c]
jae 0x4e897e
mov edx, dword [esp + 0x88]
mov edx, dword [edx + ecx*4]
jmp 0x4e8980
xor edx, edx
mov ecx, edx
shr ecx, 0x18
cmp ecx, 8
jbe 0x4e8a7f
mov ebx, dword [esi]
imul ebx, ecx
movzx edi, word [edi]
mov ecx, edx
movzx ebp, dl
imul ebp, dword [esi + 0xc]
and ecx, 0xff0000
imul ecx, dword [esi + 4]
and edx, 0xff00
imul edx, dword [esi + 8]
and ecx, 0xff0000ff
and edx, 0xff0000
and ebp, 0xff00
or ecx, ebp
or ecx, edx
mov edx, edi
and edx, 0xf800
mov ebp, edi
shr ebx, 8
shr ecx, 8
shl edx, 5
and ebp, 0x1f
or edx, ebp
mov ebp, ecx
and ecx, 0xff00
imul ecx, ebx
and ebp, 0xff00ff
imul ebp, ebx
add edx, edx
and edi, 0x7e0
add edx, edx
or edi, 0x18
add edx, edx
shr ecx, 8
shl edi, 5
or edx, 0x70007
shr ebp, 8
and ecx, 0xff00
add ecx, edi
and ebp, 0xff00ff
add edx, ebp
mov edi, edx
mov ebx, edx
shr ebx, 8
and ebx, 1
imul ebx, ebx, 0xff
shr edi, 0x18
and edi, 1
imul edi, edi, 0xff0000
or edi, ebx
mov ebx, ecx
shr ebx, 0x10
mov ebp, dword [esp + 0x18]
and ebx, 1
imul ebx, ebx, 0xff00
shr ecx, 5
or edx, edi
mov edi, dword [esp + 0x50]
shr ebx, 5
or ebx, ecx
mov ecx, edx
shr ecx, 3
and ebx, 0x7e0
and ecx, 0x1f
shr edx, 8
or ebx, ecx
and edx, 0xf800
or ebx, edx
mov word [edi], bx
add ebp, dword [esp + 0x54]
mov edx, dword [esp + 0x70]
add dword [esp + 0x20], edx
add edi, 2
test eax, eax
mov dword [esp + 0x50], edi
mov dword [esp + 0x18], ebp
jg 0x4e8950
mov eax, dword [esp + 0x84]
add dword [esp + 0x14], eax
add dword [esp + 0x1c], eax
mov eax, dword [esp + 0x58]
add dword [esp + 0xc], eax
mov eax, dword [esp + 0x7c]
mov ecx, dword [esp + 0x80]
mov edx, dword [esp + 0x78]
add dword [esp + 0x30], ecx
add dword [esp + 0x38], edx
add eax, eax
add dword [esp + 0x24], eax
cmp dword [esp + 0x10], 0
jg 0x4e88c3
jmp 0x4e8d3d
jle 0x4e8d3d
cmp dword [esp + 0x10], 0
jle 0x4e8d3d
mov eax, dword [esp + 0x54]
cdq
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 0x2c], edx
cdq
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x14]
add eax, 0xffff
add ecx, 0xffff
mov dword [esp + 0x44], edx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], ecx
mov ebx, dword [esp + 0x20]
mov ecx, dword [esp + 0x2c]
sub dword [esp + 0x10], 1
and ebx, 0xffff0000
mov eax, ebx
sub eax, dword [esp + 0x14]
cdq
push edx
mov edi, eax
push edi
mov dword [esp + 0x6c], edx
mov edx, dword [esp + 0x30]
push ecx
push edx
call fcn.00630410
mov cl, 0x10
call fcn.00639880
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x40]
mov ebp, eax
mov eax, dword [esp + 0x64]
add ebp, dword [esp + 0x30]
push eax
push edi
push ecx
push edx
mov dword [esp + 0x60], ebp
call fcn.00630410
mov cl, 0x10
call fcn.00639880
mov edx, dword [esp + 0x24]
mov ecx, eax
add ecx, dword [esp + 0x38]
mov eax, ebx
sar eax, 0x10
lea edi, [edx + eax*2]
mov eax, dword [esp + 0x1c]
and eax, 0xffff0000
sub eax, ebx
sar eax, 0x10
test eax, eax
mov dword [esp + 0xc], ecx
mov dword [esp + 0x18], edi
jle 0x4e8cfe
jmp 0x4e8bb4
mov ecx, dword [esp + 0xc]
shr ecx, 0x10
imul ecx, dword [esp + 0x90]
mov edx, ebp
shr edx, 0x10
add ecx, edx
sub eax, 1
cmp ecx, dword [esp + 0x8c]
jae 0x4e8bde
mov edx, dword [esp + 0x88]
mov edx, dword [edx + ecx*4]
jmp 0x4e8be0
xor edx, edx
mov ecx, edx
shr ecx, 0x18
cmp ecx, 8
jbe 0x4e8cdf
mov ebx, dword [esi]
imul ebx, ecx
movzx edi, word [edi]
mov ecx, edx
movzx ebp, dl
imul ebp, dword [esi + 0xc]
and ecx, 0xff0000
imul ecx, dword [esi + 4]
and edx, 0xff00
imul edx, dword [esi + 8]
and ecx, 0xff0000ff
and edx, 0xff0000
and ebp, 0xff00
or ecx, ebp
or ecx, edx
mov edx, edi
and edx, 0xf800
mov ebp, edi
shr ebx, 8
shr ecx, 8
shl edx, 5
and ebp, 0x1f
or edx, ebp
mov ebp, ecx
and ecx, 0xff00
imul ecx, ebx
and ebp, 0xff00ff
imul ebp, ebx
add edx, edx
and edi, 0x7e0
add edx, edx
or edi, 0x18
add edx, edx
shr ecx, 8
shl edi, 5
or edx, 0x70007
shr ebp, 8
and ecx, 0xff00
add ecx, edi
and ebp, 0xff00ff
add edx, ebp
mov edi, edx
mov ebx, edx
shr ebx, 8
and ebx, 1
imul ebx, ebx, 0xff
shr edi, 0x18
and edi, 1
imul edi, edi, 0xff0000
or edi, ebx
mov ebx, ecx
shr ebx, 0x10
mov ebp, dword [esp + 0x50]
and ebx, 1
imul ebx, ebx, 0xff00
shr ecx, 5
or edx, edi
mov edi, dword [esp + 0x18]
shr ebx, 5
or ebx, ecx
mov ecx, edx
shr ecx, 3
and ebx, 0x7e0
and ecx, 0x1f
shr edx, 8
or ebx, ecx
and edx, 0xf800
or ebx, edx
mov word [edi], bx
add ebp, dword [esp + 0x54]
mov edx, dword [esp + 0x70]
add dword [esp + 0xc], edx
add edi, 2
test eax, eax
mov dword [esp + 0x18], edi
mov dword [esp + 0x50], ebp
jg 0x4e8bb0
mov eax, dword [esp + 0x84]
add dword [esp + 0x14], eax
add dword [esp + 0x1c], eax
mov eax, dword [esp + 0x58]
add dword [esp + 0x20], eax
mov eax, dword [esp + 0x7c]
mov ecx, dword [esp + 0x80]
mov edx, dword [esp + 0x78]
add dword [esp + 0x30], ecx
add dword [esp + 0x38], edx
add eax, eax
add dword [esp + 0x24], eax
cmp dword [esp + 0x10], 0
jg 0x4e8b24
mov eax, dword [esp + 0x94]
sub eax, dword [esp + 0x3c]
mov dword [esp + 0x10], eax
je 0x4e929b
mov eax, dword [esp + 0x34]
mov ebx, dword [eax + 4]
mov edi, dword [eax]
mov ebp, dword [esp + 0x6c]
mov eax, dword [ebp + 4]
sub eax, ebx
cdq
push edx
push eax
push 0x10000
push 0
call fcn.0062e060
mov ecx, eax
mov eax, edx
mov dword [esp + 0x94], eax
mov eax, dword [ebp]
sub eax, edi
cdq
push edx
push eax
mov eax, dword [esp + 0x9c]
push eax
push ecx
call fcn.00630410
mov cl, 0x20
call fcn.00639880
mov ecx, eax
mov eax, dword [esp + 0x3c]
shl eax, 0x10
sub eax, ebx
imul ecx
mov dword [esp + 0x50], ecx
mov cl, 0x10
call fcn.00639880
mov ecx, eax
mov eax, dword [esp + 0x4c]
add ecx, edi
cmp eax, edi
jge 0x4e9035
cmp dword [esp + 0x10], 0
jle 0x4e929b
mov eax, dword [esp + 0x54]
cdq
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 0x2c], edx
cdq
add ecx, 0xffff
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x44], edx
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x40], eax
lea eax, [edx + edx]
add ecx, 0xffff
mov dword [esp + 0x1c], eax
mov dword [esp + 0x3c], ecx
mov ebx, dword [esp + 0x3c]
sub dword [esp + 0x10], 1
and ebx, 0xffff0000
mov eax, ebx
sub eax, dword [esp + 0x14]
cdq
push edx
mov edi, eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x68], edx
mov edx, dword [esp + 0x30]
push edi
push edx
push eax
call fcn.00630410
mov cl, 0x10
call fcn.00639880
mov ecx, dword [esp + 0x64]
mov edx, dword [esp + 0x44]
push ecx
mov ebp, eax
mov eax, dword [esp + 0x44]
add ebp, dword [esp + 0x34]
push edi
push edx
push eax
mov dword [esp + 0x28], ebp
call fcn.00630410
mov cl, 0x10
call fcn.00639880
mov ecx, eax
mov eax, dword [esp + 0x24]
add ecx, dword [esp + 0x38]
mov edx, ebx
sar edx, 0x10
lea edi, [eax + edx*2]
mov eax, dword [esp + 0xc]
and eax, 0xffff0000
sub eax, ebx
sar eax, 0x10
test eax, eax
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x58], edi
jle 0x4e8fee
jmp 0x4e8ea4
mov ecx, dword [esp + 0x4c]
shr ecx, 0x10
imul ecx, dword [esp + 0x90]
mov edx, ebp
shr edx, 0x10
add ecx, edx
sub eax, 1
cmp ecx, dword [esp + 0x8c]
jae 0x4e8ece
mov edx, dword [esp + 0x88]
mov edx, dword [edx + ecx*4]
jmp 0x4e8ed0
xor edx, edx
mov ecx, edx
shr ecx, 0x18
cmp ecx, 8
jbe 0x4e8fcf
mov ebx, dword [esi]
imul ebx, ecx
movzx edi, word [edi]
mov ecx, edx
movzx ebp, dl
imul ebp, dword [esi + 0xc]
and ecx, 0xff0000
imul ecx, dword [esi + 4]
and edx, 0xff00
imul edx, dword [esi + 8]
and ecx, 0xff0000ff
and edx, 0xff0000
and ebp, 0xff00
or ecx, ebp
or ecx, edx
mov edx, edi
and edx, 0xf800
mov ebp, edi
shr ebx, 8
shr ecx, 8
shl edx, 5
and ebp, 0x1f
or edx, ebp
mov ebp, ecx
and ecx, 0xff00
imul ecx, ebx
and ebp, 0xff00ff
imul ebp, ebx
add edx, edx
and edi, 0x7e0
add edx, edx
or edi, 0x18
add edx, edx
shr ecx, 8
shl edi, 5
or edx, 0x70007
shr ebp, 8
and ecx, 0xff00
add ecx, edi
and ebp, 0xff00ff
add edx, ebp
mov edi, edx
mov ebx, edx
shr ebx, 8
and ebx, 1
imul ebx, ebx, 0xff
shr edi, 0x18
and edi, 1
imul edi, edi, 0xff0000
or edi, ebx
mov ebx, ecx
shr ebx, 0x10
mov ebp, dword [esp + 0x18]
and ebx, 1
imul ebx, ebx, 0xff00
shr ecx, 5
or edx, edi
mov edi, dword [esp + 0x58]
shr ebx, 5
or ebx, ecx
mov ecx, edx
shr ecx, 3
and ebx, 0x7e0
and ecx, 0x1f
shr edx, 8
or ebx, ecx
and edx, 0xf800
or ebx, edx
mov word [edi], bx
add ebp, dword [esp + 0x54]
mov edx, dword [esp + 0x70]
add dword [esp + 0x4c], edx
add edi, 2
test eax, eax
mov dword [esp + 0x58], edi
mov dword [esp + 0x18], ebp
jg 0x4e8ea0
mov eax, dword [esp + 0x84]
add dword [esp + 0x14], eax
add dword [esp + 0x3c], eax
mov eax, dword [esp + 0x50]
add dword [esp + 0xc], eax
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
mov eax, dword [esp + 0x78]
add dword [esp + 0x24], ecx
add dword [esp + 0x30], edx
add dword [esp + 0x38], eax
cmp dword [esp + 0x10], 0
jg 0x4e8e0b
pop edi
pop ebp
pop ebx
add esp, 0x8c
ret
jle 0x4e929b
cmp dword [esp + 0x10], 0
jle 0x4e929b
mov eax, dword [esp + 0x54]
cdq
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 0x2c], edx
cdq
mov dword [esp + 0x44], edx
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x40], eax
lea eax, [edx + edx]
mov edx, dword [esp + 0x14]
add edx, 0xffff
add ecx, 0xffff
mov dword [esp + 0x1c], eax
mov dword [esp + 0x3c], edx
mov dword [esp + 0xc], ecx
mov ebx, dword [esp + 0xc]
mov ecx, dword [esp + 0x28]
sub dword [esp + 0x10], 1
and ebx, 0xffff0000
mov eax, ebx
sub eax, dword [esp + 0x14]
cdq
mov edi, eax
mov eax, dword [esp + 0x2c]
push eax
push ecx
push edx
push edi
mov dword [esp + 0x74], edx
call fcn.00630410
mov cl, 0x10
call fcn.00639880
mov edx, dword [esp + 0x44]
mov ecx, dword [esp + 0x64]
mov ebp, eax
mov eax, dword [esp + 0x40]
add ebp, dword [esp + 0x30]
push edx
push eax
push ecx
push edi
mov dword [esp + 0x28], ebp
call fcn.00630410
mov cl, 0x10
call fcn.00639880
mov ecx, eax
mov eax, dword [esp + 0x24]
add ecx, dword [esp + 0x38]
mov edx, ebx
sar edx, 0x10
lea edi, [eax + edx*2]
mov eax, dword [esp + 0x3c]
and eax, 0xffff0000
sub eax, ebx
sar eax, 0x10
test eax, eax
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x58], edi
jle 0x4e925e
jmp 0x4e9114
mov ecx, dword [esp + 0x4c]
shr ecx, 0x10
imul ecx, dword [esp + 0x90]
mov edx, ebp
shr edx, 0x10
add ecx, edx
sub eax, 1
cmp ecx, dword [esp + 0x8c]
jae 0x4e913e
mov edx, dword [esp + 0x88]
mov edx, dword [edx + ecx*4]
jmp 0x4e9140
xor edx, edx
mov ecx, edx
shr ecx, 0x18
cmp ecx, 8
jbe 0x4e923f
mov ebx, dword [esi]
imul ebx, ecx
movzx edi, word [edi]
mov ecx, edx
movzx ebp, dl
imul ebp, dword [esi + 0xc]
and ecx, 0xff0000
imul ecx, dword [esi + 4]
and edx, 0xff00
imul edx, dword [esi + 8]
and ecx, 0xff0000ff
and edx, 0xff0000
and ebp, 0xff00
or ecx, ebp
or ecx, edx
mov edx, edi
and edx, 0xf800
mov ebp, edi
shr ebx, 8
shr ecx, 8
shl edx, 5
and ebp, 0x1f
or edx, ebp
mov ebp, ecx
and ecx, 0xff00
imul ecx, ebx
and ebp, 0xff00ff
imul ebp, ebx
add edx, edx
and edi, 0x7e0
add edx, edx
or edi, 0x18
add edx, edx
shr ecx, 8
shl edi, 5
or edx, 0x70007
shr ebp, 8
and ecx, 0xff00
add ecx, edi
and ebp, 0xff00ff
add edx, ebp
mov edi, edx
mov ebx, edx
shr ebx, 8
and ebx, 1
imul ebx, ebx, 0xff
shr edi, 0x18
and edi, 1
imul edi, edi, 0xff0000
or edi, ebx
mov ebx, ecx
shr ebx, 0x10
mov ebp, dword [esp + 0x18]
and ebx, 1
imul ebx, ebx, 0xff00
shr ecx, 5
or edx, edi
mov edi, dword [esp + 0x58]
shr ebx, 5
or ebx, ecx
mov ecx, edx
shr ecx, 3
and ebx, 0x7e0
and ecx, 0x1f
shr edx, 8
or ebx, ecx
and edx, 0xf800
or ebx, edx
mov word [edi], bx
add ebp, dword [esp + 0x54]
mov edx, dword [esp + 0x70]
add dword [esp + 0x4c], edx
add edi, 2
test eax, eax
mov dword [esp + 0x58], edi
mov dword [esp + 0x18], ebp
jg 0x4e9110
mov eax, dword [esp + 0x84]
add dword [esp + 0x14], eax
add dword [esp + 0x3c], eax
mov eax, dword [esp + 0x50]
add dword [esp + 0xc], eax
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
mov eax, dword [esp + 0x78]
add dword [esp + 0x24], ecx
add dword [esp + 0x30], edx
add dword [esp + 0x38], eax
cmp dword [esp + 0x10], 0
jg 0x4e9083
pop edi
pop ebp
pop ebx
add esp, 0x8c
ret