Function at 0x4ec740
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 0x4ec78c
mov edi, ecx
mov dword [esp + 0x34], eax
mov ecx, eax
mov eax, dword [ecx + 4]
cmp eax, dword [edx + 4]
jle 0x4ec7a2
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 0x4ec7b4
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 0x4ed4cb
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.006372b0
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.0063a250
mov cl, 0x20
call fcn.00643e20
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.0063a250
mov cl, 0x20
call fcn.00643e20
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.0063a250
mov cl, 0x20
call fcn.00643e20
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.0063a250
mov cl, 0x10
call fcn.00643e20
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 0x4ed4cb
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.0063a250
mov cl, 0x10
call fcn.00643e20
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.0063a250
mov cl, 0x10
call fcn.00643e20
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.0063a250
mov cl, 0x10
call fcn.00643e20
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.006372b0
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.0063a250
mov cl, 0x10
call fcn.00643e20
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.0063a250
mov cl, 0x20
call fcn.00643e20
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.0063a250
mov cl, 0x10
call fcn.00643e20
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.0063a250
mov cl, 0x20
call fcn.00643e20
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 0x4ecf6d
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.006372b0
push edx
push eax
push ebp
push edi
call fcn.0063a250
mov cl, 0x20
call fcn.00643e20
mov ecx, dword [esp + 0x64]
push ecx
mov dword [esp + 0x5c], eax
cdq
push ebx
push edx
push eax
call fcn.0063a250
mov cl, 0x10
call fcn.00643e20
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 0x4ecd12
cmp dword [esp + 0x10], 0
jle 0x4ecf6d
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.0063a250
mov cl, 0x10
call fcn.00643e20
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.0063a250
mov cl, 0x10
call fcn.00643e20
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 0x4eccce
jmp 0x4ecb84
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 0x4ecbae
mov edx, dword [esp + 0x88]
mov edx, dword [edx + ecx*4]
jmp 0x4ecbb0
xor edx, edx
mov ecx, edx
shr ecx, 0x18
cmp ecx, 8
jbe 0x4eccaf
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 0x4ecb80
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 0x4ecaf3
jmp 0x4ecf6d
jle 0x4ecf6d
cmp dword [esp + 0x10], 0
jle 0x4ecf6d
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.0063a250
mov cl, 0x10
call fcn.00643e20
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.0063a250
mov cl, 0x10
call fcn.00643e20
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 0x4ecf2e
jmp 0x4ecde4
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 0x4ece0e
mov edx, dword [esp + 0x88]
mov edx, dword [edx + ecx*4]
jmp 0x4ece10
xor edx, edx
mov ecx, edx
shr ecx, 0x18
cmp ecx, 8
jbe 0x4ecf0f
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 0x4ecde0
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 0x4ecd54
mov eax, dword [esp + 0x94]
sub eax, dword [esp + 0x3c]
mov dword [esp + 0x10], eax
je 0x4ed4cb
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.006372b0
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.0063a250
mov cl, 0x20
call fcn.00643e20
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.00643e20
mov ecx, eax
mov eax, dword [esp + 0x4c]
add ecx, edi
cmp eax, edi
jge 0x4ed265
cmp dword [esp + 0x10], 0
jle 0x4ed4cb
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.0063a250
mov cl, 0x10
call fcn.00643e20
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.0063a250
mov cl, 0x10
call fcn.00643e20
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 0x4ed21e
jmp 0x4ed0d4
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 0x4ed0fe
mov edx, dword [esp + 0x88]
mov edx, dword [edx + ecx*4]
jmp 0x4ed100
xor edx, edx
mov ecx, edx
shr ecx, 0x18
cmp ecx, 8
jbe 0x4ed1ff
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 0x4ed0d0
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 0x4ed03b
pop edi
pop ebp
pop ebx
add esp, 0x8c
ret
jle 0x4ed4cb
cmp dword [esp + 0x10], 0
jle 0x4ed4cb
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.0063a250
mov cl, 0x10
call fcn.00643e20
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.0063a250
mov cl, 0x10
call fcn.00643e20
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 0x4ed48e
jmp 0x4ed344
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 0x4ed36e
mov edx, dword [esp + 0x88]
mov edx, dword [edx + ecx*4]
jmp 0x4ed370
xor edx, edx
mov ecx, edx
shr ecx, 0x18
cmp ecx, 8
jbe 0x4ed46f
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 0x4ed340
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 0x4ed2b3
pop edi
pop ebp
pop ebx
add esp, 0x8c
ret