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

Disassembly:
sub esp, 0x88
push ebx
push ebp
push esi
mov esi, dword [esp + 0x98]
mov eax, dword [esi + 4]
shr eax, 1
push edi
mov dword [esp + 0x38], eax
je 0x46eed6
xor edi, edi
cmp eax, edi
mov dword [esp + 0x58], edi
mov dword [esp + 0x5c], edi
mov dword [esp + 0x60], edi
jbe 0x46e4fa
mov ecx, dword [esi + 4]
mov eax, dword [esi]
shr ecx, 1
mov dword [esp + 0x3c], ecx
lea ecx, [ecx]
mov ecx, dword [esp + 0x60]
cmp dword [esp + 0x58], ecx
jge 0x46e4a0
cmp dword [esp + 0x5c], edi
jl 0x46e4b9
mov edx, dword [eax]
mov ecx, dword [eax + 4]
mov edi, dword [eax + 0xc]
mov dword [esp + 0x58], edx
mov edx, dword [eax + 8]
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x60], edx
jmp 0x46e4f0
mov ecx, dword [eax]
mov ebx, dword [eax + 8]
cmp ecx, ebx
jge 0x46e4f0
mov edx, dword [eax + 4]
mov ebp, dword [eax + 0xc]
cmp edx, ebp
jge 0x46e4f0
cmp dword [esp + 0x58], ecx
jle 0x46e4d6
mov dword [esp + 0x58], ecx
cmp dword [esp + 0x5c], edx
jle 0x46e4e0
mov dword [esp + 0x5c], edx
cmp dword [esp + 0x60], ebx
jge 0x46e4ea
mov dword [esp + 0x60], ebx
cmp edi, ebp
jge 0x46e4f0
mov edi, ebp
add eax, 0x10
sub dword [esp + 0x3c], 1
jne 0x46e490
mov eax, 1
cmp dword [esp + 0x38], eax
je 0x46ee2d
mov ebp, dword [esp + 0x60]
sub ebp, dword [esp + 0x58]
mov ebx, edi
sub ebx, dword [esp + 0x5c]
mov ecx, ebp
imul ecx, ebx
cmp ecx, 0x1388
jl 0x46ee2d
xor esi, esi
xor edi, edi
lea esp, [esp]
add eax, eax
cmp eax, 0x100
jbe 0x46e530
test eax, eax
je 0x46e6a9
shl eax, 4
push eax
push 0
call fcn.0044d0b0
add esp, 8
test eax, eax
mov dword [esp + 0x70], eax
je 0x46e6a9
mov edx, dword [esp + 0x9c]
mov dword [eax], esi
mov dword [eax + 4], edi
xor ecx, ecx
mov dword [eax + 8], ecx
mov dword [eax + 0xc], ecx
mov esi, eax
lea edi, [eax + 0x10]
add ebp, 0xf
mov ecx, 0x3fc
lea eax, [ebx + 0xf]
shr ebp, 4
shr eax, 4
rep movsd dword es:[edi], dword [esi]
test dword [edx + 4], 0xfffffffe
mov dword [esp + 0x48], ebp
mov dword [esp + 0x54], eax
mov dword [esp + 0x68], 0
jbe 0x46e7cd
mov dword [esp + 0x44], 0
mov eax, dword [esp + 0x9c]
mov eax, dword [eax]
add eax, dword [esp + 0x44]
mov ecx, dword [eax]
mov esi, dword [eax + 8]
cmp ecx, esi
mov edi, dword [eax + 4]
mov ebx, dword [eax + 0xc]
mov dword [esp + 0x24], ecx
jge 0x46e7a9
cmp edi, ebx
jge 0x46e7a9
mov ecx, dword [esp + 0x58]
mov eax, dword [esp + 0x5c]
mov edx, dword [esp + 0x24]
neg eax
add edi, eax
add ebx, eax
neg ecx
add edx, ecx
mov eax, edx
mov dword [esp + 0x24], edx
cdq
idiv ebp
mov dword [esp + 0x28], edi
add esi, ecx
mov dword [esp + 0x2c], esi
mov dword [esp + 0x30], ebx
mov dword [esp + 0x78], eax
mov eax, edi
mov edi, dword [esp + 0x54]
cdq
idiv edi
mov ecx, eax
lea eax, [esi + ebp - 1]
cdq
idiv ebp
mov dword [esp + 0x80], eax
lea eax, [ebx + edi - 1]
cdq
idiv edi
cmp ecx, eax
jge 0x46e7a9
mov edx, dword [esp + 0x78]
mov ebx, edx
add edx, 1
imul ebx, ebp
mov esi, ecx
imul edx, ebp
imul esi, edi
mov edi, ecx
shl edi, 8
add edi, dword [esp + 0x70]
sub eax, ecx
mov dword [esp + 0x6c], ebx
mov dword [esp + 0x38], edx
mov dword [esp + 0x40], esi
mov dword [esp + 0x50], edi
mov dword [esp + 0x34], eax
jmp 0x46e670
mov ecx, dword [esp + 0x54]
lea eax, [esi + ecx]
mov ecx, dword [esp + 0x80]
cmp dword [esp + 0x78], ecx
mov dword [esp + 0x14], ebx
mov dword [esp + 0x1c], edx
mov dword [esp + 0x4c], eax
jge 0x46e78c
mov edx, dword [esp + 0x78]
mov eax, edx
shl eax, 4
sub ecx, edx
lea eax, [eax + edi + 8]
mov dword [esp + 0x3c], ecx
jmp 0x46e6c4
mov eax, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x88
ret
mov esi, dword [esp + 0x40]
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0x24]
cmp edx, ebx
mov edi, dword [esp + 0x4c]
mov ecx, esi
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x94], edi
jge 0x46e6e3
mov edx, ebx
mov ebx, dword [esp + 0x28]
cmp ecx, ebx
jge 0x46e6ed
mov ecx, ebx
mov ebx, dword [esp + 0x2c]
cmp esi, ebx
jle 0x46e6f7
mov esi, ebx
mov ebx, dword [esp + 0x30]
cmp edi, ebx
jle 0x46e708
mov edi, ebx
mov dword [esp + 0x94], edi
mov ebx, dword [eax - 8]
cmp ebx, dword [eax]
jge 0x46e722
mov edi, dword [eax - 4]
cmp edi, dword [eax + 4]
jl 0x46e72f
mov edi, dword [esp + 0x94]
mov ebp, dword [esp + 0x48]
mov dword [eax - 8], edx
mov dword [eax - 4], ecx
mov dword [eax], esi
mov dword [eax + 4], edi
jmp 0x46e76a
cmp edx, esi
jge 0x46e766
mov ebp, dword [esp + 0x94]
cmp ecx, ebp
jge 0x46e766
cmp ebx, edx
jg 0x46e744
mov edx, ebx
cmp edi, ecx
mov dword [eax - 8], edx
jg 0x46e74d
mov ecx, edi
mov dword [eax - 4], ecx
mov ecx, dword [eax]
cmp ecx, esi
jl 0x46e758
mov esi, ecx
mov ecx, dword [eax + 4]
cmp ecx, ebp
mov dword [eax], esi
jge 0x46e763
mov ecx, ebp
mov dword [eax + 4], ecx
mov ebp, dword [esp + 0x48]
add dword [esp + 0x14], ebp
add dword [esp + 0x1c], ebp
add eax, 0x10
sub dword [esp + 0x3c], 1
jne 0x46e6c0
mov edi, dword [esp + 0x50]
mov edx, dword [esp + 0x38]
mov ebx, dword [esp + 0x6c]
mov esi, dword [esp + 0x4c]
add edi, 0x100
sub dword [esp + 0x34], 1
mov dword [esp + 0x50], edi
mov dword [esp + 0x40], esi
jne 0x46e670
mov ecx, dword [esp + 0x9c]
mov eax, dword [esp + 0x68]
mov edx, dword [ecx + 4]
add dword [esp + 0x44], 0x10
add eax, 1
shr edx, 1
cmp eax, edx
mov dword [esp + 0x68], eax
jb 0x46e5ac
mov esi, dword [esp + 0x9c]
mov eax, dword [esi + 4]
mov ecx, eax
mov edi, 1
and ecx, edi
shr eax, 1
je 0x46e86e
test ecx, ecx
je 0x46e803
mov eax, dword [esi]
test eax, eax
je 0x46e865
push eax
call fcn.0044d390
add esp, 4
mov dword [esi], 0
jmp 0x46e865
mov ecx, eax
shl ecx, 4
cmp ecx, 0x100000
jae 0x46e844
cmp eax, edi
mov edx, eax
jbe 0x46e840
test edx, edx
mov dword [esp + 0x38], edx
fild dword [esp + 0x38]
jge 0x46e828
fadd dword [0x567d50]
fstp dword [esp + 0x38]
mov edx, edi
mov ecx, dword [esp + 0x38]
shr ecx, 0x17
sub ecx, 0x7f
shl edx, cl
cmp edx, eax
jae 0x46e840
add edx, edx
mov eax, edx
jmp 0x46e84e
and eax, 0x7ffffc00
add eax, 0x400
cmp eax, edi
je 0x46e86b
mov eax, dword [esi]
push 0x10
push eax
call fcn.0044d0b0
add esp, 8
test eax, eax
mov dword [esi], eax
jne 0x46e86b
mov dword [esi], 0
and dword [esi + 4], edi
mov dword [esp + 0x54], 0
mov eax, dword [esp + 0x54]
shl eax, 8
add eax, dword [esp + 0x70]
mov dword [esp + 0x34], 0
mov dword [esp + 0x68], eax
lea ecx, [ecx]
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x68]
shl ecx, 4
mov eax, dword [ecx + edx]
add ecx, edx
cmp eax, dword [ecx + 8]
jge 0x46edeb
mov edx, dword [ecx + 4]
cmp edx, dword [ecx + 0xc]
jge 0x46edeb
mov ebx, dword [esp + 0x34]
xor ebp, ebp
cmp ebx, 0x10
mov dword [esp + 0x24], ebp
mov dword [esp + 0x28], ebp
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x30], ebp
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x48], ebp
jae 0x46ea0e
add ecx, 8
nop
mov esi, dword [ecx - 8]
mov edi, dword [ecx]
cmp esi, edi
jge 0x46ea0e
mov eax, dword [ecx - 4]
mov edx, dword [ecx + 4]
cmp eax, edx
jge 0x46ea0e
sub edx, eax
mov eax, dword [esp + 0x48]
sub edi, esi
mov esi, dword [esp + 0x28]
imul edx, edi
mov edi, dword [esp + 0x24]
add edx, eax
cmp edi, ebp
mov dword [esp + 0x38], edx
mov edx, dword [esp + 0x30]
mov eax, ebp
jge 0x46e928
mov ebx, esi
cmp ebx, edx
jl 0x46e935
mov ebp, dword [esp + 0x2c]
mov edi, dword [ecx - 8]
mov esi, dword [ecx - 4]
mov eax, dword [ecx]
mov edx, dword [ecx + 4]
jmp 0x46e95e
mov ebx, dword [ecx - 8]
cmp dword [esp + 0x24], ebx
jle 0x46e940
mov edi, ebx
mov ebx, dword [ecx - 4]
cmp esi, ebx
jle 0x46e949
mov esi, ebx
mov ebx, dword [ecx]
cmp eax, ebx
jge 0x46e951
mov eax, ebx
mov ebx, dword [ecx + 4]
cmp edx, ebx
mov ebp, dword [esp + 0x2c]
jge 0x46e95e
mov edx, ebx
sub edx, esi
mov esi, dword [esp + 0x38]
sub eax, edi
imul eax, edx
cdq
idiv esi
cmp eax, 1
jg 0x46ea03
mov edx, dword [esp + 0x24]
cmp edx, ebp
mov dword [esp + 0x48], esi
jge 0x46e98d
mov esi, dword [esp + 0x28]
mov edi, dword [esp + 0x30]
cmp esi, edi
jl 0x46e9aa
mov edx, dword [ecx - 8]
mov eax, dword [ecx - 4]
mov ebp, dword [ecx]
mov dword [esp + 0x24], edx
mov edx, dword [ecx + 4]
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x30], edx
jmp 0x46e9d7
mov eax, dword [ecx - 8]
cmp edx, eax
jle 0x46e9b5
mov dword [esp + 0x24], eax
mov eax, dword [ecx - 4]
cmp esi, eax
jle 0x46e9c0
mov dword [esp + 0x28], eax
mov eax, dword [ecx]
cmp ebp, eax
jge 0x46e9cc
mov ebp, eax
mov dword [esp + 0x2c], ebp
mov eax, dword [ecx + 4]
cmp edi, eax
jge 0x46e9d7
mov dword [esp + 0x30], eax
mov ebx, dword [esp + 0x34]
xor eax, eax
mov dword [ecx - 8], eax
xor edx, edx
xor esi, esi
mov dword [ecx - 4], edx
xor edi, edi
mov dword [ecx], esi
add ebx, 1
mov dword [ecx + 4], edi
add ecx, 0x10
cmp ebx, 0x10
mov dword [esp + 0x34], ebx
jb 0x46e8e0
jmp 0x46ea0e
mov ebx, dword [esp + 0x34]
sub ebx, 1
mov dword [esp + 0x34], ebx
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x68]
add eax, ebx
add ecx, 0x100
cdq
mov dword [esp + 0x44], ecx
mov ecx, dword [esp + 0x54]
sub eax, edx
sar eax, 1
add ecx, 1
cmp ecx, 0x10
mov dword [esp + 0x6c], ebx
mov dword [esp + 0x40], eax
mov dword [esp + 0x50], eax
mov dword [esp + 0x38], ecx
jae 0x46ed26
xor ecx, ecx
cmp eax, ecx
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], ecx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], ecx
mov dword [esp + 0x4c], ecx
mov edi, eax
jl 0x46eb05
mov ecx, dword [esp + 0x44]
mov edx, eax
shl edx, 4
lea edx, [edx + ecx + 4]
mov esi, dword [edx - 4]
mov ecx, dword [edx + 4]
cmp esi, ecx
jge 0x46eb05
mov ebx, dword [edx]
mov esi, dword [edx + 8]
cmp ebx, esi
jge 0x46eb05
mov ebx, dword [esp + 0x1c]
cmp dword [esp + 0x14], ebx
jge 0x46ea9f
mov ebx, dword [esp + 0x20]
cmp dword [esp + 0x18], ebx
jl 0x46eaba
mov ebx, dword [edx - 4]
mov dword [esp + 0x14], ebx
mov ebx, dword [edx]
mov dword [esp + 0x18], ebx
mov ebx, ecx
mov dword [esp + 0x1c], ebx
mov ebx, esi
mov dword [esp + 0x20], ebx
jmp 0x46eae7
mov ebx, dword [edx - 4]
cmp dword [esp + 0x14], ebx
jle 0x46eac7
mov dword [esp + 0x14], ebx
mov ebx, dword [edx]
cmp dword [esp + 0x18], ebx
jle 0x46ead3
mov dword [esp + 0x18], ebx
cmp dword [esp + 0x1c], ecx
jge 0x46eadd
mov dword [esp + 0x1c], ecx
cmp dword [esp + 0x20], esi
jge 0x46eae7
mov dword [esp + 0x20], esi
sub ecx, dword [edx - 4]
sub esi, dword [edx]
mov dword [esp + 0x40], edi
imul ecx, esi
add dword [esp + 0x4c], ecx
sub edi, 1
sub edx, 0x10
test edi, edi
jge 0x46ea74
lea esi, [eax + 1]
cmp esi, 0x10
jge 0x46ebae
mov eax, dword [esp + 0x44]
mov edx, esi
shl edx, 4
lea ecx, [edx + eax + 4]
mov eax, dword [ecx - 4]
mov edx, dword [ecx + 4]
cmp eax, edx
jge 0x46ebae
mov edi, dword [ecx]
mov eax, dword [ecx + 8]
cmp edi, eax
jge 0x46ebae
mov ebx, dword [esp + 0x1c]
cmp dword [esp + 0x14], ebx
jge 0x46eb49
mov ebx, dword [esp + 0x20]
cmp dword [esp + 0x18], ebx
jl 0x46eb64
mov ebx, dword [ecx - 4]
mov dword [esp + 0x14], ebx
mov ebx, edi
mov dword [esp + 0x18], ebx
mov ebx, edx
mov dword [esp + 0x1c], ebx
mov ebx, eax
mov dword [esp + 0x20], ebx
jmp 0x46eb8f
mov ebx, dword [ecx - 4]
cmp dword [esp + 0x14], ebx
jle 0x46eb71
mov dword [esp + 0x14], ebx
cmp dword [esp + 0x18], edi
jle 0x46eb7b
mov dword [esp + 0x18], edi
cmp dword [esp + 0x1c], edx
jge 0x46eb85
mov dword [esp + 0x1c], edx
cmp dword [esp + 0x20], eax
jge 0x46eb8f
mov dword [esp + 0x20], eax
sub edx, dword [ecx - 4]
sub eax, edi
imul eax, edx
add dword [esp + 0x4c], eax
mov dword [esp + 0x50], esi
add esi, 1
add ecx, 0x10
cmp esi, 0x10
jl 0x46eb1e
mov edi, dword [esp + 0x14]
mov ebp, dword [esp + 0x1c]
cmp edi, ebp
jge 0x46ed26
mov ebx, dword [esp + 0x18]
cmp ebx, dword [esp + 0x20]
jge 0x46ed26
mov esi, dword [esp + 0x24]
mov ecx, dword [esp + 0x2c]
cmp esi, ecx
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x30]
jge 0x46ebe4
cmp edx, eax
jl 0x46ebf0
mov eax, dword [esp + 0x20]
mov esi, edi
mov edx, ebx
mov ecx, ebp
jmp 0x46ec0c
cmp esi, edi
jle 0x46ebf6
mov esi, edi
cmp edx, ebx
jle 0x46ebfc
mov edx, ebx
cmp ecx, ebp
jge 0x46ec02
mov ecx, ebp
mov edi, dword [esp + 0x20]
cmp eax, edi
jge 0x46ec0c
mov eax, edi
mov edi, dword [esp + 0x48]
mov ebx, dword [esp + 0x4c]
sub eax, edx
sub ecx, esi
imul eax, ecx
cdq
lea ebp, [ebx + edi]
idiv ebp
cmp eax, 1
jg 0x46ed26
mov ecx, dword [esp + 0x24]
mov esi, dword [esp + 0x2c]
cmp ecx, esi
jge 0x46ec42
mov edx, dword [esp + 0x28]
mov edi, dword [esp + 0x30]
cmp edx, edi
jl 0x46ec64
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x28], edx
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], ecx
jmp 0x46ec94
mov eax, dword [esp + 0x14]
cmp ecx, eax
jle 0x46ec70
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x18]
cmp edx, eax
jle 0x46ec7c
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x1c]
cmp esi, eax
jge 0x46ec88
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x20]
cmp edi, eax
jge 0x46ec94
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x40]
mov edx, dword [esp + 0x50]
cmp eax, edx
jg 0x46ecdb
mov ecx, dword [esp + 0x50]
sub ecx, dword [esp + 0x40]
shl eax, 4
add eax, dword [esp + 0x44]
xor edx, edx
xor esi, esi
xor edi, edi
xor ebx, ebx
add ecx, 1
lea ebx, [ebx]
mov dword [eax], edx
mov dword [eax + 4], esi
mov dword [eax + 8], edi
mov dword [eax + 0xc], ebx
add eax, 0x10
sub ecx, 1
jne 0x46ecc0
mov edx, dword [esp + 0x50]
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x3c]
cmp ecx, eax
mov dword [esp + 0x48], ebp
jle 0x46eced
mov ecx, eax
mov dword [esp + 0x3c], ecx
mov eax, dword [esp + 0x6c]
cmp eax, edx
jle 0x46ecfb
mov eax, edx
mov dword [esp + 0x6c], eax
add dword [esp + 0x44], 0x100
add eax, ecx
mov ecx, dword [esp + 0x38]
cdq
sub eax, edx
sar eax, 1
add ecx, 1
cmp ecx, 0x10
mov dword [esp + 0x40], eax
mov dword [esp + 0x50], eax
mov dword [esp + 0x38], ecx
jb 0x46ea47
mov eax, dword [esp + 0x58]
mov edi, dword [esp + 0x24]
mov ebx, dword [esp + 0x2c]
mov esi, dword [esp + 0x9c]
mov ebp, dword [esp + 0x28]
mov ecx, dword [esi + 4]
add edi, eax
add ebx, eax
mov eax, dword [esp + 0x5c]
add dword [esp + 0x30], eax
add ebp, eax
test cl, 1
jne 0x46edeb
shr ecx, 1
mov edx, ecx
shl edx, 4
cmp edx, 0x100000
mov eax, ecx
jae 0x46ed7f
lea edx, [ecx - 1]
test ecx, edx
jne 0x46ed89
test ecx, ecx
je 0x46ed78
lea eax, [ecx + ecx]
jmp 0x46ed89
mov eax, 1
jmp 0x46ed89
and eax, 0x7ffffc00
add eax, 0x400
cmp eax, ecx
jbe 0x46edb9
test eax, eax
je 0x46eda4
shl eax, 4
push eax
mov eax, dword [esi]
push eax
call fcn.0044d0b0
add esp, 8
mov dword [esi], eax
jmp 0x46edb9
mov eax, dword [esi]
test eax, eax
je 0x46edb9
push eax
call fcn.0044d390
add esp, 4
mov dword [esi], 0
mov ecx, dword [esi]
test ecx, ecx
je 0x46edeb
mov eax, dword [esi + 4]
shr eax, 1
shl eax, 4
add eax, ecx
mov ecx, dword [esp + 0x30]
mov dword [eax], edi
mov dword [eax + 4], ebp
mov dword [eax + 8], ebx
mov dword [eax + 0xc], ecx
mov eax, dword [esi + 4]
mov edx, eax
and edx, 0xfffffffe
add edx, 2
and eax, 1
xor edx, eax
mov dword [esi + 4], edx
mov eax, dword [esp + 0x34]
add eax, 1
cmp eax, 0x10
mov dword [esp + 0x34], eax
jb 0x46e890
mov eax, dword [esp + 0x54]
add eax, 1
cmp eax, 0x10
mov dword [esp + 0x54], eax
jb 0x46e876
mov eax, dword [esp + 0x70]
push eax
call fcn.0044d390
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x88
mov eax, dword [esi]
test eax, eax
je 0x46ee3c
push eax
call fcn.0044d390
add esp, 4
and dword [esi + 4], 1
mov ecx, dword [esi + 4]
test cl, 1
mov dword [esi], 0
jne 0x46eed6
shr ecx, 1
mov edx, ecx
shl edx, 4
cmp edx, 0x100000
mov eax, ecx
jae 0x46ee7a
lea edx, [ecx - 1]
test ecx, edx
jne 0x46ee84
test ecx, ecx
je 0x46ee73
lea eax, [ecx + ecx]
jmp 0x46ee84
mov eax, 1
jmp 0x46ee84
and eax, 0x7ffffc00
add eax, 0x400
cmp eax, ecx
jbe 0x46eed6
test eax, eax
je 0x46ee9c
shl eax, 4
push eax
push 0
call fcn.0044d0b0
add esp, 8
mov dword [esi], eax
mov ecx, dword [esi]
test ecx, ecx
je 0x46eed6
mov eax, dword [esi + 4]
mov edx, dword [esp + 0x5c]
shr eax, 1
shl eax, 4
add eax, ecx
mov ecx, dword [esp + 0x58]
mov dword [eax], ecx
mov ecx, dword [esp + 0x60]
mov dword [eax + 4], edx
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edi
mov eax, dword [esi + 4]
mov edx, eax
and edx, 0xfffffffe
add edx, 2
and eax, 1
xor edx, eax
mov dword [esi + 4], edx
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x88
ret